Skip to content

Commit a86471b

Browse files
authored
Merge pull request #1571 from Northeastern-Electric-Racing/#1328-work-package-redesign-activities-deliverables
#1328-work package redesign, activities and deliverables
2 parents 1174433 + de29b31 commit a86471b

2 files changed

Lines changed: 58 additions & 36 deletions

File tree

src/frontend/src/components/ReactHookEditableList.tsx

Lines changed: 39 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,36 +1,58 @@
1-
import { Grid, Button, IconButton, TextField } from '@mui/material';
1+
import { Grid, IconButton, TextField, InputLabel } from '@mui/material';
22
import DeleteIcon from '@mui/icons-material/Delete';
33
import { FieldArrayWithId, UseFieldArrayRemove, UseFormRegister, UseFieldArrayAppend } from 'react-hook-form';
4+
import { Box } from '@mui/system';
5+
import { NERButton } from './NERButton';
46

57
interface ReactHookEditableListProps {
68
name: string;
79
ls: FieldArrayWithId[];
810
register: UseFormRegister<any>;
911
append: UseFieldArrayAppend<any, any>;
1012
remove: UseFieldArrayRemove;
13+
bulletName?: string;
1114
}
1215

13-
const ReactHookEditableList: React.FC<ReactHookEditableListProps> = ({ name, ls, register, append, remove }) => {
16+
const ReactHookEditableList: React.FC<ReactHookEditableListProps> = ({ name, ls, bulletName, register, append, remove }) => {
1417
return (
1518
<>
16-
{ls.map((_element, i) => {
17-
return (
18-
<Grid item sx={{ display: 'flex', alignItems: 'center' }}>
19-
<TextField required autoComplete="off" sx={{ width: 9 / 10 }} {...register(`${name}.${i}.detail`)} />
20-
<IconButton type="button" onClick={() => remove(i)} sx={{ mx: 1, my: 0 }}>
21-
<DeleteIcon />
22-
</IconButton>
23-
</Grid>
24-
);
25-
})}
26-
<Button
19+
<Grid container columnSpacing={{ xs: 4, sm: 2, md: 3 }}>
20+
{ls.map((_element, i) => {
21+
return (
22+
<Grid item xs={12} md={6} lg={4} key={`${name}-${i}`}>
23+
<InputLabel sx={{ marginBottom: '5px', marginTop: '7px' }}>
24+
{bulletName} {i + 1}
25+
</InputLabel>
26+
<Box sx={{ display: 'flex', alignItems: 'start', marginBottom: '10px' }}>
27+
<TextField
28+
required
29+
autoComplete="off"
30+
placeholder={'Enter ' + bulletName + ' . . .'}
31+
sx={{ width: 12 / 12 }}
32+
multiline
33+
maxRows={3}
34+
{...register(`${name}.${i}.detail`)}
35+
/>
36+
<IconButton
37+
type="button"
38+
onClick={() => remove(i)}
39+
sx={{ mx: 1, color: 'red', marginLeft: '15px', marginTop: '3px', borderRadius: '4px', outline: 'solid' }}
40+
>
41+
<DeleteIcon />
42+
</IconButton>
43+
</Box>
44+
</Grid>
45+
);
46+
})}
47+
</Grid>
48+
<NERButton
2749
variant="contained"
28-
color="success"
50+
color="primary"
2951
onClick={() => append({ bulletId: -1, detail: '' })}
30-
sx={{ my: 2, width: 'max-content' }}
52+
sx={{ width: 'max-content', marginBottom: '30px', marginTop: '10px' }}
3153
>
32-
+ Add New Bullet
33-
</Button>
54+
{bulletName ? `+ Add ${bulletName}` : '+ Add new bullet'}
55+
</NERButton>
3456
</>
3557
);
3658
};

src/frontend/src/pages/WorkPackageDetailPage/WorkPackageEditContainer/WorkPackageEditContainer.tsx

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import { useQuery } from '../../../hooks/utils.hooks';
1414
import { Controller, useFieldArray, useForm } from 'react-hook-form';
1515
import { yupResolver } from '@hookform/resolvers/yup';
1616
import * as yup from 'yup';
17-
import { Box, TextField, Autocomplete, FormControl } from '@mui/material';
17+
import { Box, TextField, Autocomplete, FormControl, Typography } from '@mui/material';
1818
import ReactHookEditableList from '../../../components/ReactHookEditableList';
1919
import { useEditWorkPackage } from '../../../hooks/work-packages.hooks';
2020
import WorkPackageEditDetails from './WorkPackageEditDetails';
@@ -216,24 +216,24 @@ const WorkPackageEditContainer: React.FC<WorkPackageEditContainerProps> = ({ wor
216216
/>
217217
</FormControl>
218218
</PageBlock>
219-
<PageBlock title="Expected Activities">
220-
<ReactHookEditableList
221-
name="expectedActivities"
222-
register={register}
223-
ls={expectedActivities}
224-
append={appendExpectedActivity}
225-
remove={removeExpectedActivity}
226-
/>
227-
</PageBlock>
228-
<PageBlock title="Deliverables">
229-
<ReactHookEditableList
230-
name="deliverables"
231-
register={register}
232-
ls={deliverables}
233-
append={appendDeliverable}
234-
remove={removeDeliverable}
235-
/>
236-
</PageBlock>
219+
<Typography variant="h5">Expected Activities</Typography>
220+
<ReactHookEditableList
221+
name="expectedActivities"
222+
register={register}
223+
ls={expectedActivities}
224+
append={appendExpectedActivity}
225+
remove={removeExpectedActivity}
226+
bulletName="Expected Activity"
227+
/>
228+
<Typography variant="h5">Deliverables</Typography>
229+
<ReactHookEditableList
230+
name="deliverables"
231+
register={register}
232+
ls={deliverables}
233+
append={appendDeliverable}
234+
remove={removeDeliverable}
235+
bulletName="Deliverable"
236+
/>
237237
<Box textAlign="right" sx={{ my: 2 }}>
238238
<NERFailButton variant="contained" onClick={exitEditMode} sx={{ mx: 1 }}>
239239
Cancel

0 commit comments

Comments
 (0)