30 lines
825 B
TypeScript
30 lines
825 B
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: () => {
|
|
queryClient.invalidateQueries({ queryKey: ['orders'] });
|
|
},
|
|
});
|
|
};
|
|
|
|
export const useOrdersQuery = (variables: Parameters<typeof getOrders>[0]) =>
|
|
useQuery({
|
|
queryFn: () => getOrders(variables),
|
|
queryKey: ['orders', variables],
|
|
staleTime: 60 * 1_000,
|
|
});
|