2025-06-11 14:55:36 +03:00

39 lines
1.1 KiB
TypeScript

'use client';
import { createOrder, getOrder, getOrders } from '@/actions/api/orders';
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
export const useOrderQuery = ({ documentId }: Parameters<typeof getOrder>[0]) =>
useQuery({
queryFn: () => getOrder({ documentId }),
queryKey: ['order', documentId],
});
export const useOrderCreate = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: createOrder,
mutationKey: ['order', 'create'],
onSuccess: (data) => {
queryClient.invalidateQueries({ queryKey: ['orders'] });
const documentId = data?.createOrder?.documentId;
if (documentId)
queryClient.prefetchQuery({
queryFn: () => getOrder({ documentId }),
queryKey: ['order', documentId],
});
},
});
};
export const useOrdersQuery = (variables: Parameters<typeof getOrders>[0], enabled?: boolean) =>
useQuery({
enabled,
queryFn: () => getOrders(variables),
queryKey: ['orders', variables],
staleTime: 60 * 1_000,
});