import { Minimize2, Power, X } from 'lucide-react' import { useEffect, useState } from 'react' import './WindowCloseDialog.scss' interface WindowCloseDialogProps { open: boolean canMinimizeToTray: boolean onSelect: (action: 'tray' | 'quit', rememberChoice: boolean) => void onCancel: () => void } export default function WindowCloseDialog({ open, canMinimizeToTray, onSelect, onCancel }: WindowCloseDialogProps) { const [rememberChoice, setRememberChoice] = useState(false) 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 (
event.stopPropagation()} role="dialog" aria-modal="true" aria-labelledby="window-close-dialog-title" >
退出行为

关闭 WeFlow

{canMinimizeToTray ? '你可以保留后台进程与本地 API,或者直接完全退出应用。' : '当前系统托盘不可用,本次只能完全退出应用。'}

{canMinimizeToTray && ( )}
) }