test-iki-mini-app
Version:
ứng dựng bán hàng trên mini app z a l o
91 lines (87 loc) • 2.38 kB
JSX
import { create } from "zustand";
import { RepositoryRemote } from "../services";
export const useOrderStore = create((set) => ({
loading: false,
loadingOrder: false,
loadingCancel: false,
isEmptyData: false,
ordersList: {},
order: {},
recordsOder: [],
changePaymentOrder: async (
data,
order_code,
onSuccess = () => {},
onFail = () => {}
) => {
try {
set({ loading: true });
const response = await RepositoryRemote.order.changePaymentOrder(
data,
order_code
);
if (onSuccess) onSuccess(response);
} catch (error) {
if (onFail) onFail(error.response.data.msg);
}
set({ loading: false });
},
getOrdersList: async (params, onSuccess = () => {}, onFail = () => {}) => {
try {
set({ loadingOrder: true });
const response = await RepositoryRemote.order.getOrdersList(params);
set({
ordersList: response.data.data,
isEmptyData: response.data.data.data?.length > 0 ? false : true,
});
if (onSuccess) onSuccess(response);
} catch (error) {
if (onFail) onFail(error.response.data.msg);
}
set({ loadingOrder: false });
},
getOrdersDetail: async (
orderCode,
onSuccess = () => {},
onFail = () => {}
) => {
try {
set({ loading: true });
const response = await RepositoryRemote.order.getOrdersDetail(orderCode);
set({
order: response.data.data,
});
if (onSuccess) onSuccess(response);
} catch (error) {
if (onFail) onFail(error.response.data.msg);
}
set({ loading: false });
},
getRecordsOrder: async (
orderCode,
onSuccess = () => {},
onFail = () => {}
) => {
try {
set({ loading: true });
const response = await RepositoryRemote.order.getRecordsOrder(orderCode);
set({
recordsOder: response.data.data,
});
if (onSuccess) onSuccess(response);
} catch (error) {
if (onFail) onFail(error.response.data.msg);
}
set({ loading: false });
},
cancelOrder: async (data, onSuccess = () => {}, onFail = () => {}) => {
try {
set({ loadingCancel: true });
await RepositoryRemote.order.cancelOrder(data);
if (onSuccess) onSuccess();
} catch (error) {
if (onFail) onFail(error.response.data.msg);
}
set({ loadingCancel: false });
},
}));