UNPKG

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
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 }); }, }));