import type { ComponentType, JSX } from 'react'; import type { PressEvent } from 'react-aria-components'; import useSettings from '@/hooks/useSettings'; import { Button, Show } from '@onelauncher/common/components'; import { Window } from '@tauri-apps/api/window'; import { ChevronLeftIcon, Maximize02Icon, Minimize01Icon, MinusIcon, XCloseIcon } from '@untitled-theme/icons-react'; import { useEffect, useState } from 'react'; import { twMerge } from 'tailwind-merge'; function WindowFrame() { const [isMaximized, setIsMaximized] = useState(false); const { settings } = useSettings(); const back = () => history.back(); const minimize = () => Window.getCurrent().minimize(); const toggleMaximize = () => Window.getCurrent().toggleMaximize(); const quit = () => Window.getCurrent().close(); useEffect(() => { let unlisten: (() => void) | undefined; (async () => { unlisten = await Window.getCurrent().onResized(() => { Window.getCurrent().isMaximized().then(setIsMaximized); }); })(); return () => unlisten?.(); }, []); return (
); } export default WindowFrame; function TitlebarButton({ icon: Icon, onClick, danger = false, }: { icon: ComponentType; onClick: (e: PressEvent) => void; danger?: boolean; }) { return ( ); }