add RQ to clear all conversations

This commit is contained in:
Daniel D Orlando 2023-04-03 12:55:24 -07:00
parent 94e0636b32
commit dd0a91a9f6
3 changed files with 19 additions and 36 deletions

View file

@ -1,27 +1,27 @@
import React from 'react'; import { useEffect } from 'react';
import store from '~/store'; import store from '~/store';
import TrashIcon from '../svg/TrashIcon'; import TrashIcon from '../svg/TrashIcon';
import { useSWRConfig } from 'swr';
import manualSWR from '~/utils/fetchers';
import { Dialog, DialogTrigger } from '../ui/Dialog.tsx'; import { Dialog, DialogTrigger } from '../ui/Dialog.tsx';
import DialogTemplate from '../ui/DialogTemplate'; import DialogTemplate from '../ui/DialogTemplate';
import { useDeleteConversationMutation } from '~/data-provider';
export default function ClearConvos() { export default function ClearConvos() {
const { newConversation } = store.useConversation(); const { newConversation } = store.useConversation();
const { refreshConversations } = store.useConversations(); const { refreshConversations } = store.useConversations();
const { mutate } = useSWRConfig(); const clearConvosMutation = useDeleteConversationMutation();
const { trigger } = manualSWR(`/api/convos/clear`, 'post', () => {
newConversation();
refreshConversations();
mutate(`/api/convos`);
});
const clickHandler = () => { const clickHandler = () => {
console.log('Clearing conversations...'); console.log('Clearing conversations...');
trigger({}); clearConvosMutation.mutate({});
}; };
useEffect(() => {
if (clearConvosMutation.isSuccess) {
newConversation();
refreshConversations();
}
}, [clearConvosMutation.isSuccess]);
return ( return (
<Dialog> <Dialog>
<DialogTrigger asChild> <DialogTrigger asChild>

View file

@ -61,11 +61,7 @@ export const useGetConversationByIdQuery = (
export const useUpdateConversationMutation = ( export const useUpdateConversationMutation = (
id: string id: string
): UseMutationResult< ): UseMutationResult<
t.TUpdateConversationResponse, t.TUpdateConversationResponse> => {
unknown,
t.TUpdateConversationRequest,
unknown
> => {
const queryClient = useQueryClient(); const queryClient = useQueryClient();
return useMutation( return useMutation(
(payload: t.TUpdateConversationRequest) => (payload: t.TUpdateConversationRequest) =>
@ -80,8 +76,8 @@ export const useUpdateConversationMutation = (
}; };
export const useDeleteConversationMutation = ( export const useDeleteConversationMutation = (
id: string id?: string
): UseMutationResult<t.TDeleteConversationResponse, unknown, t.TDeleteConversationRequest, unknown> => { ): UseMutationResult<t.TDeleteConversationResponse> => {
const queryClient = useQueryClient(); const queryClient = useQueryClient();
return useMutation( return useMutation(
(payload: t.TDeleteConversationRequest) => (payload: t.TDeleteConversationRequest) =>
@ -95,12 +91,7 @@ export const useDeleteConversationMutation = (
); );
}; };
export const useUpdateCustomGptMutation = (): UseMutationResult< export const useUpdateCustomGptMutation = (): UseMutationResult<t.TUpdateCustomGptResponse> => {
t.TUpdateCustomGptResponse,
unknown,
t.TUpdateCustomGptRequest,
unknown
> => {
const queryClient = useQueryClient(); const queryClient = useQueryClient();
return useMutation( return useMutation(
(payload: t.TUpdateCustomGptRequest) => (payload: t.TUpdateCustomGptRequest) =>
@ -124,12 +115,7 @@ export const useGetCustomGptsQuery = (): QueryObserverResult<
}); });
}; };
export const useDeleteCustomGptMutation = (): UseMutationResult< export const useDeleteCustomGptMutation = (): UseMutationResult<t.TDeleteCustomGptResponse> => {
t.TDeleteCustomGptResponse,
unknown,
t.TDeleteCustomGptRequest,
unknown
> => {
const queryClient = useQueryClient(); const queryClient = useQueryClient();
return useMutation( return useMutation(
(payload: t.TDeleteCustomGptRequest) => (payload: t.TDeleteCustomGptRequest) =>
@ -142,10 +128,7 @@ export const useDeleteCustomGptMutation = (): UseMutationResult<
); );
}; };
export const useGetModelsQuery = (): QueryObserverResult< export const useGetModelsQuery = (): QueryObserverResult<t.TGetModelsResponse> => {
t.TGetModelsResponse,
unknown
> => {
return useQuery([QueryKeys.models], () => dataService.getModels(), { return useQuery([QueryKeys.models], () => dataService.getModels(), {
refetchOnWindowFocus: false, refetchOnWindowFocus: false,
refetchOnReconnect: false, refetchOnReconnect: false,

View file

@ -158,8 +158,8 @@ export type TUpdateConversationResponse = {
}; };
export type TDeleteConversationRequest = { export type TDeleteConversationRequest = {
conversationId: string, conversationId?: string,
source: string source?: string
} }
export type TDeleteConversationResponse = { export type TDeleteConversationResponse = {