diff --git a/package.json b/package.json index 0b8bf16f0..550f4481f 100644 --- a/package.json +++ b/package.json @@ -17,7 +17,7 @@ "@babel/runtime": "7.29.2", "@sentry/browser": "8.42.0", "@stremio/stremio-colors": "5.2.0", - "@stremio/stremio-core-web": "0.56.4", + "@stremio/stremio-core-web": "0.57.0", "@stremio/stremio-icons": "5.10.0", "@stremio/stremio-video": "0.0.78", "a-color-picker": "1.2.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index cc1c0fabc..2f7c5b3fc 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -18,8 +18,8 @@ importers: specifier: 5.2.0 version: 5.2.0 '@stremio/stremio-core-web': - specifier: 0.56.4 - version: 0.56.4 + specifier: 0.57.0 + version: 0.57.0 '@stremio/stremio-icons': specifier: 5.10.0 version: 5.10.0 @@ -1394,8 +1394,8 @@ packages: '@stremio/stremio-colors@5.2.0': resolution: {integrity: sha512-dYlPgu9W/H7c9s1zmW5tiDnRenaUa4Hg1QCyOg1lhOcgSfM/bVTi5nnqX+IfvGTTUNA0zgzh8hI3o3miwnZxTg==} - '@stremio/stremio-core-web@0.56.4': - resolution: {integrity: sha512-tFAMYgKrJ1bkvHRMpxDykM/844sDjgRPFk6FLhjQiwh01OHIyEgDqGo/NgwFM+CuMR4mW676SDvwNHkK0Xqg3w==} + '@stremio/stremio-core-web@0.57.0': + resolution: {integrity: sha512-go8GZwGm6MFfjez6J/T1HrGNY2330EU3VoVinDYR0rE331aay6fenViLyCYLE829FTebW2eglrmc7MdHjmhqSA==} '@stremio/stremio-icons@5.10.0': resolution: {integrity: sha512-Zw/vGC3D2yeQfk8xv/tfMJTDvbCPOI91tBg4XpR2+EgbZSX8Xvm7Vz457PIhFPhTAwdOPHp0VX0M3gzjbt0zOg==} @@ -6444,7 +6444,7 @@ snapshots: '@stremio/stremio-colors@5.2.0': {} - '@stremio/stremio-core-web@0.56.4': + '@stremio/stremio-core-web@0.57.0': dependencies: '@babel/runtime': 7.24.1 diff --git a/src/common/Fullscreen/FullscreenContext.ts b/src/common/Fullscreen/FullscreenContext.ts index 1c9599ffb..b2be6b3a8 100644 --- a/src/common/Fullscreen/FullscreenContext.ts +++ b/src/common/Fullscreen/FullscreenContext.ts @@ -7,6 +7,7 @@ export type FullscreenContextValue = readonly [ requestFullscreen: () => Promise | void, exitFullscreen: () => void, toggleFullscreen: () => void, + supported: boolean, ]; const FullscreenContext = createContext(null); diff --git a/src/common/Fullscreen/FullscreenProvider.tsx b/src/common/Fullscreen/FullscreenProvider.tsx index 9095bc61f..55bbf4568 100644 --- a/src/common/Fullscreen/FullscreenProvider.tsx +++ b/src/common/Fullscreen/FullscreenProvider.tsx @@ -79,9 +79,11 @@ const FullscreenProvider = ({ children }: Props) => { }; }, [shell, toggleFullscreen, exitFullscreen, escExitFullscreen]); + const supported = shell.active || document.fullscreenEnabled === true; + const value = useMemo( - () => [fullscreen, requestFullscreen, exitFullscreen, toggleFullscreen], - [fullscreen, requestFullscreen, exitFullscreen, toggleFullscreen] + () => [fullscreen, requestFullscreen, exitFullscreen, toggleFullscreen, supported], + [fullscreen, requestFullscreen, exitFullscreen, toggleFullscreen, supported] ); return ( diff --git a/src/common/Shortcuts/shortcuts.json b/src/common/Shortcuts/shortcuts.json index a41924f2f..0303117d3 100644 --- a/src/common/Shortcuts/shortcuts.json +++ b/src/common/Shortcuts/shortcuts.json @@ -18,11 +18,6 @@ "label": "SETTINGS_SHORTCUT_NAVIGATE_HISTORY", "combos": [["Backspace"], ["Ctrl", "Backspace"]] }, - { - "name": "exit", - "label": "SETTINGS_SHORTCUT_EXIT_BACK", - "combos": [["Backspace"]] - }, { "name": "fullscreen", "label": "SETTINGS_SHORTCUT_FULLSCREEN", @@ -128,6 +123,11 @@ "name": "playNext", "label": "SETTINGS_SHORTCUT_PLAY_NEXT", "combos": [["Shift", "N"]] + }, + { + "name": "exit", + "label": "SETTINGS_SHORTCUT_EXIT_BACK", + "combos": [["Escape"]] } ] } diff --git a/src/components/NavBar/HorizontalNavBar/HorizontalNavBar.js b/src/components/NavBar/HorizontalNavBar/HorizontalNavBar.js index b1644c2b3..c9679ecf8 100644 --- a/src/components/NavBar/HorizontalNavBar/HorizontalNavBar.js +++ b/src/components/NavBar/HorizontalNavBar/HorizontalNavBar.js @@ -6,7 +6,6 @@ const classnames = require('classnames'); const { default: Icon } = require('@stremio/stremio-icons/react'); const { Button, Image } = require('stremio/components'); const { useFullscreen } = require('stremio/common/Fullscreen'); -const usePWA = require('stremio/common/usePWA'); const { useHorizontalNavGamepadNavigation } = require('stremio/services/GamepadNavigation'); const SearchBar = require('./SearchBar'); const NavMenu = require('./NavMenu'); @@ -17,8 +16,7 @@ const HorizontalNavBar = React.memo(({ className, route, query, title, backButto const backButtonOnClick = React.useCallback(() => { window.history.back(); }, []); - const [fullscreen, requestFullscreen, exitFullscreen] = useFullscreen(); - const [isIOSPWA] = usePWA(); + const [fullscreen, requestFullscreen, exitFullscreen, , supported] = useFullscreen(); const renderNavMenuLabel = React.useCallback(({ ref, className, onClick, children, }) => ( diff --git a/src/components/NavBar/HorizontalNavBar/NavMenu/NavMenuContent.js b/src/components/NavBar/HorizontalNavBar/NavMenu/NavMenuContent.js index d973f6b54..5dbc6beb6 100644 --- a/src/components/NavBar/HorizontalNavBar/NavMenu/NavMenuContent.js +++ b/src/components/NavBar/HorizontalNavBar/NavMenu/NavMenuContent.js @@ -23,8 +23,8 @@ const NavMenuContent = ({ onClick }) => { const streamingServer = useStreamingServer(); const { handlePlayUrl } = usePlayUrl(); const toast = useToast(); - const [fullscreen, requestFullscreen, exitFullscreen] = useFullscreen(); - const [isIOSPWA, isAndroidPWA] = usePWA(); + const [fullscreen, requestFullscreen, exitFullscreen, , supported] = useFullscreen(); + const [, isAndroidPWA] = usePWA(); const streamingServerWarningDismissed = React.useMemo(() => { return streamingServer.settings !== null && streamingServer.settings.type === 'Ready' || ( !isNaN(profile.settings.streamingServerWarningDismissed.getTime()) && @@ -79,7 +79,7 @@ const NavMenuContent = ({ onClick }) => { { - !isIOSPWA && !isAndroidPWA ? + supported && !isAndroidPWA ?