Implements full session recording with rrweb for DOM capture and rrweb-player for playback. Includes: Prisma schema for SessionRecording model, chunked gzip-compressed storage, recorder script built via Rollup, collection API endpoint, recordings list/playback UI pages, website recording settings, and cascade delete support. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
26 lines
795 B
TypeScript
26 lines
795 B
TypeScript
import { useApi } from '../useApi';
|
|
import { useDateParameters } from '../useDateParameters';
|
|
import { useModified } from '../useModified';
|
|
import { usePagedQuery } from '../usePagedQuery';
|
|
|
|
export function useRecordingsQuery(websiteId: string, params?: Record<string, string | number>) {
|
|
const { get } = useApi();
|
|
const { modified } = useModified('recordings');
|
|
const { startAt, endAt, unit, timezone } = useDateParameters();
|
|
|
|
return usePagedQuery({
|
|
queryKey: ['recordings', { websiteId, modified, startAt, endAt, unit, timezone, ...params }],
|
|
queryFn: pageParams => {
|
|
return get(`/websites/${websiteId}/recordings`, {
|
|
startAt,
|
|
endAt,
|
|
unit,
|
|
timezone,
|
|
...pageParams,
|
|
...params,
|
|
pageSize: 20,
|
|
});
|
|
},
|
|
});
|
|
}
|