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

Function useFilterParameters

src/components/hooks/useFilterParameters.ts:6–43  ·  view source on GitHub ↗
({
  includePagination = true,
}: {
  includePagination?: boolean;
} = {})

Source from the content-addressed store, hash-verified

4import { useNavigation } from './useNavigation';
5
6export function useFilterParameters({
7 includePagination = true,
8}: {
9 includePagination?: boolean;
10} = {}) {
11 const { query } = useNavigation();
12 const share = useShare();
13 const allowFilter = share?.parameters?.allowFilter !== false;
14
15 return useMemo(() => {
16 const filterParams: Record<string, any> = {};
17
18 if (allowFilter) {
19 for (const key of Object.keys(query)) {
20 const baseName = key.replace(/\d+$/, '');
21 if (FILTER_COLUMNS[baseName]) {
22 filterParams[key] = query[key];
23 }
24 }
25 }
26
27 const params = {
28 ...filterParams,
29 search: query.search,
30 segment: allowFilter ? query.segment : undefined,
31 cohort: allowFilter ? query.cohort : undefined,
32 excludeBounce: allowFilter ? query.excludeBounce : undefined,
33 match: allowFilter ? query.match : undefined,
34 } as Record<string, any>;
35
36 if (includePagination) {
37 params.page = query.page;
38 params.pageSize = query.pageSize;
39 }
40
41 return params;
42 }, [allowFilter, includePagination, query]);
43}

Callers 15

useRevenueSessionsQueryFunction · 0.90
useWebsiteSessionsQueryFunction · 0.90
useWebsiteEventsQueryFunction · 0.90
useReplaysQueryFunction · 0.90
usePropertyValuesQueryFunction · 0.90
useRevenueStatsQueryFunction · 0.90
useEventStatsQueryFunction · 0.90
useWebsiteCohortsQueryFunction · 0.90

Calls 2

useNavigationFunction · 0.90
useShareFunction · 0.90

Tested by

no test coverage detected