order detail + change status in all state

This commit is contained in:
hamid zarghami
2025-12-20 14:33:19 +03:30
parent 566c4cb97b
commit de8815f0d8
13 changed files with 1065 additions and 300 deletions
+44 -4
View File
@@ -1,6 +1,6 @@
import { useMutation, useQuery } from "@tanstack/react-query";
import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
import * as api from "../service/OrderService";
import type { GetOrdersParams } from "../service/OrderService";
import type { GetOrdersParams, ChangeOrderStatusParams, RefundPaymentParams } from "../service/OrderService";
export const useGetOrders = (params?: GetOrdersParams) => {
return useQuery({
@@ -17,8 +17,48 @@ export const useGetOrderById = (orderId: string) => {
});
};
export const useConfirmOrder = (orderId: string) => {
export const useConfirmOrder = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: () => api.confirmOrder(orderId),
mutationFn: (orderId: string) => api.confirmOrder(orderId),
onSuccess: (_, orderId) => {
queryClient.invalidateQueries({ queryKey: ["order", orderId] });
queryClient.invalidateQueries({ queryKey: ["orders"] });
},
});
};
export const useVerifyCashPayment = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: (paymentId: string) => api.verifyCashPayment(paymentId),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ["order"] });
queryClient.invalidateQueries({ queryKey: ["orders"] });
},
});
};
export const useChangeOrderStatus = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: ({ orderId, status, params }: { orderId: string; status: string; params?: ChangeOrderStatusParams }) =>
api.changeOrderStatus(orderId, status, params),
onSuccess: (_, { orderId }) => {
queryClient.invalidateQueries({ queryKey: ["order", orderId] });
queryClient.invalidateQueries({ queryKey: ["orders"] });
},
});
};
export const useRefundPayment = () => {
const queryClient = useQueryClient();
return useMutation({
mutationFn: ({ orderId, params }: { orderId: string; params: RefundPaymentParams }) =>
api.refundPayment(orderId, params),
onSuccess: (_, { orderId }) => {
queryClient.invalidateQueries({ queryKey: ["order", orderId] });
queryClient.invalidateQueries({ queryKey: ["orders"] });
},
});
};