@@ -9,20 +9,21 @@ import { getLocale } from "utils/get-locale"
99
1010interface StatsFilter {
1111 name : string
12- start : string
13- end : string
12+ start ? : string
13+ end ? : string
1414}
1515
16+ const allFilter : StatsFilter = { name : "All" }
17+
1618const createYearFilter = ( year : number ) => ( {
1719 name : `${ year } ` ,
1820 start : `${ year } -01-01` ,
1921 end : `${ year } -12-31` ,
2022} )
2123
22- const year = new Date ( ) . getFullYear ( )
2324const statsFilterData = createAtom < StatsFilter > ( {
2425 name : "stats-filter" ,
25- defaultValue : createYearFilter ( year ) ,
26+ defaultValue : allFilter ,
2627} )
2728
2829export const filteredStatsEntries = createSelector (
@@ -50,12 +51,11 @@ export const StatsSideRoute = () => {
5051 useAtomValue ( filteredStatsEntries )
5152 ) . flat ( )
5253
54+ const firstEntry = dateHelpers . stringify ( dates [ 0 ] ! )
55+ const lastEntry = dateHelpers . stringify ( dates . at ( - 1 ) ! )
56+
5357 const predefinedFilters : StatsFilter [ ] = [
54- {
55- name : "All" ,
56- start : dateHelpers . stringify ( dates [ 0 ] ! ) ,
57- end : dateHelpers . stringify ( dates . at ( - 1 ) ! ) ,
58- } ,
58+ allFilter ,
5959 ...years . map ( createYearFilter ) ,
6060 ]
6161
@@ -80,7 +80,7 @@ export const StatsSideRoute = () => {
8080 < InputLabel label = "Start date" >
8181 < DateInput
8282 locale = { getLocale ( ) }
83- value = { selectedFilter . start }
83+ value = { selectedFilter . start ?? firstEntry }
8484 onChange = { start =>
8585 statsFilterData . set ( state => ( { ...state , start, name : "Custom" } ) )
8686 }
@@ -91,7 +91,7 @@ export const StatsSideRoute = () => {
9191 < InputLabel label = "End date" >
9292 < DateInput
9393 locale = { getLocale ( ) }
94- value = { selectedFilter . end }
94+ value = { selectedFilter . end ?? lastEntry }
9595 onChange = { end =>
9696 statsFilterData . set ( state => ( { ...state , end, name : "Custom" } ) )
9797 }
0 commit comments