@@ -15,6 +15,9 @@ import {
1515import { FaCalendarAlt , FaMapMarkerAlt , FaUserAlt , FaSearch , FaTimes } from 'react-icons/fa' ;
1616import styles from './CPDashboard.module.css' ;
1717import { ENDPOINTS } from '../../utils/URL' ;
18+ import DatePicker from 'react-datepicker' ;
19+ import 'react-datepicker/dist/react-datepicker.css' ;
20+ import { toast } from 'react-toastify' ;
1821import axios from 'axios' ;
1922import { el } from 'date-fns/locale' ;
2023import { fuzzySearch } from '../../utils/fuzzySearch' ;
@@ -92,6 +95,18 @@ export function CPDashboard() {
9295 limit : 6 ,
9396 } ) ;
9497
98+ const handleDateChange = date => {
99+ const today = new Date ( ) ;
100+ today . setHours ( 0 , 0 , 0 , 0 ) ; // midnight today
101+
102+ if ( date < today ) {
103+ toast . error ( 'Past dates are not supported. Please select a future date.' ) ;
104+ setSelectedDate ( '' ) ;
105+ return ;
106+ }
107+ setSelectedDate ( date ) ;
108+ } ;
109+
95110 const FALLBACK_IMG =
96111 'https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=600&q=60' ;
97112
@@ -410,26 +425,31 @@ export function CPDashboard() {
410425 </ Label >
411426 </ FormGroup >
412427 </ div >
413-
414- < Button
415- color = "primary"
416- size = "sm"
417- onClick = { ( ) => {
418- setDateFilter ( '' ) ;
419- setSelectedDate ( '' ) ;
420- } }
421- >
422- Clear date filter
423- </ Button >
424-
425- < Input
426- type = "date"
427- placeholder = "Select Date"
428- className = { styles . dateFilter }
429- value = { selectedDate }
430- onChange = { e => setSelectedDate ( e . target . value ) }
431- style = { { marginTop : '10px' } }
432- />
428+ < div className = { styles . dashboardActions } >
429+ < Button
430+ color = "primary"
431+ onClick = { ( ) => {
432+ setDateFilter ( '' ) ;
433+ setSelectedDate ( '' ) ;
434+ } }
435+ >
436+ Clear date filter
437+ </ Button >
438+ </ div >
439+ < div className = { styles . filterItem } >
440+ < div className = { styles . dateFilterContainer } >
441+ < DatePicker
442+ type = "date"
443+ selected = { selectedDate ? new Date ( selectedDate ) : null }
444+ onChange = { handleDateChange }
445+ placeholderText = "Ending After"
446+ id = "ending-after"
447+ className = { styles . dateFilter }
448+ dateFormat = "yyyy-MM-dd"
449+ isClearable
450+ />
451+ </ div >
452+ </ div >
433453 </ div >
434454
435455 < div className = { styles . filterItem } >
0 commit comments