UNPKG

@ib-hooks/use-full-screen

Version:

React Hook to make any element go full screen.

41 lines (36 loc) 1.16 kB
export const useFullScreen = (callback) => { const element = useRef(); const runCb = (isFull) => { if (callback && typeof callback === "function") { callback(isFull); } }; const triggerFull = () => { if (element.current) { if (element.current.requestFullscreen) { element.current.requestFullscreen(); } else if (element.current.mozRequestFullScreen) { element.current.mozRequestFullScreen(); } else if (element.current.webkitRequestFullscreen) { element.current.webkitRequestFullscreen(); } else if (element.current.msRequestFullscreen) { element.current.msRequestFullscreen(); } runCb(true); } }; const exitFull = () => { document.exitFullscreen(); if (document.exitFullscreen) { document.exitFullscreen(); } else if (document.mozCancelFullScreen) { document.mozCancelFullScreen(); } else if (document.webkitExitFullscreen) { document.webkitExitFullscreen(); } else if (document.msExitFullscreen) { document.msExitFullscreen(); } runCb(false); }; return { element, triggerFull, exitFull }; };