@@ -16,6 +16,7 @@ import ReimbursementRequestTable from './ReimbursementRequestsSection';
1616import {
1717 useAllReimbursementRequests ,
1818 useCurrentUserReimbursementRequests ,
19+ useDownloadCSVFileOfReimbursementRequests ,
1920 useGetPendingAdvisorList
2021} from '../../hooks/finance.hooks' ;
2122import ErrorPage from '../ErrorPage' ;
@@ -26,9 +27,10 @@ import { routes } from '../../utils/routes';
2627import ReportRefundModal from './FinanceComponents/ReportRefundModal' ;
2728import GenerateReceiptsModal from './FinanceComponents/GenerateReceiptsModal' ;
2829import PendingAdvisorModal from './FinanceComponents/PendingAdvisorListModal' ;
29- import { isGuest } from 'shared' ;
30+ import { isAdmin , isGuest } from 'shared' ;
3031import WorkIcon from '@mui/icons-material/Work' ;
3132import TotalAmountSpentModal from './FinanceComponents/TotalAmountSpentModal' ;
33+ import { useToast } from '../../hooks/toasts.hooks' ;
3234
3335const FinancePage = ( ) => {
3436 const user = useCurrentUser ( ) ;
@@ -53,6 +55,8 @@ const FinancePage = () => {
5355 isError : allPendingAdvisorListIsError ,
5456 error : allPendingAdvisorListError
5557 } = useGetPendingAdvisorList ( ) ;
58+ const { mutateAsync : downloadCSVFileOfReimbursementRequests } = useDownloadCSVFileOfReimbursementRequests ( ) ;
59+ const toast = useToast ( ) ;
5660
5761 const { isFinance } = user ;
5862
@@ -83,6 +87,16 @@ const FinancePage = () => {
8387 setAnchorEl ( null ) ;
8488 } ;
8589
90+ const downloadReimbursementRequests = async ( ) => {
91+ try {
92+ await downloadCSVFileOfReimbursementRequests ( ) ;
93+ } catch ( error : unknown ) {
94+ if ( error instanceof Error ) {
95+ toast . error ( error . message ) ;
96+ }
97+ }
98+ } ;
99+
86100 const financeActionsDropdown = (
87101 < >
88102 < NERButton
@@ -136,6 +150,12 @@ const FinancePage = () => {
136150 </ ListItemIcon >
137151 Total Amount Spent
138152 </ MenuItem >
153+ < MenuItem onClick = { async ( ) => await downloadReimbursementRequests ( ) } disabled = { ! isFinance && ! isAdmin ( user . role ) } >
154+ < ListItemIcon >
155+ < WorkIcon fontSize = "small" />
156+ </ ListItemIcon >
157+ Download Reimbursement Requests To CSV
158+ </ MenuItem >
139159 </ Menu >
140160 </ >
141161 ) ;
0 commit comments