@@ -28,6 +28,8 @@ import EditEventModal from './Components/EditEventModal';
2828import { useToast } from '../../hooks/toasts.hooks' ;
2929import EditIcon from '@mui/icons-material/Edit' ;
3030import DeleteIcon from '@mui/icons-material/Delete' ;
31+ import FilterListIcon from '@mui/icons-material/FilterList' ;
32+ import FilterListOffIcon from '@mui/icons-material/FilterListOff' ;
3133import NERDeleteModal from '../../components/NERDeleteModal' ;
3234
3335interface 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