Skip to content

Commit e9c01cc

Browse files
committed
#1577: Implemented receipt link and download functionality
1 parent 08f2649 commit e9c01cc

2 files changed

Lines changed: 18 additions & 6 deletions

File tree

src/frontend/src/pages/FinancePage/ReimbursementRequestDetailPage/ReimbursementRequestDetailsView.tsx

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import CheckIcon from '@mui/icons-material/Check';
99
import ConfirmationNumberIcon from '@mui/icons-material/ConfirmationNumber';
1010
import DeleteIcon from '@mui/icons-material/Delete';
1111
import LocalShippingIcon from '@mui/icons-material/LocalShipping';
12-
import { Grid, Typography, useTheme } from '@mui/material';
12+
import { Grid, Typography, useTheme, Link, IconButton } from '@mui/material';
1313
import { Box } from '@mui/system';
1414
import { useState } from 'react';
1515
import { useHistory } from 'react-router-dom';
@@ -30,6 +30,7 @@ import {
3030
undefinedPipe
3131
} from '../../../utils/pipes';
3232
import {
33+
imageDownloadUrl,
3334
imagePreviewUrl,
3435
isReimbursementRequestAdvisorApproved,
3536
isReimbursementRequestSaboSubmitted
@@ -38,6 +39,7 @@ import { routes } from '../../../utils/routes';
3839
import AddSABONumberModal from './AddSABONumberModal';
3940
import ReimbursementProductsView from './ReimbursementProductsView';
4041
import SubmitToSaboModal from './SubmitToSaboModal';
42+
import DownloadIcon from '@mui/icons-material/Download';
4143

4244
interface ReimbursementRequestDetailsViewProps {
4345
reimbursementRequest: ReimbursementRequest;
@@ -175,11 +177,19 @@ const ReimbursementRequestDetailsView: React.FC<ReimbursementRequestDetailsViewP
175177
<Typography variant="h5">Receipts</Typography>
176178
{reimbursementRequest.receiptPictures.map((receipt) => {
177179
return (
178-
<iframe
179-
style={{ height: `200px`, width: '50%' }}
180-
src={imagePreviewUrl(receipt.googleFileId)}
181-
title={receipt.name}
182-
/>
180+
<Box>
181+
<Link href={receipt.googleFileId} target="_blank" underline="hover" fontSize={19}>
182+
{receipt.name}
183+
</Link>
184+
<IconButton href={imageDownloadUrl(receipt.googleFileId)}>
185+
<DownloadIcon />
186+
</IconButton>
187+
<iframe
188+
style={{ height: `200px`, width: '50%' }}
189+
src={imagePreviewUrl(receipt.googleFileId)}
190+
title={receipt.name}
191+
/>
192+
</Box>
183193
);
184194
})}
185195
</Box>

src/frontend/src/utils/reimbursement-request.utils.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,8 @@ export const getReimbursementRequestDateSubmittedToSabo = (reimbursementRequest:
9090

9191
export const imagePreviewUrl = (googleFileId: string) => `https://drive.google.com/file/d/${googleFileId}/preview`;
9292

93+
export const imageDownloadUrl = (googleFileId: string) => `https://drive.google.com/uc?export=download&id=${googleFileId}`;
94+
9395
export const getRefundRowData = (refund: Reimbursement) => {
9496
return { date: refund.dateCreated, amount: refund.amount, recipient: refund.userSubmitted };
9597
};

0 commit comments

Comments
 (0)