MCPcopy Create free account
hub / github.com/OpenPipe/OpenPipe / DateRange

Function DateRange

app/src/components/Filters/LogsDateFilter.tsx:62–145  ·  view source on GitHub ↗
({ filter, close }: { filter?: FilterData; close: () => void })

Source from the content-addressed store, hash-verified

60};
61
62const DateRange = ({ filter, close }: { filter?: FilterData; close: () => void }) => {
63 const updateFilter = useDateFilter().updateFilter;
64
65 const [firstDate, setFirstDate] = useState<number>(
66 filter && Array.isArray(filter.value) ? filter.value[0] : Date.now(),
67 );
68 const [secondDate, setSecondDate] = useState<number>(
69 filter && Array.isArray(filter.value) ? filter?.value[1] : Date.now(),
70 );
71
72 const debouncedUpdateFilter = useCallback(
73 debounce((filter: FilterData) => updateFilter(filter), 500, {
74 leading: true,
75 }),
76 [updateFilter],
77 );
78
79 const updateDate = useCallback(
80 (dateStr: string, isSecondDate?: boolean) => {
81 const date = dateStr ? new Date(dateStr).getTime() : Date.now();
82 if (isSecondDate) {
83 if (date < firstDate) {
84 setFirstDate(date);
85 setSecondDate(firstDate);
86 } else {
87 setSecondDate(date);
88 }
89 } else {
90 if (date > secondDate) {
91 setFirstDate(secondDate);
92 setSecondDate(date);
93 } else {
94 setFirstDate(date);
95 }
96 }
97 },
98 [firstDate, secondDate],
99 );
100
101 const handleSave = useCallback(() => {
102 debouncedUpdateFilter({ ...getDefaultDateFilter("RANGE"), value: [firstDate, secondDate] });
103 }, [firstDate, secondDate, filter, debouncedUpdateFilter]);
104
105 return (
106 <Portal>
107 <PopoverContent w="fit-content" shadow={"md"} p={4}>
108 <PopoverBody>
109 <Flex flexDir={{ base: "column", md: "row" }} alignItems="center">
110 <Input
111 type="datetime-local"
112 w={240}
113 aria-label="first date"
114 onChange={(e) => updateDate(e.target.value)}
115 value={formatDateForPicker(firstDate)}
116 />
117
118 <Icon as={BsDash} />
119 <Input

Callers

nothing calls this directly

Calls 4

useDateFilterFunction · 0.90
getDefaultDateFilterFunction · 0.90
formatDateForPickerFunction · 0.90
updateFilterFunction · 0.70

Tested by

no test coverage detected