test-iki-mini-app
Version:
ứng dựng bán hàng trên mini app z a l o
136 lines (125 loc) • 3.75 kB
JSX
import { create } from "zustand";
import { RepositoryRemote } from "../services";
import { alerts } from "../utils/alerts";
export const useProductStore = create((set) => ({
products: [],
productsData: {},
productsList: [],
favoritesProduct: [],
purchasedProducts: [],
loading: false,
similarList: [],
similarLoading: false,
getAllProduct: async (onSuccess, onFail) => {
try {
set({ loading: true });
const response = await RepositoryRemote.product.getAllProduct();
set ({productsData: response.data.data})
set ({productsList: response.data.data.data})
onSuccess(response);
} catch (error) {
onFail(error);
}
set({ loading: false });
},
apiProduct: async (product, onSuccess, onFail) => {
try {
set({ loading: true });
const response = await RepositoryRemote.product.apiProduct(product);
set ({productsData: response.data.data})
onSuccess(response);
} catch (error) {
onFail(error);
}
set({ loading: false });
},
similarProducts: async (product, onSuccess, onFail) => {
try {
set({ similarLoading: true });
const response = await RepositoryRemote.product.similarProducts(product);
set ({similarList: response.data.data})
onSuccess(response);
} catch (error) {
onFail(error)
}
set({ similarLoading: false });
},
productByCategory: async (category, onSuccess, onFail) => {
try {
set({ loading: true });
const response = await RepositoryRemote.product.productByCategory(category);
set ({productsList: response.data.data.data})
onSuccess(response);
} catch (error) {
onFail(error)
}
set({ loading: false });
},
searchByName: async (search, onSuccess, onFail) => {
try {
set({ loading: true });
const response = await RepositoryRemote.product.searchByName(search);
console.log(response);
set ({productsList: response.data.data.data})
onSuccess(response);
} catch (error) {
onFail(error)
}
set({ loading: false });
},
productsNew: async (onSuccess, onFail) => {
try {
set({ loading: true });
const response = await RepositoryRemote.product.productsNew();
set ({productsList: response.data.data})
onSuccess(response);
} catch (error) {
onFail(error)
}
set({ loading: false });
},
productsTopSale: async (onSuccess, onFail) => {
try {
set({ loading: true });
const response = await RepositoryRemote.product.productsTopSale();
set ({productsList: response.data.data})
onSuccess(response);
} catch (error) {
onFail(error)
}
set({ loading: false });
},
productFavorite: async (product, form, onSuccess, onFail) => {
try {
// set({ loading: true });
const response = await RepositoryRemote.product.productFavorite(product, form);
set ({productsData: response.data.data})
onSuccess(response);
} catch (error) {
onFail(error)
}
// set({ loading: false });
},
favorites: async (onSuccess, onFail) => {
try {
set({ loading: true });
const response = await RepositoryRemote.product.favorites();
set ({favoritesProduct: response.data.data.data})
onSuccess(response);
} catch (error) {
onFail(error)
}
set({ loading: false });
},
getPurchasedProducts: async (onSuccess, onFail) => {
try {
set({ loading: true });
const response = await RepositoryRemote.product.getPurchasedProducts();
set ({purchasedProducts: response.data.data.data})
onSuccess(response);
} catch (error) {
onFail(error)
}
set({ loading: false });
},
}));