'use client'; import * as React from 'react'; import { useTranslations } from 'next-intl'; import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle, } from '@/components/ui/dialog'; import { Button } from '@/components/ui/button'; import { FormField } from '@/components/ui/form-field'; import { FileDropzone } from '@/components/forms/file-dropzone'; import { DescriptionList } from '@/components/data/description-list'; const ACCEPTED = '.pdf,.doc,.docx,.xls,.xlsx,.jpg,.jpeg,.png,.gif'; interface ReplaceDocumentDialogProps { document: { fileName: string; quoteNumber: string } | null; onOpenChange: (open: boolean) => void; onSubmit: (file: File) => Promise; } export function ReplaceDocumentDialog({ document, onOpenChange, onSubmit, }: ReplaceDocumentDialogProps) { const t = useTranslations('dashboard.userDocuments'); const tCommon = useTranslations('common'); const [files, setFiles] = React.useState([]); const [submitting, setSubmitting] = React.useState(false); React.useEffect(() => { if (document) setFiles([]); }, [document]); const submit = async () => { if (files.length === 0 || submitting) return; setSubmitting(true); try { await onSubmit(files[0]); } finally { setSubmitting(false); } }; return ( {t('replaceDocument.modalTitle')} {document && (
)}
); }