Spaces:
Build error
Build error
File size: 1,344 Bytes
df2e14d | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
import { audioLabService } from '../services/audioLabService';
export const useAudioLab = () => {
const queryClient = useQueryClient();
const QUERY_KEY = ['audiolab-state'];
const { data, isLoading: loading } = useQuery({
queryKey: QUERY_KEY,
queryFn: () => audioLabService.getState(),
refetchOnWindowFocus: false,
});
const processMutation = useMutation({
mutationFn: audioLabService.process,
onSuccess: (newState) => {
queryClient.setQueryData(QUERY_KEY, newState);
},
});
const seiyuuSearchMutation = useMutation({
mutationFn: ({ q, language, origin }: { q: string; language?: string; origin?: string }) =>
audioLabService.searchSeiyuu(q, language, origin),
});
const ingestVoiceMutation = useMutation({
mutationFn: audioLabService.ingestVoice,
});
return {
data,
loading,
processAudio: processMutation.mutateAsync,
searchSeiyuu: (q: string, language?: string, origin?: string) =>
seiyuuSearchMutation.mutateAsync({ q, language, origin }),
ingestVoice: ingestVoiceMutation.mutateAsync,
seiyuuResults: seiyuuSearchMutation.data?.results || [],
isSearchingSeiyuu: seiyuuSearchMutation.isPending,
isIngestingVoice: ingestVoiceMutation.isPending,
};
};
|