@growupsell/react-ecommerce-core 1.0.3 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +3 -4
- package/dist/business-config-context.cjs +14 -0
- package/dist/business-config-context.cjs.map +1 -0
- package/dist/business-config-context.d.cts +10 -0
- package/dist/business-config-context.d.ts +10 -0
- package/dist/business-config-context.js +3 -0
- package/dist/business-config-context.js.map +1 -0
- package/dist/chunk-SP77KIKJ.js +12 -0
- package/dist/chunk-SP77KIKJ.js.map +1 -0
- package/dist/{chunk-3O7WAXNM.js → chunk-XL2AT5BD.js} +33 -120
- package/dist/chunk-XL2AT5BD.js.map +1 -0
- package/dist/index.cjs +30 -143
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +513 -12
- package/dist/index.d.ts +513 -12
- package/dist/index.js +2 -2
- package/dist/provider.cjs +30 -142
- package/dist/provider.cjs.map +1 -1
- package/dist/provider.d.cts +4 -503
- package/dist/provider.d.ts +4 -503
- package/dist/provider.js +2 -2
- package/package.json +14 -11
- package/dist/chunk-3O7WAXNM.js.map +0 -1
- package/dist/chunk-AODG56I6.js +0 -59
- package/dist/chunk-AODG56I6.js.map +0 -1
- package/dist/tailwind.cjs +0 -64
- package/dist/tailwind.cjs.map +0 -1
- package/dist/tailwind.d.cts +0 -23
- package/dist/tailwind.d.ts +0 -23
- package/dist/tailwind.js +0 -3
- package/dist/tailwind.js.map +0 -1
- package/dist/types-q1Ks2jul.d.cts +0 -22
- package/dist/types-q1Ks2jul.d.ts +0 -22
package/dist/provider.cjs
CHANGED
|
@@ -5,8 +5,6 @@ var api = require('@growupsell/api');
|
|
|
5
5
|
var jsxRuntime = require('react/jsx-runtime');
|
|
6
6
|
var api$1 = require('@growupsell/api/api');
|
|
7
7
|
require('lodash');
|
|
8
|
-
var reactToastify = require('react-toastify');
|
|
9
|
-
var fa = require('react-icons/fa');
|
|
10
8
|
|
|
11
9
|
// src/provider/AuthProvider.tsx
|
|
12
10
|
var StorageContext = react.createContext({
|
|
@@ -210,57 +208,28 @@ var BusinessConfigProvider = ({
|
|
|
210
208
|
};
|
|
211
209
|
var useBusinessContext = () => react.useContext(BusinessConfigContext);
|
|
212
210
|
var useBusiness = () => react.useContext(BusinessConfigContext);
|
|
213
|
-
|
|
214
|
-
const
|
|
215
|
-
position: "top-right",
|
|
216
|
-
autoClose: 3e3
|
|
211
|
+
function createNoopToastSupport() {
|
|
212
|
+
const noop = () => {
|
|
217
213
|
};
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
case "warning":
|
|
238
|
-
reactToastify.toast.warning(message, {
|
|
239
|
-
...defaultOptions,
|
|
240
|
-
...options
|
|
241
|
-
});
|
|
242
|
-
break;
|
|
243
|
-
case "default":
|
|
244
|
-
reactToastify.toast(message, {
|
|
245
|
-
...defaultOptions,
|
|
246
|
-
...options
|
|
247
|
-
});
|
|
248
|
-
break;
|
|
249
|
-
default:
|
|
250
|
-
reactToastify.toast(message, {
|
|
251
|
-
...defaultOptions,
|
|
252
|
-
...options
|
|
253
|
-
});
|
|
254
|
-
break;
|
|
255
|
-
}
|
|
256
|
-
};
|
|
257
|
-
var toast = {
|
|
258
|
-
success: (message, options) => show("success", message, options),
|
|
259
|
-
error: (message, options) => show("error", message, options),
|
|
260
|
-
info: (message, options) => show("info", message, options),
|
|
261
|
-
warning: (message, options) => show("warning", message, options),
|
|
262
|
-
default: (message, options) => show("default", message, options)
|
|
263
|
-
};
|
|
214
|
+
return {
|
|
215
|
+
success: noop,
|
|
216
|
+
error: noop,
|
|
217
|
+
info: noop,
|
|
218
|
+
warning: noop,
|
|
219
|
+
default: noop
|
|
220
|
+
};
|
|
221
|
+
}
|
|
222
|
+
var ToastSupportContext = react.createContext(createNoopToastSupport());
|
|
223
|
+
function ToastSupportProvider({ children, value }) {
|
|
224
|
+
const api13 = react.useMemo(() => {
|
|
225
|
+
if (!value) return createNoopToastSupport();
|
|
226
|
+
return { ...createNoopToastSupport(), ...value };
|
|
227
|
+
}, [value]);
|
|
228
|
+
return /* @__PURE__ */ jsxRuntime.jsx(ToastSupportContext.Provider, { value: api13, children });
|
|
229
|
+
}
|
|
230
|
+
function useToastSupport() {
|
|
231
|
+
return react.useContext(ToastSupportContext);
|
|
232
|
+
}
|
|
264
233
|
var CartWishlistRefreshContext = react.createContext({
|
|
265
234
|
refreshType: null,
|
|
266
235
|
setRefreshType: () => null
|
|
@@ -281,6 +250,7 @@ var CartContext = react.createContext({
|
|
|
281
250
|
onChangeOffer: () => null,
|
|
282
251
|
onChangeOrderType: () => null,
|
|
283
252
|
session: {},
|
|
253
|
+
setSession: () => null,
|
|
284
254
|
removeAppliedOffer: () => null,
|
|
285
255
|
moveToWishlist: () => null,
|
|
286
256
|
moveToWishlistLoading: false,
|
|
@@ -290,6 +260,7 @@ var CartContext = react.createContext({
|
|
|
290
260
|
errorMessage: null
|
|
291
261
|
});
|
|
292
262
|
var CartProvider = (props) => {
|
|
263
|
+
const toast = useToastSupport();
|
|
293
264
|
const [cartItems, setCartItems] = react.useState([]);
|
|
294
265
|
const [orderFetchLoading, setOrderFetchLoading] = react.useState(true);
|
|
295
266
|
const [addToCartLoading, setAddToCartLoading] = react.useState(false);
|
|
@@ -563,6 +534,7 @@ var CartProvider = (props) => {
|
|
|
563
534
|
onChangeOffer,
|
|
564
535
|
onChangeOrderType,
|
|
565
536
|
session,
|
|
537
|
+
setSession,
|
|
566
538
|
removeAppliedOffer,
|
|
567
539
|
moveToWishlist,
|
|
568
540
|
moveToWishlistLoading,
|
|
@@ -866,51 +838,6 @@ var ProductDetailProvider = (props) => {
|
|
|
866
838
|
);
|
|
867
839
|
};
|
|
868
840
|
var useProductDetail = () => react.useContext(ProductDetailContext);
|
|
869
|
-
|
|
870
|
-
// src/tailwind/applyTheme.ts
|
|
871
|
-
function applyTheme(themeRGB) {
|
|
872
|
-
const themeObject = mapTheme(themeRGB);
|
|
873
|
-
const root = document.documentElement;
|
|
874
|
-
Object.keys(themeObject).forEach((v) => {
|
|
875
|
-
const propertyVal = themeObject[v];
|
|
876
|
-
const validation = validateRGB(propertyVal);
|
|
877
|
-
if (!validation) {
|
|
878
|
-
throw new Error(`Invalid RGB value for ${v}: ${propertyVal}`);
|
|
879
|
-
}
|
|
880
|
-
root.style.setProperty(v, propertyVal);
|
|
881
|
-
});
|
|
882
|
-
}
|
|
883
|
-
function mapTheme(rgb) {
|
|
884
|
-
return {
|
|
885
|
-
"--color-primary": rgb["primary"] ?? ""
|
|
886
|
-
};
|
|
887
|
-
}
|
|
888
|
-
function validateRGB(rgb) {
|
|
889
|
-
if (!rgb) return true;
|
|
890
|
-
const rgbRegex = /^(\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})$/;
|
|
891
|
-
return rgbRegex.test(rgb);
|
|
892
|
-
}
|
|
893
|
-
function hexToRgb(hex) {
|
|
894
|
-
var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex);
|
|
895
|
-
return result ? `${parseInt(result[1], 16).toString()},${parseInt(result[2], 16).toString()},${parseInt(result[3], 16).toString()}` : null;
|
|
896
|
-
}
|
|
897
|
-
var ThemeContext = react.createContext({
|
|
898
|
-
themeRGB: {}
|
|
899
|
-
});
|
|
900
|
-
function ThemeProvider(props) {
|
|
901
|
-
const config = react.useContext(BusinessConfigContext);
|
|
902
|
-
const { theme } = config;
|
|
903
|
-
const pcolor = hexToRgb(theme?.primary_color);
|
|
904
|
-
const primaryColor = !!pcolor ? pcolor : "0, 72, 76";
|
|
905
|
-
react.useEffect(() => {
|
|
906
|
-
applyTheme({ primary: primaryColor });
|
|
907
|
-
}, []);
|
|
908
|
-
const value = react.useMemo(() => {
|
|
909
|
-
return { themeRGB: { primary: primaryColor } };
|
|
910
|
-
}, [primaryColor]);
|
|
911
|
-
return /* @__PURE__ */ jsxRuntime.jsx(ThemeContext.Provider, { value, children: props.children });
|
|
912
|
-
}
|
|
913
|
-
var useTheme = () => react.useContext(ThemeContext);
|
|
914
841
|
var ProductConfigContext = react.createContext({});
|
|
915
842
|
var ProductConfigProvider = (props) => {
|
|
916
843
|
const [productConfig, setProductConfig] = react.useState({});
|
|
@@ -1224,6 +1151,7 @@ var WishlistContext = react.createContext({
|
|
|
1224
1151
|
moveToCartLoading: false
|
|
1225
1152
|
});
|
|
1226
1153
|
var WishlistProvider = (props) => {
|
|
1154
|
+
const toast = useToastSupport();
|
|
1227
1155
|
const [wishlistItems, setWishlistItems] = react.useState([]);
|
|
1228
1156
|
const { user } = useAuth();
|
|
1229
1157
|
const [fetchWishlistLoading, setFetchWishlistLoading] = react.useState(true);
|
|
@@ -1314,32 +1242,6 @@ var WishlistProvider = (props) => {
|
|
|
1314
1242
|
return /* @__PURE__ */ jsxRuntime.jsx(WishlistContext.Provider, { value: { wishlistItems, addToWishlist, deleteWishlistItem, moveToCart, fetchWishlistLoading, addToWishlistLoading, moveToCartLoading }, children: props.children });
|
|
1315
1243
|
};
|
|
1316
1244
|
var useWishlist = () => react.useContext(WishlistContext);
|
|
1317
|
-
function LiveSupportWidget() {
|
|
1318
|
-
const { config, loading } = useLiveSupportWidget();
|
|
1319
|
-
if (loading || !config?.is_active || config?.type !== "whatsapp" || !config?.whatsapp_no?.trim()) {
|
|
1320
|
-
return null;
|
|
1321
|
-
}
|
|
1322
|
-
const phone = config.whatsapp_no.replace(/\D/g, "");
|
|
1323
|
-
const whatsappUrl = `https://wa.me/${phone}`;
|
|
1324
|
-
const handleClick = () => {
|
|
1325
|
-
window.open(whatsappUrl, "_blank", "noopener,noreferrer");
|
|
1326
|
-
};
|
|
1327
|
-
console.log(config);
|
|
1328
|
-
console.log(loading);
|
|
1329
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1330
|
-
"button",
|
|
1331
|
-
{
|
|
1332
|
-
type: "button",
|
|
1333
|
-
onClick: handleClick,
|
|
1334
|
-
style: {
|
|
1335
|
-
bottom: "15px"
|
|
1336
|
-
},
|
|
1337
|
-
className: "fixed bottom-6 fixed right-6 z-[9999] flex h-14 w-14 items-center justify-center rounded-full bg-[#25D366] text-white shadow-lg transition-transform hover:scale-105 focus:outline-none focus:ring-2 focus:ring-[#25D366] focus:ring-offset-2",
|
|
1338
|
-
"aria-label": "Chat on WhatsApp",
|
|
1339
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(fa.FaWhatsapp, { className: "h-8 w-8" })
|
|
1340
|
-
}
|
|
1341
|
-
);
|
|
1342
|
-
}
|
|
1343
1245
|
var BaseProvider = ({
|
|
1344
1246
|
children,
|
|
1345
1247
|
baseURL,
|
|
@@ -1350,12 +1252,10 @@ var BaseProvider = ({
|
|
|
1350
1252
|
isHeader,
|
|
1351
1253
|
isFooter,
|
|
1352
1254
|
isAnnouncementBar,
|
|
1353
|
-
referralCodeFromUrl = null
|
|
1255
|
+
referralCodeFromUrl = null,
|
|
1256
|
+
toast
|
|
1354
1257
|
}) => {
|
|
1355
|
-
return /* @__PURE__ */ jsxRuntime.jsx(StorageProvider, { storage, children: /* @__PURE__ */ jsxRuntime.jsx(BusinessConfigProvider, { data: businessConfig, baseURL, children: /* @__PURE__ */ jsxRuntime.jsx(ReferralCodeProvider, { referralCodeFromUrl, children: /* @__PURE__ */ jsxRuntime.jsx(ThemeEditProvider, { isThemeEdit: isEdit, token, isHeader, isFooter, isAnnouncementBar, children: /* @__PURE__ */ jsxRuntime.jsx(BusinessMediaProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(CustomerConfigProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(AuthProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(ModalProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1356
|
-
businessConfig.category.type == "retail" ? /* @__PURE__ */ jsxRuntime.jsx(ProductConfigProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(CartWishlistRefreshProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(CartProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(WishlistProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(FilterProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children }) }) }) }) }) }) : /* @__PURE__ */ jsxRuntime.jsx(MenuCartProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(MenuFilterProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children }) }) }),
|
|
1357
|
-
/* @__PURE__ */ jsxRuntime.jsx(LiveSupportWidget, {})
|
|
1358
|
-
] }) }) }) }) }) }) }) }) }) });
|
|
1258
|
+
return /* @__PURE__ */ jsxRuntime.jsx(StorageProvider, { storage, children: /* @__PURE__ */ jsxRuntime.jsx(ToastSupportProvider, { value: toast, children: /* @__PURE__ */ jsxRuntime.jsx(BusinessConfigProvider, { data: businessConfig, baseURL, children: /* @__PURE__ */ jsxRuntime.jsx(ReferralCodeProvider, { referralCodeFromUrl, children: /* @__PURE__ */ jsxRuntime.jsx(ThemeEditProvider, { isThemeEdit: isEdit, token, isHeader, isFooter, isAnnouncementBar, children: /* @__PURE__ */ jsxRuntime.jsx(BusinessMediaProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(CustomerConfigProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(AuthProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(ModalProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(LiveSupportWidgetProvider, { children: businessConfig.category.type == "retail" ? /* @__PURE__ */ jsxRuntime.jsx(ProductConfigProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(CartWishlistRefreshProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(CartProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(WishlistProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(FilterProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children }) }) }) }) }) }) : /* @__PURE__ */ jsxRuntime.jsx(MenuCartProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(MenuFilterProvider, { children: /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children }) }) }) }) }) }) }) }) }) }) }) }) });
|
|
1359
1259
|
};
|
|
1360
1260
|
var ModalContext = react.createContext(void 0);
|
|
1361
1261
|
var ModalProvider = ({ children }) => {
|
|
@@ -1899,16 +1799,6 @@ var MenuCartProvider = (props) => {
|
|
|
1899
1799
|
);
|
|
1900
1800
|
};
|
|
1901
1801
|
var useMenuCart = () => react.useContext(MenuCartContext);
|
|
1902
|
-
var ToastProvider = () => {
|
|
1903
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1904
|
-
reactToastify.ToastContainer,
|
|
1905
|
-
{
|
|
1906
|
-
position: "top-right",
|
|
1907
|
-
autoClose: 3e3,
|
|
1908
|
-
theme: "colored"
|
|
1909
|
-
}
|
|
1910
|
-
);
|
|
1911
|
-
};
|
|
1912
1802
|
var REFERRAL_STORAGE_KEY = "referralCode";
|
|
1913
1803
|
var ReferralCodeContext = react.createContext(null);
|
|
1914
1804
|
function ReferralCodeProvider({
|
|
@@ -2000,11 +1890,9 @@ exports.ProductDetailProvider = ProductDetailProvider;
|
|
|
2000
1890
|
exports.ReferralCodeProvider = ReferralCodeProvider;
|
|
2001
1891
|
exports.StorageContext = StorageContext;
|
|
2002
1892
|
exports.StorageProvider = StorageProvider;
|
|
2003
|
-
exports.ThemeContext = ThemeContext;
|
|
2004
1893
|
exports.ThemeEditContext = ThemeEditContext;
|
|
2005
1894
|
exports.ThemeEditProvider = ThemeEditProvider;
|
|
2006
|
-
exports.
|
|
2007
|
-
exports.ToastProvider = ToastProvider;
|
|
1895
|
+
exports.ToastSupportProvider = ToastSupportProvider;
|
|
2008
1896
|
exports.WishlistContext = WishlistContext;
|
|
2009
1897
|
exports.WishlistProvider = WishlistProvider;
|
|
2010
1898
|
exports.useAuth = useAuth;
|
|
@@ -2027,8 +1915,8 @@ exports.useProductConfig = useProductConfig;
|
|
|
2027
1915
|
exports.useProductDetail = useProductDetail;
|
|
2028
1916
|
exports.useReferralCode = useReferralCode;
|
|
2029
1917
|
exports.useStorage = useStorage;
|
|
2030
|
-
exports.useTheme = useTheme;
|
|
2031
1918
|
exports.useThemeEdit = useThemeEdit;
|
|
1919
|
+
exports.useToastSupport = useToastSupport;
|
|
2032
1920
|
exports.useWishlist = useWishlist;
|
|
2033
1921
|
//# sourceMappingURL=provider.cjs.map
|
|
2034
1922
|
//# sourceMappingURL=provider.cjs.map
|