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