Skip to content

Commit ec9376a

Browse files
committed
feat: add grade buttons to scheduled item cards
1 parent fa15939 commit ec9376a

File tree

7 files changed

+420
-116
lines changed

7 files changed

+420
-116
lines changed

src/_shared/components/CardActionButtonRow/CardActionButtonRow.tsx

+45-1
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,22 @@
11
import React from 'react';
2-
import { IconButton, Tooltip } from '@mui/material';
2+
import {
3+
IconButton,
4+
ToggleButton,
5+
ToggleButtonGroup,
6+
Tooltip,
7+
} from '@mui/material';
38
import { Stack } from '@mui/system';
49
import ScheduleIcon from '@mui/icons-material/Schedule';
510
import EditOutlinedIcon from '@mui/icons-material/EditOutlined';
611
import EventBusyOutlinedIcon from '@mui/icons-material/EventBusyOutlined';
712
import KeyboardDoubleArrowDownOutlinedIcon from '@mui/icons-material/KeyboardDoubleArrowDownOutlined';
813
import DeleteOutlinedIcon from '@mui/icons-material/DeleteOutlined';
914
import { curationPalette } from '../../../theme';
15+
import {
16+
ActionScreen,
17+
ApprovedCorpusItem,
18+
ApprovedItemGrade,
19+
} from '../../../api/generatedTypes';
1020

1121
interface CardActionButtonRowProps {
1222
/**
@@ -33,6 +43,20 @@ interface CardActionButtonRowProps {
3343
* Callback for the "Reject" (trash) button
3444
*/
3545
onReject: VoidFunction;
46+
47+
/**
48+
* Callback for clicking a grade button
49+
*/
50+
onGrade: (
51+
item: ApprovedCorpusItem,
52+
grade: ApprovedItemGrade,
53+
actionScreen: ActionScreen,
54+
) => void;
55+
56+
/**
57+
* The approved corpus item being graded
58+
*/
59+
item: ApprovedCorpusItem;
3660
}
3761

3862
export const CardActionButtonRow: React.FC<CardActionButtonRowProps> = (
@@ -91,6 +115,26 @@ export const CardActionButtonRow: React.FC<CardActionButtonRowProps> = (
91115
</Tooltip>
92116
</Stack>
93117

118+
<Stack direction="row" justifyContent="flex-start">
119+
<ToggleButtonGroup
120+
size="small"
121+
color="primary"
122+
onChange={(event: React.MouseEvent, value: any) => {
123+
props.onGrade(props.item, value[0], ActionScreen.Schedule);
124+
}}
125+
>
126+
{Object.values(ApprovedItemGrade).map((grade) => (
127+
<ToggleButton
128+
key={grade}
129+
value={grade}
130+
selected={grade === props.item.grade}
131+
>
132+
{grade}
133+
</ToggleButton>
134+
))}
135+
</ToggleButtonGroup>
136+
</Stack>
137+
94138
<Stack direction="row" justifyContent="flex-start">
95139
<Tooltip title="Unschedule" placement="bottom">
96140
<IconButton

src/api/fragments/curatedItemData.ts

+1
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ export const CuratedItemData = gql`
2222
status
2323
source
2424
topic
25+
grade
2526
isCollection
2627
isTimeSensitive
2728
isSyndicated

0 commit comments

Comments
 (0)