MCPcopy
hub / github.com/umami-software/umami / WebsiteDateFilter

Function WebsiteDateFilter

src/components/input/WebsiteDateFilter.tsx:17–105  ·  view source on GitHub ↗
({
  websiteId,
  showAllTime = true,
  showButtons = true,
  allowCompare,
}: WebsiteDateFilterProps)

Source from the content-addressed store, hash-verified

15}
16
17export function WebsiteDateFilter({
18 websiteId,
19 showAllTime = true,
20 showButtons = true,
21 allowCompare,
22}: WebsiteDateFilterProps) {
23 const { dateRange, isAllTime, isCustomRange } = useDateRange();
24 const { t, labels } = useMessages();
25 const {
26 router,
27 updateParams,
28 query: { compare = 'prev', offset = 0 },
29 } = useNavigation();
30 const disableForward = isAllTime || isAfter(dateRange.endDate, new Date());
31 const showCompare = allowCompare && !isAllTime;
32
33 const websiteDateRange = useDateRangeQuery(websiteId);
34 const { startDate, endDate } = websiteDateRange;
35 const hasData = startDate && endDate;
36
37 const handleChange = (date: string) => {
38 if (date === 'all' && hasData) {
39 router.push(
40 updateParams({
41 date: `${getDateRangeValue(websiteDateRange.startDate, websiteDateRange.endDate)}:all`,
42 offset: undefined,
43 page: 1,
44 }),
45 );
46 } else {
47 router.push(updateParams({ date, offset: undefined, unit: undefined, page: 1 }));
48 }
49 };
50
51 const handleIncrement = increment => {
52 router.push(updateParams({ offset: Number(offset) + increment }));
53 };
54 const handleSelect = (compare: any) => {
55 router.push(updateParams({ compare }));
56 };
57
58 const dateValue = useMemo(() => {
59 return offset !== 0
60 ? getDateRangeValue(dateRange.startDate, dateRange.endDate)
61 : dateRange.value;
62 }, [dateRange]);
63
64 return (
65 <Row wrap="wrap" gap>
66 {showButtons && !isAllTime && !isCustomRange && (
67 <Row gap="1">
68 <Button onPress={() => handleIncrement(-1)} variant="outline">
69 <Icon rotate={180}>
70 <ChevronRight />
71 </Icon>
72 </Button>
73 <Button onPress={() => handleIncrement(1)} variant="outline" isDisabled={disableForward}>
74 <Icon>

Callers

nothing calls this directly

Calls 6

useDateRangeFunction · 0.90
useMessagesFunction · 0.90
useNavigationFunction · 0.90
useDateRangeQueryFunction · 0.90
getDateRangeValueFunction · 0.90
handleIncrementFunction · 0.85

Tested by

no test coverage detected