import { Minimize2, Power, X } from 'lucide-react' import { useEffect, useState } from 'react' import './WindowCloseDialog.scss' interface WindowCloseDialogProps { open: boolean canMinimizeToTray: boolean restoreMethod?: 'tray' | 'dock' onSelect: (action: 'tray' | 'quit', rememberChoice: boolean) => void onCancel: () => void } export default function WindowCloseDialog({ open, canMinimizeToTray, restoreMethod = 'tray', onSelect, onCancel }: WindowCloseDialogProps) { const [rememberChoice, setRememberChoice] = useState(false) const isDockRestore = restoreMethod === 'dock' useEffect(() => { if (!open) return setRememberChoice(false) const handleKeyDown = (event: KeyboardEvent) => { if (event.key === 'Escape') { event.preventDefault() onCancel() } } window.addEventListener('keydown', handleKeyDown) return () => window.removeEventListener('keydown', handleKeyDown) }, [open, onCancel]) if (!open) return null return (
{canMinimizeToTray ? isDockRestore ? '你可以隐藏主窗口并保留后台进程与本地 API,稍后可从 Dock 或重新打开应用恢复。' : '你可以保留后台进程与本地 API,或者直接完全退出应用。' : '当前系统托盘不可用,本次只能完全退出应用。'}