refactor Property components to be resused for both session/event data. Implement session-data screens + filtering. Remove all event-data specific compoenents/queries

This commit is contained in:
Francis Cao committed 2026-04-29 13:11:03 -07:00
1 parent 9da332c489
commit 680a1ca1a2
71 files changed
+2814 -958

No files matched your search

@@ -0,0 +1,46 @@
import { serializePropertyFilters } from '@/lib/params';
import type { PropertyFilter, ReactQueryOptions } from '@/lib/types';
import { useApi } from '../useApi';
import { useDateParameters } from '../useDateParameters';
import { useFilterParameters } from '../useFilterParameters';
import type { PropertyDataSource } from './usePropertyFieldsQuery';
export function usePropertyValuesQuery(
source: PropertyDataSource,
websiteId: string,
propertyName: string,
dataType?: number,
propertyFilters: PropertyFilter[] = [],
eventName?: string,
options?: ReactQueryOptions,
) {
const { get, useQuery } = useApi();
const { startAt, endAt, unit, timezone } = useDateParameters();
const params = useFilterParameters({ includePagination: false });
return useQuery<any>({
queryKey: [
`websites:${source}-data:values`,
{ websiteId, propertyName, dataType, eventName, propertyFilters, startAt, endAt, unit, timezone, ...params },
],
queryFn: () =>
get(
source === 'event'
? `/websites/${websiteId}/event-data/values`
: `/websites/${websiteId}/session-data/values`,
{
...(source === 'event' ? { event: eventName } : {}),
startAt,
endAt,
unit,
timezone,
propertyName,
dataType,
...serializePropertyFilters(propertyFilters),
...params,
},
),
enabled: !!(websiteId && propertyName && (source === 'session' || eventName)),
...options,
});
}