import { PropsWithChildren, useEffect, useRef, useState } from "react"; import { Button } from "./components/Button"; import { motion } from "framer-motion"; import { GitBranch, History, Home, Menu, Play, Settings } from "lucide-react"; import Hr from "./components/Hr"; import NavLink from "./components/NavLink"; import { useMediaQuery } from "@uidotdev/usehooks"; import Header from "./components/Header"; import { Tag } from "./components/Tag"; const drawerWidth = 256; const drawerWidthWithPadding = drawerWidth; const Shell: React.FC = ({ children }) => { const [isOpen, setIsOpen] = useState(false); const drawerRef = useRef(null); const x = isOpen ? 0 : -drawerWidthWithPadding; const width = isOpen ? drawerWidthWithPadding : 0; const isMobile = useMediaQuery("(max-width: 768px)"); useEffect(() => { setIsOpen(!isMobile); }, [isMobile]); useEffect(() => { const onOutsideClick = (e: MouseEvent) => { if ( drawerRef.current && !drawerRef.current.contains(e.target as Node) && isMobile ) { setIsOpen(false); e.stopPropagation(); e.preventDefault(); } }; document.addEventListener("click", onOutsideClick); return () => { document.removeEventListener("click", onOutsideClick); }; }); return (

Minesweeper
Business


Home Play History Settings NEW
Source
{children}
); }; export default Shell;