From 153b492e0aa9733b30152c89a0d2a08b01294ea8 Mon Sep 17 00:00:00 2001 From: Zoe Roux Date: Tue, 4 Aug 2026 15:54:49 +0200 Subject: [PATCH] feat(videojs): update to beta26 --- bun.lock | 14 ++++++++------ package.json | 2 +- src/player.web.tsx | 1 - src/provider.web.tsx | 24 +++++++++++++++++++----- src/view.web.tsx | 10 +--------- 5 files changed, 29 insertions(+), 22 deletions(-) diff --git a/bun.lock b/bun.lock index 2dfcf56..1668890 100644 --- a/bun.lock +++ b/bun.lock @@ -6,7 +6,7 @@ "name": "react-native-omni", "dependencies": { "@expo/config-plugins": "^57.0.3", - "@videojs/react": "10.0.0-beta.25", + "@videojs/react": "10.0.0-beta.26", "jassub": "^2.5.7", "libpgs": "^0.8.1", }, @@ -723,15 +723,17 @@ "@typescript/typescript-win32-x64": ["@typescript/typescript-win32-x64@7.0.2", "", { "os": "win32", "cpu": "x64" }, "sha512-0BQ3HkAHHlKLSp1qRvf3SUhGpGsDuhB/jgFw75guyqbxJqEaS0Cw/VFO8i2nHglJUzQCRtMMR/IBAKE3ETMC4g=="], - "@videojs/core": ["@videojs/core@10.0.0-beta.25", "", { "dependencies": { "@videojs/spf": "10.0.0-beta.25", "@videojs/store": "10.0.0-beta.25", "@videojs/utils": "10.0.0-beta.25", "@vimeo/player": "^2.30.3", "dashjs": "^5.2.0", "hls.js": "^1.6.7", "mux-embed": "^5.17.10" } }, "sha512-Yxd6c+u7LrYl6aKzZRyR5PjDqUt1lUbgFwIhg6pMzI8bJszIGjLS7TDzXdALpEFJpM1Z08dbqCEzCGaMj7Eu6A=="], + "@videojs/core": ["@videojs/core@10.0.0-beta.26", "", { "dependencies": { "@videojs/media": "10.0.0-beta.26", "@videojs/store": "10.0.0-beta.26", "@videojs/utils": "10.0.0-beta.26" } }, "sha512-qS6/CGERcktdy0AS7y/mXhd2TIHhjJuN2TH+xGaBq5umtn6W3wYjziw0gy3mS2MUfJMZvUPcNjxOgxZXD44KFA=="], - "@videojs/react": ["@videojs/react@10.0.0-beta.25", "", { "dependencies": { "@videojs/core": "10.0.0-beta.25", "@videojs/spf": "10.0.0-beta.25", "@videojs/store": "10.0.0-beta.25", "@videojs/utils": "10.0.0-beta.25" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-MUG8NFntK3u4OTArwqG4utZ11HU1Ku5kzzTfTA2BMG5shNj7KWqPz0BMR2Nnv6hwEvcxpm9vwZxk+AwkmoB5jA=="], + "@videojs/media": ["@videojs/media@10.0.0-beta.26", "", { "dependencies": { "@videojs/spf": "10.0.0-beta.26", "@videojs/utils": "10.0.0-beta.26", "@vimeo/player": "^2.30.3", "dashjs": "^5.2.0", "hls.js": "^1.6.7", "mux-embed": "^5.17.10" } }, "sha512-H6mdYfsDJ0Kei599TdDG/gJ2vgx46dUHnuH8jhW4cDAdjzvL9qFKp/0XaKAgsfMfKAFot/r2MqYDsUhCIBUq4g=="], - "@videojs/spf": ["@videojs/spf@10.0.0-beta.25", "", { "dependencies": { "@videojs/utils": "10.0.0-beta.25", "signal-polyfill": "^0.2.2" } }, "sha512-SETOzCPbSxuzCoX+bF2u7/Z80AA/Xwpqpy5ki//yslIyPxWkMT0GFydXdoZ/bJpNsBqGmDbDxEBDo1uMjnM4mQ=="], + "@videojs/react": ["@videojs/react@10.0.0-beta.26", "", { "dependencies": { "@videojs/core": "10.0.0-beta.26", "@videojs/media": "10.0.0-beta.26", "@videojs/spf": "10.0.0-beta.26", "@videojs/store": "10.0.0-beta.26", "@videojs/utils": "10.0.0-beta.26" }, "peerDependencies": { "react": "^18.0.0 || ^19.0.0", "react-dom": "^18.0.0 || ^19.0.0" } }, "sha512-N9/qA345eyznGjOf9kSpYwPAlc4bBronP897u+v+Ap4v/r8gv3jGSlszzj521lyHw4CjUoortMuoF2Aa/wQygg=="], - "@videojs/store": ["@videojs/store@10.0.0-beta.25", "", { "dependencies": { "@videojs/utils": "10.0.0-beta.25" }, "peerDependencies": { "@videojs/element": "10.0.0-beta.25", "react": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@videojs/element", "react"] }, "sha512-XvPC0+MQ6AZ/oKGpSzmjOM56aYESMpPsTg5zddBDXhcqeAOUxpEsXDqhU1rsm751tU4ZavGxHENx70lBOa5dUA=="], + "@videojs/spf": ["@videojs/spf@10.0.0-beta.26", "", { "dependencies": { "@videojs/utils": "10.0.0-beta.26", "signal-polyfill": "^0.2.2" } }, "sha512-/yrmy3fulSJd2owJ+RSiYWVGROu0uRcElGsqmTTXi050cWEI7Wk7vC+ve1zlCFyAB+9on9XDUvwy/G6QO8k9ww=="], - "@videojs/utils": ["@videojs/utils@10.0.0-beta.25", "", {}, "sha512-tq/848qmzgTncopeYE5iiYs1Pfzj4OEdSe7zE2H6xoOB0PUMlnPOThA3aybHJ8Lh9bmw+wTb6QJ0NZanIzt2Zg=="], + "@videojs/store": ["@videojs/store@10.0.0-beta.26", "", { "dependencies": { "@videojs/utils": "10.0.0-beta.26" }, "peerDependencies": { "@videojs/element": "10.0.0-beta.26", "react": "^18.0.0 || ^19.0.0" }, "optionalPeers": ["@videojs/element", "react"] }, "sha512-TaeP+dMCiVWDoBxOSp/t93v06Wy3J1tDBb2noZIAijStEbSIiSKYo+K7qEnArqTpsEA/bRphN4fEQBXmWYwpWw=="], + + "@videojs/utils": ["@videojs/utils@10.0.0-beta.26", "", {}, "sha512-XnbgF7O4ejOdKCKhakAHTGWUHTajzoxQlTM7kIGjfcCeoa8gmEb7V8cNue35FwCvBunw6JwM+4hqJQIPzOmUNQ=="], "@vimeo/player": ["@vimeo/player@2.30.4", "", { "dependencies": { "native-promise-only": "0.8.1", "weakmap-polyfill": "2.0.4" } }, "sha512-M8m1UAhJSb+KCWuXDLWHViwj+3YY/0ogwFquRfMHs9e9LYjXT9iB7n+sOCKwUusbiXuU2HKmXx+FEGHtYZfUSg=="], diff --git a/package.json b/package.json index 7a26535..245f1c2 100644 --- a/package.json +++ b/package.json @@ -63,7 +63,7 @@ }, "dependencies": { "@expo/config-plugins": "^57.0.3", - "@videojs/react": "10.0.0-beta.25", + "@videojs/react": "10.0.0-beta.26", "jassub": "^2.5.7", "libpgs": "^0.8.1" }, diff --git a/src/player.web.tsx b/src/player.web.tsx index dcc318b..12f902a 100644 --- a/src/player.web.tsx +++ b/src/player.web.tsx @@ -59,7 +59,6 @@ export class WebOmniPlayer implements OmniPlayer { this._store.state.toggleRemotePlayback(); } - castOptions: CastOptions | null = null; _source: Source | undefined = undefined; private _showNotification = false; diff --git a/src/provider.web.tsx b/src/provider.web.tsx index a198bfe..f78a198 100644 --- a/src/provider.web.tsx +++ b/src/provider.web.tsx @@ -1,4 +1,5 @@ import { createPlayer } from "@videojs/react"; +import { GoogleCast } from "@videojs/react/media/google-cast"; import { videoFeatures } from "@videojs/react/video"; import { createContext, @@ -7,6 +8,7 @@ import { useEffect, useRef, } from "react"; +import { usePlayerState } from "./events"; import { WebOmniPlayer } from "./player.web"; import type { OmniPlayer, PlayerBackend } from "./types/player"; import type { CastOptions, Source } from "./types/source"; @@ -67,15 +69,27 @@ const PlayerInitializer = ({ } }, [source, store]); - useEffect(() => { - player.castOptions = cast ?? null; - }, [cast]); - useEffect(() => { player.showNotification = showNotification; }, [showNotification]); - return {children}; + return ( + + + {children} + + ); +}; + +const CastBridge = ({ cast }: { cast?: CastOptions | null }) => { + const source = usePlayerState("source"); + return ( + + ); }; export const usePlayer = () => useContext(PlayerCtx); diff --git a/src/view.web.tsx b/src/view.web.tsx index 669a305..b82371b 100644 --- a/src/view.web.tsx +++ b/src/view.web.tsx @@ -106,7 +106,6 @@ export const OmniView = ({ autoplay, subtitleAssets, }: OmniViewProps & { style: CSSProperties }) => { - const player = usePlayer() as WebOmniPlayer; const containerRef = useRef(null); const ref = useRef(undefined!); const source = usePlayerState("source"); @@ -119,8 +118,6 @@ export const OmniView = ({ const headersRef = useRef(source?.src?.headers); headersRef.current = source?.src?.headers; - const castId = source?.castId; - const castData = source?.castData; const config = useMemo( () => ({ @@ -133,13 +130,8 @@ export const OmniView = ({ } }, }, - googleCast: { - receiver: player.castOptions?.receiverApplicationId, - customData: castData ?? null, - ...(castId && { src: castId }), - }, }), - [player.castOptions, castData, castId], + [], ); // While casting, the receiver renders subtitles (the player forwards the