{props.children}
@@ -33,7 +36,7 @@ export const Fullscreen = (props: Props) => {
);
};
-export const FullscreenToggle = () => {
+export const FullscreenOpen = () => {
const [, setIsFullscreen] = useFullscreen();
return (
@@ -49,3 +52,54 @@ export const FullscreenToggle = () => {
);
};
+
+export const FullscreenClose = () => {
+ const [fullscreen, setIsFullscreen] = useFullscreen();
+ const isFullscreenDebounced = useDebounce(fullscreen, 1000);
+ const [visible, setVisible] = useState(false);
+ const ref = useRef
(null);
+ useEffect(() => {
+ let timer: any;
+ const unsub = bind(window, {
+ type: 'mousemove',
+ listener(ev) {
+ if (fullscreen) {
+ setVisible(true);
+ clearTimeout(timer);
+ timer = setTimeout(() => {
+ if (!ref.current?.contains(ev.target as Node)) {
+ setVisible(false);
+ }
+ }, 500);
+ }
+ },
+ });
+ return () => {
+ unsub();
+ clearTimeout(timer);
+ };
+ }, [fullscreen]);
+
+ if (!fullscreen) {
+ return null;
+ }
+
+ return (
+
+
+
+
+
+ );
+};