diff --git a/views/UploadView.tsx b/views/UploadView.tsx index 1311069..a161bf2 100644 --- a/views/UploadView.tsx +++ b/views/UploadView.tsx @@ -15,6 +15,7 @@ const UploadView: React.FC = () => { const [recordId, setRecordId] = useState(null); const [createdAt, setCreatedAt] = useState(null); const [error, setError] = useState(null); + const [saveError, setSaveError] = useState(null); const [isSaved, setIsSaved] = useState(false); const fileInputRef = useRef(null); @@ -45,7 +46,7 @@ const UploadView: React.FC = () => { lineItems: [] }; // We need the image even if analysis failed to initialize the record - if (image) initializeRecord(emptyData, image); + if (resizedImage) initializeRecord(emptyData, resizedImage); } finally { setIsAnalyzing(false); } @@ -59,24 +60,29 @@ const UploadView: React.FC = () => { setData(initialData); setRecordId(newId); setCreatedAt(created); + }; + + const handleSave = async () => { + if (!data || !recordId || !image || !createdAt) return; - // Autosave immediately + setSaveError(null); try { await saveBill({ - ...initialData, - id: newId, - imageData: imgData, - createdAt: created, + ...data, + id: recordId, + imageData: image, + createdAt: createdAt, }); setIsSaved(true); setTimeout(() => setIsSaved(false), 2000); } catch (e) { console.error("Failed to save bill", e); + setSaveError("Failed to save. Please try again."); } }; const updateField = (field: keyof BillData, value: any) => { - if (!data || !recordId || !image || !createdAt) return; + if (!data) return; let newData = { ...data, [field]: value }; @@ -89,14 +95,6 @@ const UploadView: React.FC = () => { } setData(newData); - - // Autosave on change - saveBill({ - ...newData, - id: recordId, - imageData: image, - createdAt: createdAt, - }).catch(err => console.error("Autosave failed", err)); }; const handleBack = () => navigate('/'); @@ -163,8 +161,8 @@ const UploadView: React.FC = () => { onBack={handleBack} action={
-
- {error && ( + {error && (

{error}

)} + {saveError && ( +
+ +

{saveError}

+
+ )} {/* Form - Right Side on Desktop */} @@ -203,7 +207,6 @@ const UploadView: React.FC = () => {

Receipt Details

- Autosave On