import * as React from 'react'; import { EditOutlined } from '@ant-design/icons'; import { DatePicker } from 'antd'; import type { RangePickerProps } from 'antd/lib/date-picker'; import moment, { Moment } from 'moment'; import { DefaultIntervals } from '../../types/QueryTypes'; import Text, { TextColors, TextSizes, TextWeights } from '../../uikit/Text'; import { localizeAndFormatTimestamp } from '../../utils/DateUtils'; import { CUSTOM_RANGE_OPTION, isEmptyDateRange } from '../../utils/QueryUtils'; import { DATE_FORMAT } from '../../Constants'; import styles from './QueryDatePicker.module.css'; interface QueryDatePickerProps { onIntervalChange: (interval: DefaultIntervals) => void; onDateRangeChange: (dateRange: { start: string; end: string }) => void; interval: DefaultIntervals; dateRange: { start: string; end: string }; } const QueryDatePicker = ({ onIntervalChange, onDateRangeChange, interval, dateRange }: QueryDatePickerProps) => { const handleRangePickerChange: RangePickerProps['onChange'] = (dates, _) => { if (dates == null) return; const start = dates[0]; const end = dates[1]; if (start == null || end == null) return; // Convert to UTC format for backend API onDateRangeChange({ start: start.utc().format(), end: end.utc().format() }); }; const handleSwitchToCustomRange = () => { onIntervalChange(CUSTOM_RANGE_OPTION); }; const renderQueryIntervalOrDatePicker = () => { if (interval === CUSTOM_RANGE_OPTION) { const value = isEmptyDateRange(dateRange.start, dateRange.end) ? undefined : ([moment(dateRange.start), moment(dateRange.end)] as unknown as RangePickerProps['value']); return ( ); } if (isEmptyDateRange(dateRange.start, dateRange.end)) return null; return ( Queried {`${localizeAndFormatTimestamp(dateRange.start)} - ${localizeAndFormatTimestamp(dateRange.end)}`} ); }; return
{renderQueryIntervalOrDatePicker()}
; }; export default QueryDatePicker;