import { useEffect } from "react"; import { useTranslation } from "react-i18next"; import { KeyRound } from "lucide-react"; import { Button } from "@/components/ui/button.tsx"; interface SudoPasswordPopupProps { isOpen: boolean; hostPassword: string; backgroundColor: string; onConfirm: (password: string) => void; onDismiss: () => void; } export function SudoPasswordPopup({ isOpen, hostPassword, backgroundColor, onConfirm, onDismiss }: SudoPasswordPopupProps) { const { t } = useTranslation(); useEffect(() => { if (!isOpen) return; const handleKeyDown = (e: KeyboardEvent) => { if (e.key === "Enter") { e.preventDefault(); e.stopPropagation(); e.stopImmediatePropagation(); onConfirm(hostPassword); } else if (e.key === "Escape") { e.preventDefault(); e.stopPropagation(); e.stopImmediatePropagation(); onDismiss(); } }; window.addEventListener("keydown", handleKeyDown, true); return () => window.removeEventListener("keydown", handleKeyDown, true); }, [isOpen, onConfirm, onDismiss, hostPassword]); if (!isOpen) return null; return (

{t("terminal.sudoPasswordPopupTitle", "Insert password?")}

{t("terminal.sudoPasswordPopupHint", "Press Enter to insert, Esc to dismiss")}

); }