import React from 'react'; import { Button } from '@/components/ui/button'; import { Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, } from '@/components/ui/dialog'; import { Input } from '@/components/ui/input'; import { useI18n } from '@/lib/i18n'; type SaveProjectPlanDialogProps = { open: boolean; onOpenChange: (open: boolean) => void; initialTitle: string; sourceText: string; saving?: boolean; onSave: (title: string) => Promise | void; }; export function SaveProjectPlanDialog(props: SaveProjectPlanDialogProps) { const { t } = useI18n(); const { open, onOpenChange, initialTitle, sourceText, saving = false, onSave } = props; const titleInputId = React.useId(); const [title, setTitle] = React.useState(initialTitle); React.useEffect(() => { if (open) { setTitle(initialTitle); } }, [initialTitle, open]); const trimmedTitle = title.trim(); return ( { if (!saving) onOpenChange(nextOpen); }}> {t('saveProjectPlanDialog.title')} {t('saveProjectPlanDialog.description')}
setTitle(event.target.value)} placeholder={t('saveProjectPlanDialog.field.titlePlaceholder')} autoFocus disabled={saving} />
{sourceText}
); }