Segment editing.

This commit is contained in:
Mike Cao 2025-07-31 21:32:22 -07:00
parent fba7e12c36
commit 2dbcf63eeb
22 changed files with 306 additions and 42 deletions

View file

@ -26,7 +26,8 @@ export * from './queries/useTeamMembersQuery';
export * from './queries/useUserQuery';
export * from './queries/useUsersQuery';
export * from './queries/useWebsiteQuery';
export * from './queries/useWebsiteSegementsQuery';
export * from './queries/useWebsiteSegmentQuery';
export * from './queries/useWebsiteSegmentsQuery';
export * from './queries/useWebsitesQuery';
export * from './queries/useWebsiteEventsQuery';
export * from './queries/useWebsiteEventsSeriesQuery';

View file

@ -0,0 +1,21 @@
import { useApi } from '../useApi';
import { useModified } from '@/components/hooks';
import { keepPreviousData } from '@tanstack/react-query';
import { ReactQueryOptions } from '@/lib/types';
export function useWebsiteSegmentQuery(
websiteId: string,
segmentId: string,
options?: ReactQueryOptions<any>,
) {
const { get, useQuery } = useApi();
const { modified } = useModified(`segments`);
return useQuery({
queryKey: ['website:segments', { websiteId, segmentId, modified }],
queryFn: () => get(`/websites/${websiteId}/segments/${segmentId}`),
enabled: !!(websiteId && segmentId),
placeholderData: keepPreviousData,
...options,
});
}

View file

@ -2,6 +2,7 @@ import { useApi } from '../useApi';
import { useModified } from '@/components/hooks';
import { keepPreviousData } from '@tanstack/react-query';
import { ReactQueryOptions } from '@/lib/types';
import { useFilterParameters } from '@/components/hooks/useFilterParameters';
export function useWebsiteSegmentsQuery(
websiteId: string,
@ -9,11 +10,12 @@ export function useWebsiteSegmentsQuery(
options?: ReactQueryOptions<any>,
) {
const { get, useQuery } = useApi();
const { modified } = useModified(`website:${websiteId}`);
const { modified } = useModified(`segments`);
const filters = useFilterParameters();
return useQuery({
queryKey: ['website:segments', { websiteId, modified, ...params }],
queryFn: () => get(`/websites/${websiteId}/segments`, { ...params }),
queryKey: ['website:segments', { websiteId, modified, ...filters, ...params }],
queryFn: () => get(`/websites/${websiteId}/segments`, { ...filters, ...params }),
enabled: !!websiteId,
placeholderData: keepPreviousData,
...options,