1- import { FormControl , FormLabel , MenuItem , Select , TextField } from '@mui/material' ;
1+ import { FormControl , FormLabel , MenuItem , Select , TextField , setRef } from '@mui/material' ;
22import NERFormModal from '../../../components/NERFormModal' ;
33import { Controller , useForm } from 'react-hook-form' ;
44import { DatePicker } from '@mui/x-date-pickers' ;
@@ -8,6 +8,7 @@ import * as yup from 'yup';
88import { useDownloadPDFOfImages } from '../../../hooks/finance.hooks' ;
99import { useToast } from '../../../hooks/toasts.hooks' ;
1010import { ReimbursementRequest } from 'shared' ;
11+ import { useState } from 'react' ;
1112
1213const 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
4034const 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 >
0 commit comments