Skip to content

Commit f643c88

Browse files
committed
Complete stubs for planner controls
1 parent 40204ee commit f643c88

File tree

3 files changed

+81
-5
lines changed

3 files changed

+81
-5
lines changed

client/src/components/planner/controls/Controls.tsx

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,11 @@ import { Box, Grid } from '@mui/material';
22
import { styled } from '@mui/material/styles';
33
import React from 'react';
44

5-
// import Autotimetabler from './Autotimetabler';
6-
// import CustomEvents from './CustomEvent';
7-
// import History from './History';
85
import { Term } from '../../../api/times/times';
96
import Autotimetabler from './Autotimetabler';
107
import CourseSelect from './CourseSelect';
8+
import CustomEvents from './customEvents/CustomEvents';
9+
import History from './History';
1110
import TermSelect from './TermSelect';
1211

1312
const TermSelectWrapper = styled(Box)`
@@ -84,11 +83,15 @@ const Controls: React.FC<{ term: Term; setTerm: (term: Term) => void; timetableI
8483
md: 5.5,
8584
}}
8685
>
87-
<CustomEventsWrapper>{/* <CustomEvents /> */}</CustomEventsWrapper>
86+
<CustomEventsWrapper>
87+
<CustomEvents />
88+
</CustomEventsWrapper>
8889
<AutotimetablerWrapper>
8990
<Autotimetabler />
9091
</AutotimetablerWrapper>
91-
<HistoryWrapper>{/* <History /> */}</HistoryWrapper>
92+
<HistoryWrapper>
93+
<History />
94+
</HistoryWrapper>
9295
</Grid>
9396
</Grid>
9497
);
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import { Delete, Redo, Undo } from '@mui/icons-material';
2+
import { IconButton, Tooltip } from '@mui/material';
3+
4+
const isMacOS = navigator.userAgent.includes('Mac');
5+
const clearTooltip = isMacOS ? 'Clear (Cmd+D)' : 'Clear (Ctrl+D)';
6+
const undoTooltip = isMacOS ? 'Undo (Cmd+Z)' : 'Undo (Ctrl+Z)';
7+
const redoTooltip = isMacOS ? 'Redo (Cmd+Shift+Z)' : 'Redo (Ctrl+Y)';
8+
9+
const History: React.FC = () => {
10+
// TODO: Implement clear and history functionality
11+
12+
return (
13+
<>
14+
<Tooltip title={clearTooltip}>
15+
<IconButton disabled={true} color="inherit" size="large">
16+
<Delete />
17+
</IconButton>
18+
</Tooltip>
19+
<Tooltip title={undoTooltip}>
20+
<span>
21+
<IconButton disabled={true} color="inherit" size="large">
22+
<Undo />
23+
</IconButton>
24+
</span>
25+
</Tooltip>
26+
<Tooltip title={redoTooltip}>
27+
<span>
28+
<IconButton disabled={true} color="inherit" size="large">
29+
<Redo />
30+
</IconButton>
31+
</span>
32+
</Tooltip>
33+
</>
34+
);
35+
};
36+
37+
export default History;
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
import { ArrowDropDown, ArrowDropUp } from '@mui/icons-material';
2+
import { Box } from '@mui/material';
3+
import { useState } from 'react';
4+
5+
import { StyledControlsButton } from '../../../../styles/ControlStyles';
6+
import { DropdownButton } from '../../../../styles/CustomEventStyles';
7+
8+
const CustomEvent: React.FC = () => {
9+
const [createEventAnchorEl, setCreateEventAnchorEl] = useState<null | HTMLElement>(null);
10+
const openCreateEventPopover = Boolean(createEventAnchorEl);
11+
const popoverId = openCreateEventPopover ? 'create-event-popover' : undefined;
12+
13+
const handleOpen = (event: React.MouseEvent<HTMLButtonElement>) => {
14+
setCreateEventAnchorEl(event.currentTarget);
15+
};
16+
17+
// TODO: Implement create event popover
18+
return (
19+
<StyledControlsButton>
20+
<DropdownButton disableElevation aria-describedby={popoverId} variant="contained" onClick={handleOpen}>
21+
<Box
22+
sx={{
23+
ml: '1px',
24+
flexGrow: 1,
25+
marginTop: '3px',
26+
}}
27+
>
28+
CREATE EVENT
29+
</Box>
30+
{openCreateEventPopover ? <ArrowDropUp /> : <ArrowDropDown />}
31+
</DropdownButton>
32+
</StyledControlsButton>
33+
);
34+
};
35+
36+
export default CustomEvent;

0 commit comments

Comments
 (0)