Files
yaak/src-web/hooks/useWebsocketEvents.ts
2025-01-31 09:00:11 -08:00

22 lines
742 B
TypeScript

import { useQuery } from '@tanstack/react-query';
import type { WebsocketEvent } from '@yaakapp-internal/models';
import { listWebsocketEvents } from '@yaakapp-internal/ws';
export function websocketEventsQueryKey({ connectionId }: { connectionId: string }) {
return ['websocket_events', { connectionId }];
}
export function useWebsocketEvents(connectionId: string | null) {
return (
useQuery<WebsocketEvent[]>({
enabled: connectionId !== null,
initialData: [],
queryKey: websocketEventsQueryKey({ connectionId: connectionId ?? 'n/a' }),
queryFn: () => {
if (connectionId == null) return [] as WebsocketEvent[];
return listWebsocketEvents({ connectionId });
},
}).data ?? []
);
}