renamed field to file for consistency for receipts

This commit is contained in:
chark1es 2025-03-01 15:42:30 -08:00
parent 5a453db3a4
commit 5fd2eb67a0
5 changed files with 21 additions and 16 deletions

View file

@ -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,

View file

@ -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() {
</div>
<div className="bg-base-200/50 backdrop-blur-sm rounded-lg p-4 shadow-sm">
<FilePreview
url={URL.createObjectURL(selectedReceiptDetails.field)}
filename={selectedReceiptDetails.field.name}
url={URL.createObjectURL(selectedReceiptDetails.file)}
filename={selectedReceiptDetails.file.name}
isModal={false}
/>
</div>

View file

@ -23,6 +23,7 @@ interface ReimbursementRequest extends Omit<Reimbursement, 'audit_notes'> {
// Extended Receipt interface with component-specific properties
interface ReceiptDetails extends Omit<Receipt, 'itemized_expenses' | 'audited_by'> {
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');

View file

@ -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

View file

@ -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;