test-iki-mini-app
Version:
ứng dựng bán hàng trên mini app z a l o
79 lines (77 loc) • 2.17 kB
JavaScript
import { create } from "zustand";
import { RepositoryRemote } from "../services";
export const useAddressStore = create((set) => ({
loading: false,
allAddress: [],
provinces: [],
districts: [],
wards: [],
getAllAddress: async (onFail = () => {}) => {
try {
set({ loading: true });
const response = await RepositoryRemote.address.getAllAddress();
set({allAddress: response.data.data})
} catch (error) {
onFail(error);
}
set({ loading: false });
},
addAddress: async (form, onSuccess, onFail) => {
try {
set({ loading: true });
const response = await RepositoryRemote.address.addAddress(form);
onSuccess(response);
} catch (error) {
onFail(error);
}
set({ loading: false });
},
editAddress: async (id, form, onSuccess, onFail) => {
try {
set({ loading: true });
const response = await RepositoryRemote.address.editAddress(id, form);
onSuccess(response);
} catch (error) {
onFail(error);
}
set({ loading: false });
},
deleteAddress: async (id, onSuccess, onFail) => {
try {
set({ loading: true });
const response = await RepositoryRemote.address.deleteAddress(id);
onSuccess(response);
} catch (error) {
onFail(error);
}
set({ loading: false });
},
getProvinces: async (onSuccess, onFail) => {
try {
set({ loading: true });
const response = await RepositoryRemote.address.getProvinces();
localStorage.setItem("provinces", JSON.stringify(response.data.data));
set({ provinces: response.data.data });
onSuccess(response);
} catch (error) {
onFail(error);
}
set({ loading: false });
},
getDistrict: async (item, onFail) => {
try {
const response = await RepositoryRemote.address.getDistrict(item.id);
set({ districts: response.data.data });
} catch (error) {
onFail(error);
}
},
getWards: async (item, onFail) => {
try {
const response = await RepositoryRemote.address.getWards(item.id);
set({ wards: response.data.data });
} catch (error) {
onFail(error);
}
},
}));