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:
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,
|
||||
});
|
||||
}
|
||||
Reference in new issue
Block a user