'use client'; import { createOrder, getOrder, getOrders } from '@/actions/api/orders'; import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; export const useOrderQuery = ({ documentId }: Parameters[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[0], enabled?: boolean) => useQuery({ enabled, queryFn: () => getOrders(variables), queryKey: ['orders', variables], staleTime: 60 * 1_000, });