Skip to content

Commit 6e1c809

Browse files
committed
#2082 no more use states
1 parent d575408 commit 6e1c809

3 files changed

Lines changed: 35 additions & 52 deletions

File tree

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

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -334,18 +334,25 @@ export const useDenyReimbursementRequest = (id: string) => {
334334
*
335335
* @param fileIds The google file ids to fetch the images for
336336
*/
337-
export const useDownloadPDFOfImages = (startDate: Date, endDate: Date, refundSource: String) => {
338-
return useMutation(['reimbursement-requests'], async (formData: { fileIds: string[] }) => {
339-
const promises = formData.fileIds.map((fileId) => {
340-
return downloadGoogleImage(fileId);
341-
});
342-
const blobs = await Promise.all(promises);
343-
const pdfName = `${startDate.toLocaleDateString()}-${endDate.toLocaleDateString()}.pdf`;
337+
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+
});
344344

345-
const pdfFileName = refundSource !== 'BOTH' ? `receipts-${refundSource}-${pdfName}` : `receipts-${pdfName}`;
345+
console.log(formData.startDate)
346346

347-
await downloadBlobsToPdf(blobs, pdfFileName);
348-
});
347+
const blobs = await Promise.all(promises);
348+
const pdfName = `${formData.startDate.toLocaleDateString()}-${formData.endDate.toLocaleDateString()}.pdf`;
349+
350+
const pdfFileName =
351+
formData.refundSource !== 'BOTH' ? `receipts-${formData.refundSource}-${pdfName}` : `receipts-${pdfName}`;
352+
353+
await downloadBlobsToPdf(blobs, pdfFileName);
354+
}
355+
);
349356
};
350357

351358
/**

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

Lines changed: 15 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { FormControl, FormLabel, MenuItem, Select, TextField } from '@mui/material';
1+
import { FormControl, FormLabel, MenuItem, Select, TextField, setRef } from '@mui/material';
22
import NERFormModal from '../../../components/NERFormModal';
33
import { Controller, useForm } from 'react-hook-form';
44
import { DatePicker } from '@mui/x-date-pickers';
@@ -8,6 +8,7 @@ import * as yup from 'yup';
88
import { useDownloadPDFOfImages } from '../../../hooks/finance.hooks';
99
import { useToast } from '../../../hooks/toasts.hooks';
1010
import { ReimbursementRequest } from 'shared';
11+
import { useState } from 'react';
1112

1213
const schema = yup.object().shape({
1314
startDate: yup.date().required('Start Date is required'),
@@ -25,36 +26,25 @@ interface GenerateReceiptsModalProps {
2526
open: boolean;
2627
setOpen: (val: boolean) => void;
2728
allReimbursementRequests?: ReimbursementRequest[];
28-
setRefundSource: (val: string) => void;
2929
refundSource: string;
3030
startDate: Date;
3131
endDate: Date;
32-
setStartDate: (val: Date) => void;
33-
setEndDate: (val: Date) => void;
34-
endDatePickerOpen: boolean;
35-
startDatePickerOpen: boolean;
36-
setEndDatePickerOpen: (val: boolean) => void;
37-
setStartDatePickerOpen: (val: boolean) => void;
3832
}
3933

4034
const GenerateReceiptsModal = ({
4135
open,
4236
setOpen,
4337
allReimbursementRequests,
44-
refundSource,
45-
setRefundSource,
4638
startDate,
47-
setStartDate,
4839
endDate,
49-
setEndDate,
50-
setEndDatePickerOpen,
51-
setStartDatePickerOpen,
52-
startDatePickerOpen,
53-
endDatePickerOpen
40+
refundSource
5441
}: GenerateReceiptsModalProps) => {
5542
const toast = useToast();
5643

57-
const { mutateAsync, isLoading } = useDownloadPDFOfImages(startDate, endDate, refundSource);
44+
const [endDatePickerOpen, setEndDatePickerOpen] = useState(false);
45+
const [startDatePickerOpen, setStartDatePickerOpen] = useState(false);
46+
47+
const { mutateAsync, isLoading } = useDownloadPDFOfImages();
5848

5949
const refundSourceOptions = ['BUDGET', 'CASH', 'BOTH'];
6050

@@ -78,7 +68,12 @@ const GenerateReceiptsModal = ({
7868

7969
try {
8070
await mutateAsync({
81-
fileIds: receipts.map((receipt) => receipt.googleFileId)
71+
fileIds: receipts.map((receipt) => receipt.googleFileId),
72+
startDate: data.startDate,
73+
endDate: data.endDate,
74+
refundSource: data.refundSource
75+
76+
8277
});
8378
} catch (error: unknown) {
8479
if (error instanceof Error) {
@@ -92,9 +87,9 @@ const GenerateReceiptsModal = ({
9287
handleSubmit,
9388
control,
9489
reset,
95-
formState: { errors, isValid }
90+
formState: { errors, isValid },
9691
} = useForm({
97-
resolver: yupResolver(schema)
92+
resolver: yupResolver(schema),
9893
});
9994

10095
return (
@@ -125,7 +120,6 @@ const GenerateReceiptsModal = ({
125120
onOpen={() => setStartDatePickerOpen(true)}
126121
onChange={(newValue) => {
127122
const newDate = newValue ?? new Date();
128-
setStartDate(newDate);
129123
onChange(newDate);
130124
}}
131125
PopperProps={{
@@ -157,7 +151,6 @@ const GenerateReceiptsModal = ({
157151
onOpen={() => setEndDatePickerOpen(true)}
158152
onChange={(newValue) => {
159153
const newDate = newValue ?? new Date();
160-
setEndDate(newDate);
161154
onChange(newDate);
162155
}}
163156
PopperProps={{
@@ -184,10 +177,8 @@ const GenerateReceiptsModal = ({
184177
render={({ field: { onChange, value } }) => (
185178
<Select
186179
value={value}
187-
defaultValue={refundSourceOptions[2]}
188180
onChange={(event) => {
189181
const newRefundSource = event.target.value;
190-
setRefundSource(newRefundSource);
191182
onChange(newRefundSource);
192183
}}
193184
>

src/frontend/src/pages/FinancePage/FinancePage.tsx

Lines changed: 3 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -62,13 +62,6 @@ const FinancePage = () => {
6262
const [accountCreditModalShow, setAccountCreditModalShow] = useState<boolean>(false);
6363
const [showTotalAmountSpent, setShowTotalAmountSpent] = useState(false);
6464

65-
const [refundSource, setRefundSource] = useState('');
66-
const [startDate, setStartDate] = useState(new Date());
67-
const [endDate, setEndDate] = useState(new Date());
68-
69-
const [endDatePickerOpen, setEndDatePickerOpen] = useState(false);
70-
const [startDatePickerOpen, setStartDatePickerOpen] = useState(false);
71-
7265
if (isFinance && allReimbursementRequestsIsError) return <ErrorPage message={allReimbursementRequestsError?.message} />;
7366
if (userReimbursementRequestIsError) return <ErrorPage message={userReimbursementRequestError?.message} />;
7467
if (isFinance && allPendingAdvisorListIsError) return <ErrorPage message={allPendingAdvisorListError?.message} />;
@@ -168,17 +161,9 @@ const FinancePage = () => {
168161
open={showGenerateReceipts}
169162
setOpen={setShowGenerateReceipts}
170163
allReimbursementRequests={allReimbursementRequests}
171-
setRefundSource={setRefundSource}
172-
refundSource={refundSource}
173-
startDate={startDate}
174-
endDate={endDate}
175-
setStartDate={setStartDate}
176-
setEndDate={setEndDate}
177-
setEndDatePickerOpen={setEndDatePickerOpen}
178-
setStartDatePickerOpen={setStartDatePickerOpen}
179-
endDatePickerOpen={endDatePickerOpen}
180-
startDatePickerOpen={startDatePickerOpen}
181-
/>
164+
refundSource="BOTH"
165+
startDate={new Date()}
166+
endDate={new Date()}/>
182167
<Grid container>
183168
<Grid item xs={12} sm={12} md={4}>
184169
<Refunds

0 commit comments

Comments
 (0)