diff --git a/src/common/Fullscreen/FullscreenContext.ts b/src/common/Fullscreen/FullscreenContext.ts index 117a616e8..1c9599ffb 100644 --- a/src/common/Fullscreen/FullscreenContext.ts +++ b/src/common/Fullscreen/FullscreenContext.ts @@ -3,17 +3,13 @@ import { createContext } from 'react'; export type FullscreenContextValue = readonly [ - boolean, - () => Promise | void, - () => void, - () => void, + fullscreen: boolean, + requestFullscreen: () => Promise | void, + exitFullscreen: () => void, + toggleFullscreen: () => void, ]; -const noop = () => undefined; - -const defaultValue: FullscreenContextValue = [false, noop, noop, noop]; - -const FullscreenContext = createContext(defaultValue); +const FullscreenContext = createContext(null); FullscreenContext.displayName = 'FullscreenContext'; diff --git a/src/common/Fullscreen/useFullscreen.ts b/src/common/Fullscreen/useFullscreen.ts index da27035d2..5cee0a801 100644 --- a/src/common/Fullscreen/useFullscreen.ts +++ b/src/common/Fullscreen/useFullscreen.ts @@ -3,6 +3,13 @@ import { useContext } from 'react'; import FullscreenContext from './FullscreenContext'; -const useFullscreen = () => useContext(FullscreenContext); +const useFullscreen = () => { + const value = useContext(FullscreenContext); + if (value === null) { + throw new Error('useFullscreen must be used inside FullscreenProvider'); + } + + return value; +}; export default useFullscreen;