2025-05-16 16:05:09 +03:00

34 lines
998 B
TypeScript

'use client';
import { getCustomer, updateCustomer } from '@/actions/api/customers';
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
import { useSession } from 'next-auth/react';
export const useCustomerQuery = (props?: Parameters<typeof getCustomer>[0]) => {
const { data: session } = useSession();
const telegramId = props?.telegramId || session?.user?.telegramId;
return useQuery({
queryFn: () => getCustomer({ telegramId }),
queryKey: ['customer', 'telegramId', telegramId, 'get'],
});
};
export const useCustomerMutation = () => {
const { data: session } = useSession();
const telegramId = session?.user?.telegramId;
const queryClient = useQueryClient();
function handleOnSuccess() {
queryClient.invalidateQueries({
queryKey: ['customer', 'telegramId', telegramId, 'get'],
});
}
return useMutation({
mutationFn: updateCustomer,
mutationKey: ['customer', 'update'],
onSuccess: handleOnSuccess,
});
};