import { CheckCircle, CircleAlert, Loader2 } from 'lucide-react'; import { useState, useEffect } from 'react'; import { Button } from '@/components/ui/button'; import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle, DialogDescription, } from '@/components/ui/dialog'; import { Field, FieldGroup, FieldLabel } from '@/components/ui/field'; import { Input } from '@/components/ui/input'; import { useTranslation } from '@/i18n/useI18n'; interface Props { open: boolean; onOpenChange: (open: boolean) => void; currentName: string; onConfirm: (name: string) => Promise; } export function RenameSessionDialog({ open, onOpenChange, currentName, onConfirm }: Props) { const { t } = useTranslation(); const [name, setName] = useState(currentName); const [loading, setLoading] = useState(false); useEffect(() => { if (open) setName(currentName); }, [open, currentName]); const handleConfirm = async () => { if (!name.trim()) return; setLoading(true); try { await onConfirm(name.trim()); onOpenChange(false); } finally { setLoading(false); } }; return ( {t('dialog-session-rename.title')} {t('dialog-session-rename.description')} {t('dialog-session-rename.label')} setName(e.target.value)} placeholder={t('dialog-session-rename.placeholder')} onKeyDown={(e) => { if (e.key === 'Enter') handleConfirm(); }} autoFocus /> ); }