diff --git a/src/components/dashboard/reimbursement/ReceiptForm.tsx b/src/components/dashboard/reimbursement/ReceiptForm.tsx index bc26845..5770c81 100644 --- a/src/components/dashboard/reimbursement/ReceiptForm.tsx +++ b/src/components/dashboard/reimbursement/ReceiptForm.tsx @@ -6,7 +6,7 @@ import { motion, AnimatePresence } from 'framer-motion'; import type { ItemizedExpense } from '../../../schemas/pocketbase'; interface ReceiptFormData { - field: File; + file: File; itemized_expenses: ItemizedExpense[]; tax: number; date: string; @@ -134,7 +134,7 @@ export default function ReceiptForm({ onSubmit, onCancel }: ReceiptFormProps) { } onSubmit({ - field: file, + file: file, itemized_expenses: itemizedExpenses, tax, date, diff --git a/src/components/dashboard/reimbursement/ReimbursementForm.tsx b/src/components/dashboard/reimbursement/ReimbursementForm.tsx index dbb9710..8f86f72 100644 --- a/src/components/dashboard/reimbursement/ReimbursementForm.tsx +++ b/src/components/dashboard/reimbursement/ReimbursementForm.tsx @@ -10,7 +10,7 @@ import FilePreview from '../universal/FilePreview'; import type { ItemizedExpense, Reimbursement, Receipt } from '../../../schemas/pocketbase'; interface ReceiptFormData { - field: File; + file: File; itemized_expenses: ItemizedExpense[]; tax: number; date: string; @@ -182,7 +182,7 @@ export default function ReimbursementForm() { // Create receipt record const formData = new FormData(); - formData.append('field', receiptData.field); + formData.append('file', receiptData.file); formData.append('created_by', userId); formData.append('itemized_expenses', JSON.stringify(receiptData.itemized_expenses)); formData.append('tax', receiptData.tax.toString()); @@ -636,8 +636,8 @@ export default function ReimbursementForm() {
diff --git a/src/components/dashboard/reimbursement/ReimbursementList.tsx b/src/components/dashboard/reimbursement/ReimbursementList.tsx index a844122..baa9ce7 100644 --- a/src/components/dashboard/reimbursement/ReimbursementList.tsx +++ b/src/components/dashboard/reimbursement/ReimbursementList.tsx @@ -23,6 +23,7 @@ interface ReimbursementRequest extends Omit { // Extended Receipt interface with component-specific properties interface ReceiptDetails extends Omit { + file: string; itemized_expenses: ItemizedExpense[]; audited_by: string[]; created: string; @@ -210,7 +211,7 @@ export default function ReimbursementList() { ...prevMap, [receiptId]: { id: receiptRecord.id, - field: receiptRecord.field, + file: receiptRecord.file, created_by: receiptRecord.created_by, date: receiptRecord.date, location_name: receiptRecord.location_name, @@ -248,9 +249,9 @@ export default function ReimbursementList() { setSelectedReceipt(receiptDetailsMap[receiptId]); // Get the file URL using the PocketBase URL and collection info - const url = `${pb.baseUrl}/api/files/receipts/${receiptId}/${receiptDetailsMap[receiptId].field}`; + const url = `${pb.baseUrl}/api/files/receipts/${receiptId}/${receiptDetailsMap[receiptId].file}`; setPreviewUrl(url); - setPreviewFilename(receiptDetailsMap[receiptId].field); + setPreviewFilename(receiptDetailsMap[receiptId].file); setShowPreview(true); return; } @@ -268,7 +269,7 @@ export default function ReimbursementList() { const receiptDetails: ReceiptDetails = { id: receiptRecord.id, - field: receiptRecord.field, + file: receiptRecord.file, created_by: receiptRecord.created_by, itemized_expenses: itemizedExpenses, tax: receiptRecord.tax, @@ -290,9 +291,9 @@ export default function ReimbursementList() { setSelectedReceipt(receiptDetails); // Get the file URL using the PocketBase URL and collection info - const url = `${pb.baseUrl}/api/files/receipts/${receiptRecord.id}/${receiptRecord.field}`; + const url = `${pb.baseUrl}/api/files/receipts/${receiptRecord.id}/${receiptRecord.file}`; setPreviewUrl(url); - setPreviewFilename(receiptRecord.field); + setPreviewFilename(receiptRecord.file); setShowPreview(true); } else { throw new Error('Receipt not found'); diff --git a/src/components/dashboard/reimbursement/ReimbursementManagementPortal.tsx b/src/components/dashboard/reimbursement/ReimbursementManagementPortal.tsx index d91b468..04ea029 100644 --- a/src/components/dashboard/reimbursement/ReimbursementManagementPortal.tsx +++ b/src/components/dashboard/reimbursement/ReimbursementManagementPortal.tsx @@ -464,9 +464,13 @@ export default function ReimbursementManagementPortal() { }; const getReceiptUrl = (receipt: ExtendedReceipt): string => { - const auth = Authentication.getInstance(); - const pb = auth.getPocketBase(); - return pb.files.getURL(receipt, receipt.field); + try { + const pb = Authentication.getInstance().getPocketBase(); + return pb.files.getURL(receipt, receipt.file); + } catch (error) { + console.error('Error getting receipt URL:', error); + return ''; + } }; // Add this function to get the user avatar URL diff --git a/src/schemas/pocketbase/schema.ts b/src/schemas/pocketbase/schema.ts index 51512d4..354916c 100644 --- a/src/schemas/pocketbase/schema.ts +++ b/src/schemas/pocketbase/schema.ts @@ -150,7 +150,7 @@ export interface Reimbursement extends BaseRecord { * Collection ID: pbc_1571142587 */ export interface Receipt extends BaseRecord { - field: string; + file: string; // Single file created_by: string; // Relation to User itemized_expenses: string; // JSON string of ItemizedExpense[] tax: number;