import { Button } from "@mantine/core"; import { Suspense, lazy, useCallback, useEffect, useState } from "react"; import { addLogEntry } from "../../../../modules/logEntries"; const MenuDrawer = lazy(() => import("./MenuDrawer")); export default function MenuButton() { const [isDrawerOpen, setDrawerOpen] = useState(false); const [isDrawerLoaded, setDrawerLoaded] = useState(false); const openDrawer = useCallback(() => { setDrawerOpen(true); addLogEntry("User opened the menu"); }, []); const closeDrawer = useCallback(() => { setDrawerOpen(false); addLogEntry("User closed the menu"); }, []); const handleDrawerLoad = useCallback(() => { if (!isDrawerLoaded) { addLogEntry("Menu drawer loaded"); setDrawerLoaded(true); } }, [isDrawerLoaded]); return ( <> {(isDrawerOpen || isDrawerLoaded) && ( }> )} ); } function SuspenseListener({ onUnload }: { onUnload: () => void }) { useEffect(() => { return () => onUnload(); }, [onUnload]); return null; }