UNPKG

storenest-commerce

Version:

Complete e-commerce SDK for Storenest platform with React components, multi-language support, secure checkout, and enterprise-grade security

63 lines (62 loc) 2.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.StorenestProvider = StorenestProvider; exports.useStorenest = useStorenest; const jsx_runtime_1 = require("react/jsx-runtime"); const react_1 = require("react"); const useAuth_1 = require("../hooks/useAuth"); const useCart_1 = require("../hooks/useCart"); const useProducts_1 = require("../hooks/useProducts"); const useProducts_2 = require("../hooks/useProducts"); const StorenestContext = (0, react_1.createContext)(undefined); function StorenestProvider({ children, storageKey = 'storenest_user' }) { const auth = (0, useAuth_1.useAuth)(storageKey); const cart = (0, useCart_1.useCart)(auth.userShopId); const products = (0, useProducts_1.useProducts)(); const productDetail = (0, useProducts_2.useProductDetail)(); const value = { // Auth user: auth.user, userShopId: auth.userShopId, isAuthenticated: auth.isAuthenticated, authLoading: auth.isLoading, authError: auth.error, login: auth.login, register: auth.register, logout: auth.logout, // Cart cart: cart.cart, cartLoading: cart.isLoading, cartError: cart.error, cartItemCount: cart.cartItemCount, cartTotal: cart.cartTotal, addToCart: cart.addItem, updateCartItem: cart.updateItem, removeFromCart: cart.removeItem, refreshCart: cart.refreshCart, // Products products: products.products, productsLoading: products.isLoading, productsError: products.error, productsTotal: products.total, productsPage: products.page, productsLimit: products.limit, hasNextPage: products.hasNextPage, hasPreviousPage: products.hasPreviousPage, loadProducts: products.loadProducts, loadProductsByCategory: products.loadProductsByCategory, // Product Detail product: productDetail.product, productLoading: productDetail.isLoading, productError: productDetail.error, loadProduct: productDetail.loadProduct, }; return ((0, jsx_runtime_1.jsx)(StorenestContext.Provider, { value: value, children: children })); } function useStorenest() { const context = (0, react_1.useContext)(StorenestContext); if (context === undefined) { throw new Error('useStorenest must be used within a StorenestProvider'); } return context; }