Files
yaak-mountain-loop/src-web/hooks/useResponses.ts
2023-03-13 23:25:41 -07:00

27 lines
818 B
TypeScript

import { useQuery } from '@tanstack/react-query';
import { invoke } from '@tauri-apps/api';
import type { HttpResponse } from '../lib/models';
import { convertDates } from '../lib/models';
import { useActiveRequest } from './useActiveRequest';
export function responsesQueryKey(requestId: string) {
return ['responses', { requestId }];
}
export function useResponses() {
const activeRequest = useActiveRequest();
return (
useQuery<HttpResponse[]>({
enabled: activeRequest != null,
initialData: [],
queryKey: responsesQueryKey(activeRequest?.id ?? 'n/a'),
queryFn: async () => {
const responses = (await invoke('responses', {
requestId: activeRequest?.id,
})) as HttpResponse[];
return responses.map(convertDates);
},
}).data ?? []
);
}