import { useState, useEffect, useCallback } from "react"; import { getCurrentWindow } from "@tauri-apps/api/window"; import { Minus, Square, Copy, X } from "lucide-react"; export function WindowControls() { const [isMaximized, setIsMaximized] = useState(false); useEffect(() => { const appWindow = getCurrentWindow(); appWindow.isMaximized().then(setIsMaximized); const unlisten = appWindow.onResized(async () => { const maximized = await appWindow.isMaximized(); setIsMaximized(maximized); }); return () => { unlisten.then((fn) => fn()); }; }, []); const handleMinimize = useCallback((e: React.MouseEvent) => { e.stopPropagation(); e.preventDefault(); getCurrentWindow().minimize(); }, []); const handleToggleMaximize = useCallback((e: React.MouseEvent) => { e.stopPropagation(); e.preventDefault(); getCurrentWindow().toggleMaximize(); }, []); const handleClose = useCallback((e: React.MouseEvent) => { e.stopPropagation(); e.preventDefault(); getCurrentWindow().close(); }, []); return (
e.stopPropagation()}> {/* Separator */}
{/* Minimize */} {/* Maximize / Restore */} {/* Close */}
); }