Skip to content

Commit 7cb8cbc

Browse files
authored
Merge pull request #2047 from Northeastern-Electric-Racing/#1872-FinanceFixes-ShowReimbursedStatusonFrontend
#1872: Added reimbursed status on frontend
2 parents c038e1b + 190f389 commit 7cb8cbc

4 files changed

Lines changed: 67 additions & 16 deletions

File tree

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
/*
2+
* This file is part of NER's FinishLine and licensed under GNU AGPLv3.
3+
* See the LICENSE file in the repository root folder for details.
4+
*/
5+
6+
import Chip from '@mui/material/Chip';
7+
import { green, red, grey, purple, yellow, orange } from '@mui/material/colors';
8+
import { ReimbursementStatusType } from 'shared';
9+
import { displayEnum } from '../utils/pipes';
10+
11+
const determineStatusPillColor = (status: ReimbursementStatusType) => {
12+
switch (status) {
13+
case ReimbursementStatusType.PENDING_FINANCE:
14+
return yellow[700];
15+
case ReimbursementStatusType.SABO_SUBMITTED:
16+
return orange[600];
17+
case ReimbursementStatusType.ADVISOR_APPROVED:
18+
return purple[600];
19+
case ReimbursementStatusType.REIMBURSED:
20+
return green[600];
21+
case ReimbursementStatusType.DENIED:
22+
return red[600];
23+
default:
24+
return grey[600];
25+
}
26+
};
27+
28+
const ReimbursementRequestStatusPill = ({ status }: { status: ReimbursementStatusType }) => {
29+
const statusPillColor = determineStatusPillColor(status);
30+
return (
31+
<Chip
32+
size="small"
33+
label={displayEnum(status)}
34+
variant="filled"
35+
sx={{
36+
fontSize: 12,
37+
color: 'white',
38+
backgroundColor: statusPillColor,
39+
width: 125
40+
}}
41+
/>
42+
);
43+
};
44+
45+
export default ReimbursementRequestStatusPill;

src/frontend/src/layouts/PageTitle/PageTitle.tsx

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -39,17 +39,19 @@ const PageTitle: React.FC<PageTitleProps> = ({ title, headerRight, tabs, sticky,
3939
>
4040
<Grid container>
4141
<Grid container item md={12} display="flex" alignItems={'center'}>
42-
<Grid item md={chips ? 3 : 6} xs={8}>
43-
<Typography variant="h4" fontSize={30}>
44-
{title}
45-
</Typography>
46-
</Grid>
47-
{chips && (
48-
<Grid item md={3} xs={4}>
49-
{chips}
42+
<Grid container md={8} xs={12} spacing={2}>
43+
<Grid item>
44+
<Typography variant="h4" fontSize={30}>
45+
{title}
46+
</Typography>
5047
</Grid>
51-
)}
52-
<Grid item md={6} xs={12}>
48+
{chips && (
49+
<Grid item mt={1}>
50+
{chips}
51+
</Grid>
52+
)}
53+
</Grid>
54+
<Grid item md={4} xs={12}>
5355
<Box textAlign={['left', 'right']}>{headerRight}</Box>
5456
</Grid>
5557
</Grid>

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

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ import AddSABONumberModal from './AddSABONumberModal';
4949
import ReimbursementProductsView from './ReimbursementProductsView';
5050
import SubmitToSaboModal from './SubmitToSaboModal';
5151
import DownloadIcon from '@mui/icons-material/Download';
52+
import ReimbursementRequestStatusPill from '../../../components/ReimbursementRequestStatusPill';
5253

5354
interface ReimbursementRequestDetailsViewProps {
5455
reimbursementRequest: ReimbursementRequest;
@@ -313,13 +314,17 @@ const ReimbursementRequestDetailsView: React.FC<ReimbursementRequestDetailsViewP
313314
}
314315
];
315316

317+
const sortedStatus = reimbursementRequest.reimbursementStatuses.sort((a) => a.dateCreated.getDate());
318+
const statusTypes = sortedStatus.map((status) => status.type);
319+
const recentStatus = statusTypes[statusTypes.length - 1];
316320
return (
317321
<PageLayout
318-
title={`${
319-
isReimbursementRequestDenied(reimbursementRequest)
320-
? `${fullNamePipe(reimbursementRequest.recipient)}'s Reimbursement Request - Denied`
321-
: `${fullNamePipe(reimbursementRequest.recipient)}'s Reimbursement Request`
322-
}`}
322+
title={`${fullNamePipe(reimbursementRequest.recipient)}'s Reimbursement Request`}
323+
chips={
324+
<Box id="status" display="flex">
325+
{statusTypes.length > 0 && <ReimbursementRequestStatusPill status={recentStatus} />}
326+
</Box>
327+
}
323328
previousPages={[
324329
{
325330
name: 'Finance',

src/frontend/src/utils/enum-pipes.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
* This file is part of NER's FinishLine and licensed under GNU AGPLv3.
33
* See the LICENSE file in the repository root folder for details.
44
*/
5-
65
import { yellow, green, blue, purple, grey, orange } from '@mui/material/colors';
76
import { ChangeRequestStatus, ChangeRequestType, WorkPackageStage } from 'shared';
87

0 commit comments

Comments
 (0)