| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- import dayjs from 'dayjs'
- import { EXPLORER_DATEPICKER_HELPERS, getDefaultHelper } from './Logs.constants'
- import type { DatePickerValue } from './Logs.DatePickers'
- import type { DatetimeHelper } from './Logs.types'
- export interface ResolvedLogDateRange {
- from: string
- to: string
- }
- export interface ResolvedLogParams extends ResolvedLogDateRange {
- sql: string
- }
- const findHelper = (value: DatePickerValue, helpers: DatetimeHelper[]) => {
- if (!value.text) return undefined
- return helpers.find((helper) => helper.text === value.text)
- }
- const ensureEnd = (candidate: string | undefined, now: dayjs.Dayjs) => {
- if (candidate && candidate.length > 0) return candidate
- return now.toISOString()
- }
- export const resolveLogDateRange = (
- value: DatePickerValue,
- helpers: DatetimeHelper[] = EXPLORER_DATEPICKER_HELPERS
- ): ResolvedLogDateRange => {
- const now = dayjs()
- if (value.isHelper) {
- const matchedHelper = findHelper(value, helpers) ?? getDefaultHelper(helpers)
- const from = matchedHelper?.calcFrom() ?? value.from ?? ''
- const to = ensureEnd(matchedHelper?.calcTo() ?? value.to, now)
- return { from, to }
- }
- const defaultHelper = getDefaultHelper(helpers)
- const from = value.from || defaultHelper.calcFrom()
- const to = ensureEnd(value.to, now)
- return { from, to }
- }
- export const buildLogQueryParams = (
- value: DatePickerValue,
- sql: string,
- helpers: DatetimeHelper[] = EXPLORER_DATEPICKER_HELPERS
- ): ResolvedLogParams => {
- const range = resolveLogDateRange(value, helpers)
- return {
- sql,
- from: range.from,
- to: range.to,
- }
- }
|