From f4a9336f9d594c9a890ba92602cc8aa8abb4cf26 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Wed, 20 Mar 2024 15:29:59 -0700 Subject: [PATCH] Simplified date logic. --- src/components/input/DateFilter.tsx | 12 +-- src/lib/date.ts | 127 ++++++++-------------------- 2 files changed, 40 insertions(+), 99 deletions(-) diff --git a/src/components/input/DateFilter.tsx b/src/components/input/DateFilter.tsx index afe44e6fd..f025da97b 100644 --- a/src/components/input/DateFilter.tsx +++ b/src/components/input/DateFilter.tsx @@ -32,18 +32,14 @@ export function DateFilter({ const { locale } = useLocale(); const options = [ - { label: formatMessage(labels.today), value: '1day' }, + { label: formatMessage(labels.today), value: '0day' }, { label: formatMessage(labels.lastHours, { x: 24 }), value: '24hour', }, - { - label: formatMessage(labels.yesterday), - value: '-1day', - }, { label: formatMessage(labels.thisWeek), - value: '1week', + value: '0week', divider: true, }, { @@ -52,7 +48,7 @@ export function DateFilter({ }, { label: formatMessage(labels.thisMonth), - value: '1month', + value: '0month', divider: true, }, { @@ -63,7 +59,7 @@ export function DateFilter({ label: formatMessage(labels.lastDays, { x: 90 }), value: '90day', }, - { label: formatMessage(labels.thisYear), value: '1year' }, + { label: formatMessage(labels.thisYear), value: '0year' }, showAllTime && { label: formatMessage(labels.allTime), value: 'all', diff --git a/src/lib/date.ts b/src/lib/date.ts index 3998170ef..a71120293 100644 --- a/src/lib/date.ts +++ b/src/lib/date.ts @@ -151,105 +151,50 @@ export function parseDateRange(value: string | object, locale = 'en-US'): DateRa const dateLocale = getDateLocale(locale); const { num, unit } = parseDateValue(value); - if (num === 1) { - switch (unit) { - case 'day': - return { - startDate: startOfDay(now), - endDate: endOfDay(now), - unit: 'hour', - num: +num, - offset: 0, - value, - }; - case 'week': - return { - startDate: startOfWeek(now, { locale: dateLocale }), - endDate: endOfWeek(now, { locale: dateLocale }), - unit: 'day', - num: +num, - offset: 0, - value, - }; - case 'month': - return { - startDate: startOfMonth(now), - endDate: endOfMonth(now), - unit: 'day', - num: +num, - offset: 0, - value, - }; - case 'year': - return { - startDate: startOfYear(now), - endDate: endOfYear(now), - unit: 'month', - num: +num, - offset: 0, - value, - }; - } - } - - if (num === -1) { - switch (unit) { - case 'day': - return { - startDate: subDays(startOfDay(now), 1), - endDate: subDays(endOfDay(now), 1), - unit: 'hour', - num: +num, - offset: 0, - value, - }; - case 'week': - return { - startDate: subDays(startOfWeek(now, { locale: dateLocale }), 7), - endDate: subDays(endOfWeek(now, { locale: dateLocale }), 1), - unit: 'day', - num: +num, - offset: 0, - value, - }; - case 'month': - return { - startDate: subMonths(startOfMonth(now), 1), - endDate: subMonths(endOfMonth(now), 1), - unit: 'day', - num: +num, - offset: 0, - value, - }; - case 'year': - return { - startDate: subYears(startOfYear(now), 1), - endDate: subYears(endOfYear(now), 1), - unit: 'month', - num: +num, - offset: 0, - value, - }; - } - } - switch (unit) { - case 'day': + case 'hour': return { - startDate: subDays(startOfDay(now), +num - 1), - endDate: endOfDay(now), - num: +num, + startDate: subHours(startOfHour(now), num), + endDate: endOfHour(now), offset: 0, + num: num || 1, unit, value, }; - case 'hour': + case 'day': return { - startDate: subHours(startOfHour(now), +num - 1), - endDate: endOfHour(now), - num: +num, + startDate: subDays(startOfDay(now), num), + endDate: endOfDay(now), + unit: num ? 'day' : 'hour', offset: 0, - unit, + num: num || 1, + value, + }; + case 'week': + return { + startDate: subWeeks(startOfWeek(now, { locale: dateLocale }), num), + endDate: subWeeks(endOfWeek(now, { locale: dateLocale }), num), + unit: 'day', + offset: 0, + num: num || 1, + value, + }; + case 'month': + return { + startDate: subMonths(startOfMonth(now), 1), + endDate: subMonths(endOfMonth(now), 1), + unit: 'day', + offset: 0, + num: num || 1, + value, + }; + case 'year': + return { + startDate: subYears(startOfYear(now), 1), + endDate: subYears(endOfYear(now), 1), + unit: 'month', + offset: 0, + num: num || 1, value, }; }