mirror of
https://github.com/Stremio/stremio-web.git
synced 2026-05-10 03:01:45 +00:00
feat: improve detection fullscreen compAtibility
This commit is contained in:
parent
6065d8bf15
commit
0785fbfc51
4 changed files with 10 additions and 9 deletions
|
|
@ -7,6 +7,7 @@ export type FullscreenContextValue = readonly [
|
|||
requestFullscreen: () => Promise<void> | void,
|
||||
exitFullscreen: () => void,
|
||||
toggleFullscreen: () => void,
|
||||
supported: boolean,
|
||||
];
|
||||
|
||||
const FullscreenContext = createContext<FullscreenContextValue | null>(null);
|
||||
|
|
|
|||
|
|
@ -94,9 +94,11 @@ const FullscreenProvider = ({ children }: Props) => {
|
|||
};
|
||||
}, [shell, toggleFullscreen, exitFullscreen, escExitFullscreen]);
|
||||
|
||||
const supported = shell.active || document.fullscreenEnabled === true;
|
||||
|
||||
const value = useMemo<FullscreenContextValue>(
|
||||
() => [fullscreen, requestFullscreen, exitFullscreen, toggleFullscreen],
|
||||
[fullscreen, requestFullscreen, exitFullscreen, toggleFullscreen]
|
||||
() => [fullscreen, requestFullscreen, exitFullscreen, toggleFullscreen, supported],
|
||||
[fullscreen, requestFullscreen, exitFullscreen, toggleFullscreen, supported]
|
||||
);
|
||||
|
||||
return (
|
||||
|
|
|
|||
|
|
@ -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, }) => (
|
||||
<Button ref={ref} className={classnames(className, styles['button-container'], styles['menu-button-container'])} tabIndex={-1} onClick={onClick}>
|
||||
<Icon className={styles['icon']} name={'person-outline'} />
|
||||
|
|
@ -64,7 +62,7 @@ const HorizontalNavBar = React.memo(({ className, route, query, title, backButto
|
|||
null
|
||||
}
|
||||
{
|
||||
!isIOSPWA && fullscreenButton ?
|
||||
supported && fullscreenButton ?
|
||||
<Button className={styles['button-container']} title={fullscreen ? t('EXIT_FULLSCREEN') : t('ENTER_FULLSCREEN')} tabIndex={-1} onClick={fullscreen ? exitFullscreen : requestFullscreen}>
|
||||
<Icon className={styles['icon']} name={fullscreen ? 'minimize' : 'maximize'} />
|
||||
</Button>
|
||||
|
|
|
|||
|
|
@ -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 }) => {
|
|||
</div>
|
||||
</div>
|
||||
{
|
||||
!isIOSPWA && !isAndroidPWA ?
|
||||
supported && !isAndroidPWA ?
|
||||
<div className={styles['nav-menu-section']}>
|
||||
<Button className={styles['nav-menu-option-container']} title={fullscreen ? t('EXIT_FULLSCREEN') : t('ENTER_FULLSCREEN')} onClick={fullscreen ? exitFullscreen : requestFullscreen}>
|
||||
<Icon className={styles['icon']} name={fullscreen ? 'minimize' : 'maximize'} />
|
||||
|
|
|
|||
Loading…
Reference in a new issue