Skip to content

Commit 69a3cee

Browse files
authored
Merge pull request #4288 from Northeastern-Electric-Racing/#4272-filter-past-events
#4272 filter past events
2 parents 3a30d72 + 2a577f5 commit 69a3cee

1 file changed

Lines changed: 32 additions & 4 deletions

File tree

src/frontend/src/pages/CalendarPage/EventsTable.tsx

Lines changed: 32 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,8 @@ import EditEventModal from './Components/EditEventModal';
2828
import { useToast } from '../../hooks/toasts.hooks';
2929
import EditIcon from '@mui/icons-material/Edit';
3030
import DeleteIcon from '@mui/icons-material/Delete';
31+
import FilterListIcon from '@mui/icons-material/FilterList';
32+
import FilterListOffIcon from '@mui/icons-material/FilterListOff';
3133
import NERDeleteModal from '../../components/NERDeleteModal';
3234

3335
interface YourEventsHeadCells {
@@ -122,6 +124,7 @@ const EventsTable: React.FC<EventTableArgs> = ({ tab, yourEvents, reviewEvents,
122124
const [showEditModal, setShowEditModal] = useState(false);
123125

124126
const [eventToDelete, setEventToDelete] = useState<Event | undefined>(undefined);
127+
const [hidePastEvents, setHidePastEvents] = useState(true);
125128

126129
const handleOpenClickPopup = (event: Event) => {
127130
setClickedEvent(event);
@@ -226,7 +229,12 @@ const EventsTable: React.FC<EventTableArgs> = ({ tab, yourEvents, reviewEvents,
226229
: [])
227230
];
228231

229-
const events = sortEvents(tab === 1 ? yourEvents : reviewEvents);
232+
const now = new Date();
233+
const baseEvents = tab === 1 ? yourEvents : reviewEvents;
234+
const filteredEvents = hidePastEvents
235+
? baseEvents.filter((event) => getNextMeetingTime(event).getTime() >= now.getTime())
236+
: baseEvents;
237+
const events = sortEvents(filteredEvents);
230238

231239
return (
232240
<Box sx={{ width: '100%', borderRadius: '8px 8px 0 0' }}>
@@ -245,9 +253,29 @@ const EventsTable: React.FC<EventTableArgs> = ({ tab, yourEvents, reviewEvents,
245253
<Table stickyHeader>
246254
<TableHead>
247255
<TableRow>
248-
{headCells.map((headCell) => (
249-
<TableCellHuge title={headCell.label} />
250-
))}
256+
{headCells.map((headCell) =>
257+
headCell.id === 'date' ? (
258+
<TableCell key={headCell.id} sx={{ backgroundColor: '#dd514c' }}>
259+
<Box sx={{ display: 'flex', alignItems: 'center', justifyContent: 'center', gap: 0.5 }}>
260+
<Typography variant="h4" fontSize={25}>
261+
{headCell.label}
262+
</Typography>
263+
<Tooltip
264+
title={
265+
hidePastEvents ? 'Showing upcoming only; click to show all' : 'Showing all; click to hide past'
266+
}
267+
arrow
268+
>
269+
<IconButton size="small" onClick={() => setHidePastEvents((prev) => !prev)} sx={{ color: 'white' }}>
270+
{hidePastEvents ? <FilterListIcon fontSize="small" /> : <FilterListOffIcon fontSize="small" />}
271+
</IconButton>
272+
</Tooltip>
273+
</Box>
274+
</TableCell>
275+
) : (
276+
<TableCellHuge key={headCell.id} title={headCell.label} />
277+
)
278+
)}
251279
{tab === 1 && <TableCellHuge title={''} />}
252280
</TableRow>
253281
</TableHead>

0 commit comments

Comments
 (0)