Skip to content

Commit 813f4de

Browse files
committed
feat(StatsRoute): Use "All" filter initially
1 parent 6b55b00 commit 813f4de

2 files changed

Lines changed: 16 additions & 13 deletions

File tree

src/app/routes/stats/stats-side-route.tsx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -9,20 +9,21 @@ import { getLocale } from "utils/get-locale"
99

1010
interface 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+
1618
const createYearFilter = (year: number) => ({
1719
name: `${year}`,
1820
start: `${year}-01-01`,
1921
end: `${year}-12-31`,
2022
})
2123

22-
const year = new Date().getFullYear()
2324
const statsFilterData = createAtom<StatsFilter>({
2425
name: "stats-filter",
25-
defaultValue: createYearFilter(year),
26+
defaultValue: allFilter,
2627
})
2728

2829
export 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
}

src/utils/date-helpers.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,11 @@ const stringify = (date: Date | ParsedDate) => {
3030

3131
const today = () => stringify(new Date())
3232

33-
const isInRange = (date: string, start: string, end: string) =>
34-
[date, start, end].sort()[1] === date
33+
const isInRange = (date: string, start?: string, end?: string) => {
34+
const afterStart = !start || [date, start].sort()[1] === date
35+
const beforeEnd = !end || [date, end].sort()[0] === date
36+
return afterStart && beforeEnd
37+
}
3538

3639
export const dateHelpers = {
3740
today,

0 commit comments

Comments
 (0)