Skip to content

Commit 9a917a3

Browse files
committed
#2082 created new type DownloadReceiptsInput and added default values to useForm
1 parent 3356e8e commit 9a917a3

2 files changed

Lines changed: 34 additions & 30 deletions

File tree

src/frontend/src/hooks/finance.hooks.ts

Lines changed: 19 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,13 @@ export interface EditReimbursementRequestPayload extends CreateReimbursementRequ
5656
receiptPictures: ReimbursementReceiptCreateArgs[];
5757
}
5858

59+
export interface DownloadReceiptsFormInput {
60+
fileIds: string[];
61+
startDate: Date;
62+
endDate: Date;
63+
refundSource: string;
64+
}
65+
5966
export interface ExpenseTypePayload {
6067
code: number;
6168
name: string;
@@ -335,22 +342,21 @@ export const useDenyReimbursementRequest = (id: string) => {
335342
* @param fileIds The google file ids to fetch the images for
336343
*/
337344
export const useDownloadPDFOfImages = () => {
338-
return useMutation(
339-
['reimbursement-requests'],
340-
async (formData: { fileIds: string[]; startDate: Date; endDate: Date; refundSource: string }) => {
341-
const promises = formData.fileIds.map((fileId) => {
342-
return downloadGoogleImage(fileId);
343-
});
345+
return useMutation(['reimbursement-requests'], async (formData: { requestData: DownloadReceiptsFormInput }) => {
346+
const promises = formData.requestData.fileIds.map((fileId) => {
347+
return downloadGoogleImage(fileId);
348+
});
344349

345-
const blobs = await Promise.all(promises);
346-
const pdfName = `${formData.startDate.toLocaleDateString()}-${formData.endDate.toLocaleDateString()}.pdf`;
350+
const blobs = await Promise.all(promises);
351+
const pdfName = `${formData.requestData.startDate.toLocaleDateString()}-${formData.requestData.endDate.toLocaleDateString()}.pdf`;
347352

348-
const pdfFileName =
349-
formData.refundSource !== 'BOTH' ? `receipts-${formData.refundSource}-${pdfName}` : `receipts-${pdfName}`;
353+
const pdfFileName =
354+
formData.requestData.refundSource !== 'BOTH'
355+
? `receipts-${formData.requestData.refundSource}-${pdfName}`
356+
: `receipts-${pdfName}`;
350357

351-
await downloadBlobsToPdf(blobs, pdfFileName);
352-
}
353-
);
358+
await downloadBlobsToPdf(blobs, pdfFileName);
359+
});
354360
};
355361

356362
/**

src/frontend/src/pages/FinancePage/FinanceComponents/GenerateReceiptsModal.tsx

Lines changed: 15 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -58,10 +58,12 @@ const GenerateReceiptsModal = ({ open, setOpen, allReimbursementRequests }: Gene
5858

5959
try {
6060
await mutateAsync({
61-
fileIds: receipts.map((receipt) => receipt.googleFileId),
62-
startDate: data.startDate,
63-
endDate: data.endDate,
64-
refundSource: data.refundSource
61+
requestData: {
62+
fileIds: receipts.map((receipt) => receipt.googleFileId),
63+
startDate: data.startDate,
64+
endDate: data.endDate,
65+
refundSource: data.refundSource
66+
}
6567
});
6668
} catch (error: unknown) {
6769
if (error instanceof Error) {
@@ -77,7 +79,12 @@ const GenerateReceiptsModal = ({ open, setOpen, allReimbursementRequests }: Gene
7779
reset,
7880
formState: { errors, isValid }
7981
} = useForm({
80-
resolver: yupResolver(schema)
82+
resolver: yupResolver(schema),
83+
defaultValues: {
84+
startDate: new Date(),
85+
endDate: new Date(),
86+
refundSource: refundSourceOptions[2]
87+
}
8188
});
8289

8390
return (
@@ -107,8 +114,7 @@ const GenerateReceiptsModal = ({ open, setOpen, allReimbursementRequests }: Gene
107114
onClose={() => setStartDatePickerOpen(false)}
108115
onOpen={() => setStartDatePickerOpen(true)}
109116
onChange={(newValue) => {
110-
const newDate = newValue ?? new Date();
111-
onChange(newDate);
117+
onChange(newValue ?? new Date());
112118
}}
113119
PopperProps={{
114120
placement: 'right'
@@ -138,8 +144,7 @@ const GenerateReceiptsModal = ({ open, setOpen, allReimbursementRequests }: Gene
138144
onClose={() => setEndDatePickerOpen(false)}
139145
onOpen={() => setEndDatePickerOpen(true)}
140146
onChange={(newValue) => {
141-
const newDate = newValue ?? new Date();
142-
onChange(newDate);
147+
onChange(newValue ?? new Date());
143148
}}
144149
PopperProps={{
145150
placement: 'right'
@@ -163,14 +168,7 @@ const GenerateReceiptsModal = ({ open, setOpen, allReimbursementRequests }: Gene
163168
name="refundSource"
164169
control={control}
165170
render={({ field: { onChange, value } }) => (
166-
<Select
167-
value={value}
168-
defaultValue={refundSourceOptions[2]}
169-
onChange={(event) => {
170-
const newRefundSource = event.target.value;
171-
onChange(newRefundSource);
172-
}}
173-
>
171+
<Select value={value} onChange={(event) => onChange(event.target.value)}>
174172
{refundSourceOptions.map((status) => (
175173
<MenuItem key={status} value={status}>
176174
{status}

0 commit comments

Comments
 (0)