refactor session replays to be per visit. sessions persist too long resulting in low-quality recordings

This commit is contained in:
Francis Cao committed 2026-03-03 22:59:25 -08:00
1 parent b2d45613b5
commit 0e1d6cef6b
26 files changed
+248 -83

No files matched your search

+1
View File
@@ -35,6 +35,7 @@ export * from './queries/useSessionActivityQuery';
export * from './queries/useSessionDataPropertiesQuery';
export * from './queries/useSessionDataQuery';
export * from './queries/useSessionDataValuesQuery';
export * from './queries/useSessionReplaysQuery';
export * from './queries/useShareTokenQuery';
export * from './queries/useTeamMembersQuery';
export * from './queries/useTeamQuery';
@@ -1,13 +1,13 @@
import { useApi } from '../useApi';
export function useReplayQuery(websiteId: string, sessionId: string) {
export function useReplayQuery(websiteId: string, replayId: string) {
const { get, useQuery } = useApi();
return useQuery({
queryKey: ['replay', { websiteId, sessionId }],
queryKey: ['replay', { websiteId, replayId }],
queryFn: () => {
return get(`/websites/${websiteId}/replays/${sessionId}`);
return get(`/websites/${websiteId}/replays/${replayId}`);
},
enabled: Boolean(websiteId && sessionId),
enabled: Boolean(websiteId && replayId),
});
}
@@ -0,0 +1,21 @@
import { useApi } from '../useApi';
import { useDateParameters } from '../useDateParameters';
import { usePagedQuery } from '../usePagedQuery';
export function useSessionReplaysQuery(websiteId: string, sessionId: string) {
const { get } = useApi();
const { startAt, endAt, unit, timezone } = useDateParameters();
return usePagedQuery({
queryKey: ['session-replays', { websiteId, sessionId, startAt, endAt, unit, timezone }],
queryFn: pageParams => {
return get(`/websites/${websiteId}/sessions/${sessionId}/replays`, {
startAt,
endAt,
unit,
timezone,
...pageParams,
});
},
});
}
@@ -1,6 +1,6 @@
import { useApi } from '../useApi';
export function useWebsiteSessionQuery(websiteId: string, sessionId: string) {
export function useWebsiteSessionQuery(websiteId: string, sessionId: string | undefined) {
const { get, useQuery } = useApi();
return useQuery({
+1
View File
@@ -359,6 +359,7 @@ export const labels: Record<string, string> = {
sampleSize: 'label.sample-size',
replays: 'label.replays',
replay: 'label.replay',
replayId: 'label.replay-id',
replayEnabled: 'label.replay-enabled',
sampleRate: 'label.sample-rate',
maskLevel: 'label.mask-level',