fix(ui): проверять период статистики до запроса
This commit is contained in:
1 parent
167e19cd91
commit
94ad73212b
6 files changed
+109
-19
No files matched your search
@@ -8,6 +8,7 @@ import {
|
||||
DateSelector,
|
||||
type DateSelectorValue,
|
||||
} from "@/components/reui/date-selector"
|
||||
import { isCalendarDate, isStatisticsDate } from "@/lib/statistics-range"
|
||||
import { DATE_SELECTOR_RU } from "@/components/statistics/date-selector-i18n"
|
||||
import { Button } from "@/components/ui/button"
|
||||
import { Popover, PopoverContent, PopoverTrigger } from "@/components/ui/popover"
|
||||
@@ -42,14 +43,18 @@ export function formatYmd(d: Date): string {
|
||||
}
|
||||
|
||||
export function parseYmd(s: string): Date | null {
|
||||
if (!isCalendarDate(s)) return null
|
||||
const m = /^(\d{4})-(\d{2})-(\d{2})$/.exec(s)
|
||||
if (!m) return null
|
||||
const d = new Date(Number(m[1]), Number(m[2]) - 1, Number(m[3]))
|
||||
const d = new Date(0)
|
||||
d.setFullYear(Number(m[1]), Number(m[2]) - 1, Number(m[3]))
|
||||
d.setHours(0, 0, 0, 0)
|
||||
return Number.isNaN(d.getTime()) ? null : d
|
||||
}
|
||||
|
||||
/** Значение периода — дата (YYYY-MM-DD) или полный ISO-таймстамп (пресет «24 ч»). */
|
||||
export function parseRangeDate(s: string): Date | null {
|
||||
if (!isStatisticsDate(s)) return null
|
||||
if (s.includes("T")) {
|
||||
const d = new Date(s)
|
||||
return Number.isNaN(d.getTime()) ? null : d
|
||||
|
||||
Reference in new issue
Block a user