@@ -40,6 +40,8 @@ import {
4040import styles from './JobAnalytics.module.css' ;
4141import hasPermission from '../../../utils/permissions' ;
4242import { ENDPOINTS } from '../../../utils/URL' ;
43+ import DatePicker from 'react-datepicker' ;
44+ import 'react-datepicker/dist/react-datepicker.css' ;
4345
4446const ROLE_OPTIONS = [
4547 'All Roles' ,
@@ -151,6 +153,8 @@ function useMediaQuery(query) {
151153 return matches ;
152154}
153155
156+ const toIsoDate = d => d . toISOString ( ) . split ( 'T' ) [ 0 ] ;
157+
154158// ======================== API SERVICE ========================
155159// ======================== API SERVICE ========================
156160class AnalyticsService {
@@ -598,10 +602,48 @@ function DateRangeSelector({ dateRange, setDateRange, comparisonPeriod, setCompa
598602 </ div >
599603 </ div >
600604
601- < div className = { styles [ 'selector-col' ] } >
605+ < div className = { '' } >
602606 < label className = { styles [ 'label' ] } > Custom Date Range</ label >
603607 < div className = { styles [ 'dates-row' ] } >
604- < input
608+ < DatePicker
609+ selected = { dateRange ?. start ? new Date ( dateRange . start ) : null }
610+ onChange = { date => {
611+ setDateRange ( {
612+ ...dateRange ,
613+ start : date ? toIsoDate ( date ) : '' ,
614+ } ) ;
615+ setActive ( null ) ;
616+ } }
617+ selectsStart
618+ startDate = { dateRange ?. start || null }
619+ dateFormat = "yyyy-MM-dd"
620+ isClearable
621+ placeholderText = "Start date"
622+ className = { styles . input }
623+ // wrapperClassName={styles.datePicker}
624+ // calendarClassName={styles.calendar}
625+ />
626+ < span className = { styles [ 'to' ] } > to</ span >
627+ < DatePicker
628+ selected = { dateRange ?. end ? new Date ( dateRange . end ) : null }
629+ onChange = { date => {
630+ setDateRange ( {
631+ ...dateRange ,
632+ end : date ? toIsoDate ( date ) : '' ,
633+ } ) ;
634+ setActive ( null ) ;
635+ } }
636+ selectsEnd
637+ endDate = { dateRange ?. end || null }
638+ dateFormat = "yyyy-MM-dd"
639+ minDate = { dateRange ?. start ? new Date ( dateRange . start ) : undefined }
640+ isClearable
641+ placeholderText = "End date"
642+ className = { styles . input }
643+ // wrapperClassName={styles.datePicker}
644+ // calendarClassName={styles.calendar}
645+ />
646+ { /* <input
605647 type="date"
606648 className={styles['input']}
607649 value={dateRange?.start || ''}
@@ -619,7 +661,7 @@ function DateRangeSelector({ dateRange, setDateRange, comparisonPeriod, setCompa
619661 setDateRange({ ...dateRange, end: e.target.value });
620662 setActive(null);
621663 }}
622- />
664+ /> */ }
623665 </ div >
624666 </ div >
625667
0 commit comments