import * as React from 'react'; import { Button } from '@/components/ui/button'; import { Calendar } from '@/components/ui/calendar'; import { Popover, PopoverContent, PopoverTrigger, } from '@/components/ui/popover'; import { useBreakpoint } from '@/hooks/useBreakpoint'; import { cn } from '@/utils/cn'; import { format } from 'date-fns'; import { CalendarIcon, ChevronsUpDownIcon } from 'lucide-react'; import type { SelectRangeEventHandler } from 'react-day-picker'; import { timeRanges } from '@openpanel/constants'; import type { IChartRange } from '@openpanel/validation'; import type { ExtendedComboboxProps } from '../ui/combobox'; import { ToggleGroup, ToggleGroupItem } from '../ui/toggle-group'; export function ReportRange({ range, onRangeChange, onDatesChange, dates, className, ...props }: { range: IChartRange; onRangeChange: (range: IChartRange) => void; onDatesChange: SelectRangeEventHandler; dates: { startDate: string | null; endDate: string | null }; } & Omit, 'value' | 'onChange'>) { const { isBelowSm } = useBreakpoint('sm'); return ( <>
{ if (value) onRangeChange(value as IChartRange); }} type="single" variant="outline" className="flex-wrap max-sm:max-w-xs" > {Object.values(timeRanges).map((key) => ( {key} ))}
); }