import React, { useState, useEffect } from "react"; import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle, DialogFooter, } from "@/components/ui/dialog.tsx"; import { Button } from "@/components/ui/button.tsx"; import { PasswordInput } from "@/components/ui/password-input.tsx"; import { useTranslation } from "react-i18next"; import { ShieldAlert } from "lucide-react"; interface SudoPasswordDialogProps { open: boolean; onOpenChange: (open: boolean) => void; onSubmit: (password: string) => void; } export function SudoPasswordDialog({ open, onOpenChange, onSubmit, }: SudoPasswordDialogProps) { const { t } = useTranslation(); const [password, setPassword] = useState(""); const [loading, setLoading] = useState(false); useEffect(() => { if (!open) { setPassword(""); setLoading(false); } }, [open]); const handleSubmit = async (e?: React.FormEvent) => { if (e) { e.preventDefault(); } if (!password.trim()) { return; } setLoading(true); onSubmit(password); }; return (
{t("fileManager.sudoPasswordRequired")} {t("fileManager.enterSudoPassword")}
setPassword(e.target.value)} placeholder={t("fileManager.sudoPassword")} autoFocus disabled={loading} />
); }