Files
negareh-admin/src/pages/order/hooks/useOrderData.ts
T
hamid zarghami 54b86b718c edit order
2026-02-26 09:04:13 +03:30

124 lines
2.5 KiB
TypeScript

import { useMutation, useQuery } from "@tanstack/react-query";
import * as api from "../service/OrderService";
import type {
AddTicketType,
OrderPrintFormType,
UpdateOrderType,
} from "../types/Types";
export const useGetOrders = (params?: api.GetOrdersParams) => {
return useQuery({
queryKey: ["orders", params],
queryFn: () => api.getOrders(params),
});
};
export const useGetOrdersInvoiced = (page: number = 1) => {
return useQuery({
queryKey: ["orders-invoiced", page],
queryFn: () => api.getOrdersInvoiced(page),
});
};
export const useGetRequests = () => {
return useQuery({
queryKey: ["requests"],
queryFn: api.getRequests,
});
};
export const useGetOrderDetails = (id: string) => {
return useQuery({
queryKey: ["order", id],
queryFn: () => api.getOrderDetail(id),
enabled: !!id,
});
};
export const useGetTickets = (orderId: string) => {
return useQuery({
queryKey: ["tickets", orderId],
queryFn: () => api.getTickets(orderId),
enabled: !!orderId,
});
};
export const useAddTicket = () => {
return useMutation({
mutationFn: ({
orderId,
params,
}: {
orderId: string;
params: AddTicketType;
}) => api.addTicket(orderId, params),
});
};
export const useCreateOrder = () => {
return useMutation({
mutationFn: api.submitOrder,
});
};
export const useConverToOrder = () => {
return useMutation({
mutationFn: api.converToOrder,
});
};
export const useUpdateOrder = () => {
return useMutation({
mutationFn: ({
orderId,
params,
}: {
orderId: string;
params: UpdateOrderType;
}) => api.updateOrder(orderId, params),
});
};
export const useGetProducts = () => {
return useQuery({
queryKey: ["products"],
queryFn: api.getProducts,
});
};
export const useGetAttributes = (id?: string) => {
return useQuery({
queryKey: ["attributes", id],
queryFn: () => api.getAttributes(id),
enabled: !!id,
});
};
export const useGetOrderItem = (id?: string) => {
return useQuery({
queryKey: ["order-item", id],
queryFn: () => api.getOrderItem(id),
enabled: !!id,
});
};
export const useSubmitOrderPrint = () => {
return useMutation({
mutationFn: ({
orderId,
params,
}: {
orderId: string;
params: OrderPrintFormType;
}) => api.submitOrderPrint(orderId, params),
});
};
export const useGetOrderPrint = (orderId: string) => {
return useQuery({
queryKey: ["order-print", orderId],
queryFn: () => api.getOrderPrint(orderId),
enabled: !!orderId,
});
};