@viu/emporix-sdk-react 2.7.0 → 2.8.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/CHANGELOG.md +58 -0
- package/dist/{chunk-TJXNTSXN.js → chunk-GRGWUXNB.js} +60 -15
- package/dist/chunk-GRGWUXNB.js.map +1 -0
- package/dist/hooks.cjs +57 -12
- package/dist/hooks.cjs.map +1 -1
- package/dist/hooks.d.cts +1 -1
- package/dist/hooks.d.ts +1 -1
- package/dist/hooks.js +1 -1
- package/dist/index.cjs +57 -12
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +1 -1
- package/dist/{use-returns-FGAfGMpY.d.ts → use-returns-96kuAgjF.d.ts} +7 -0
- package/dist/{use-returns-BMcuyi9J.d.cts → use-returns-D9g9zYu1.d.cts} +7 -0
- package/package.json +3 -3
- package/dist/chunk-TJXNTSXN.js.map +0 -1
package/dist/hooks.d.cts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as AddressMutationsApi, C as CartMutationsApi, a as CheckoutApi, b as CompanySwitcherApi, c as CouponActionVars, d as CustomerSessionApi, P as PasswordResetApi, U as UseAvailabilitiesOptions, e as UseAvailabilityOptions, f as UseCancelOrderVars, g as UseMyOrdersInfiniteOptions, h as UseMyOrdersOptions, i as UseOrderOptions, j as UseOrderTransitionVars, k as UseReorderResult, l as UseReorderVars, m as UseUpdateSalesOrderVars, n as UseVariantChildrenOptions, u as useActiveCart, o as useAddToShoppingList, p as useAddressMutations, q as useAssignContact, r as useAvailabilities, s as useAvailability, t as useCancelOrder, v as useCart, w as useCartMutations, x as useCategories, y as useCategoriesInfinite, z as useCategory, B as useCategoryTree, D as useChangePassword, E as useCheckout, F as useCompany, G as useCompanyContacts, H as useCompanyGroups, I as useCompanyLocations, J as useCompanySwitcher, K as useCreateCart, L as useCreateCompany, M as useCreateLocation, N as useCreateReturn, O as useCreateShoppingList, Q as useCustomerAddresses, R as useCustomerSession, S as useDefaultSite, T as useDeleteCompany, V as useDeleteLocation, W as useDeleteShoppingList, X as useMatchPrices, Y as useMatchPricesChunked, Z as useMyCompanies, _ as useMyOrders, $ as useMyOrdersInfinite, a0 as useMyReturns, a1 as useMyRewardPoints, a2 as useMyRewardPointsSummary, a3 as useMySegmentCategories, a4 as useMySegmentCategoriesInfinite, a5 as useMySegmentCategoryTree, a6 as useMySegmentItems, a7 as useMySegmentProducts, a8 as useMySegmentProductsInfinite, a9 as useMySegments, aa as useOrder, ab as useOrderTransition, ac as usePasswordReset, ad as usePaymentModes, ae as useProduct, af as useProductByCode, ag as useProductMedia, ah as useProductSearch, ai as useProducts, aj as useProductsByCodes, ak as useProductsInCategory, al as useProductsInCategoryInfinite, am as useProductsInfinite, an as useRedeemCoupon, ao as useRedeemOptions, ap as useRedeemRewardPoints, aq as useRemoveFromShoppingList, ar as useReorder, as as useReturn, at as useSalesOrder, au as useSetShoppingListItemQuantity, av as useShoppingLists, aw as useSiteContext, ax as useSites, ay as useSubcategories, az as useUnassignContact, aA as useUpdateCompany, aB as useUpdateContactAssignment, aC as useUpdateCustomer, aD as useUpdateLocation, aE as useUpdateSalesOrder, aF as useValidateCoupon, aG as useVariantChildren } from './use-returns-
|
|
1
|
+
export { A as AddressMutationsApi, C as CartMutationsApi, a as CheckoutApi, b as CompanySwitcherApi, c as CouponActionVars, d as CustomerSessionApi, P as PasswordResetApi, U as UseAvailabilitiesOptions, e as UseAvailabilityOptions, f as UseCancelOrderVars, g as UseMyOrdersInfiniteOptions, h as UseMyOrdersOptions, i as UseOrderOptions, j as UseOrderTransitionVars, k as UseReorderResult, l as UseReorderVars, m as UseUpdateSalesOrderVars, n as UseVariantChildrenOptions, u as useActiveCart, o as useAddToShoppingList, p as useAddressMutations, q as useAssignContact, r as useAvailabilities, s as useAvailability, t as useCancelOrder, v as useCart, w as useCartMutations, x as useCategories, y as useCategoriesInfinite, z as useCategory, B as useCategoryTree, D as useChangePassword, E as useCheckout, F as useCompany, G as useCompanyContacts, H as useCompanyGroups, I as useCompanyLocations, J as useCompanySwitcher, K as useCreateCart, L as useCreateCompany, M as useCreateLocation, N as useCreateReturn, O as useCreateShoppingList, Q as useCustomerAddresses, R as useCustomerSession, S as useDefaultSite, T as useDeleteCompany, V as useDeleteLocation, W as useDeleteShoppingList, X as useMatchPrices, Y as useMatchPricesChunked, Z as useMyCompanies, _ as useMyOrders, $ as useMyOrdersInfinite, a0 as useMyReturns, a1 as useMyRewardPoints, a2 as useMyRewardPointsSummary, a3 as useMySegmentCategories, a4 as useMySegmentCategoriesInfinite, a5 as useMySegmentCategoryTree, a6 as useMySegmentItems, a7 as useMySegmentProducts, a8 as useMySegmentProductsInfinite, a9 as useMySegments, aa as useOrder, ab as useOrderTransition, ac as usePasswordReset, ad as usePaymentModes, ae as useProduct, af as useProductByCode, ag as useProductMedia, ah as useProductSearch, ai as useProducts, aj as useProductsByCodes, ak as useProductsInCategory, al as useProductsInCategoryInfinite, am as useProductsInfinite, an as useRedeemCoupon, ao as useRedeemOptions, ap as useRedeemRewardPoints, aq as useRemoveFromShoppingList, ar as useReorder, as as useReturn, at as useSalesOrder, au as useSetShoppingListItemQuantity, av as useShoppingLists, aw as useSiteContext, ax as useSites, ay as useSubcategories, az as useUnassignContact, aA as useUpdateCompany, aB as useUpdateContactAssignment, aC as useUpdateCustomer, aD as useUpdateLocation, aE as useUpdateSalesOrder, aF as useValidateCoupon, aG as useVariantChildren } from './use-returns-D9g9zYu1.cjs';
|
|
2
2
|
import { UseQueryResult, UseMutationResult } from '@tanstack/react-query';
|
|
3
3
|
import { ApprovalPatch, Approval, ApprovalList, ApprovalCreated, ApprovalInput } from '@viu/emporix-sdk';
|
|
4
4
|
import './provider-WHISqTG2.cjs';
|
package/dist/hooks.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { A as AddressMutationsApi, C as CartMutationsApi, a as CheckoutApi, b as CompanySwitcherApi, c as CouponActionVars, d as CustomerSessionApi, P as PasswordResetApi, U as UseAvailabilitiesOptions, e as UseAvailabilityOptions, f as UseCancelOrderVars, g as UseMyOrdersInfiniteOptions, h as UseMyOrdersOptions, i as UseOrderOptions, j as UseOrderTransitionVars, k as UseReorderResult, l as UseReorderVars, m as UseUpdateSalesOrderVars, n as UseVariantChildrenOptions, u as useActiveCart, o as useAddToShoppingList, p as useAddressMutations, q as useAssignContact, r as useAvailabilities, s as useAvailability, t as useCancelOrder, v as useCart, w as useCartMutations, x as useCategories, y as useCategoriesInfinite, z as useCategory, B as useCategoryTree, D as useChangePassword, E as useCheckout, F as useCompany, G as useCompanyContacts, H as useCompanyGroups, I as useCompanyLocations, J as useCompanySwitcher, K as useCreateCart, L as useCreateCompany, M as useCreateLocation, N as useCreateReturn, O as useCreateShoppingList, Q as useCustomerAddresses, R as useCustomerSession, S as useDefaultSite, T as useDeleteCompany, V as useDeleteLocation, W as useDeleteShoppingList, X as useMatchPrices, Y as useMatchPricesChunked, Z as useMyCompanies, _ as useMyOrders, $ as useMyOrdersInfinite, a0 as useMyReturns, a1 as useMyRewardPoints, a2 as useMyRewardPointsSummary, a3 as useMySegmentCategories, a4 as useMySegmentCategoriesInfinite, a5 as useMySegmentCategoryTree, a6 as useMySegmentItems, a7 as useMySegmentProducts, a8 as useMySegmentProductsInfinite, a9 as useMySegments, aa as useOrder, ab as useOrderTransition, ac as usePasswordReset, ad as usePaymentModes, ae as useProduct, af as useProductByCode, ag as useProductMedia, ah as useProductSearch, ai as useProducts, aj as useProductsByCodes, ak as useProductsInCategory, al as useProductsInCategoryInfinite, am as useProductsInfinite, an as useRedeemCoupon, ao as useRedeemOptions, ap as useRedeemRewardPoints, aq as useRemoveFromShoppingList, ar as useReorder, as as useReturn, at as useSalesOrder, au as useSetShoppingListItemQuantity, av as useShoppingLists, aw as useSiteContext, ax as useSites, ay as useSubcategories, az as useUnassignContact, aA as useUpdateCompany, aB as useUpdateContactAssignment, aC as useUpdateCustomer, aD as useUpdateLocation, aE as useUpdateSalesOrder, aF as useValidateCoupon, aG as useVariantChildren } from './use-returns-
|
|
1
|
+
export { A as AddressMutationsApi, C as CartMutationsApi, a as CheckoutApi, b as CompanySwitcherApi, c as CouponActionVars, d as CustomerSessionApi, P as PasswordResetApi, U as UseAvailabilitiesOptions, e as UseAvailabilityOptions, f as UseCancelOrderVars, g as UseMyOrdersInfiniteOptions, h as UseMyOrdersOptions, i as UseOrderOptions, j as UseOrderTransitionVars, k as UseReorderResult, l as UseReorderVars, m as UseUpdateSalesOrderVars, n as UseVariantChildrenOptions, u as useActiveCart, o as useAddToShoppingList, p as useAddressMutations, q as useAssignContact, r as useAvailabilities, s as useAvailability, t as useCancelOrder, v as useCart, w as useCartMutations, x as useCategories, y as useCategoriesInfinite, z as useCategory, B as useCategoryTree, D as useChangePassword, E as useCheckout, F as useCompany, G as useCompanyContacts, H as useCompanyGroups, I as useCompanyLocations, J as useCompanySwitcher, K as useCreateCart, L as useCreateCompany, M as useCreateLocation, N as useCreateReturn, O as useCreateShoppingList, Q as useCustomerAddresses, R as useCustomerSession, S as useDefaultSite, T as useDeleteCompany, V as useDeleteLocation, W as useDeleteShoppingList, X as useMatchPrices, Y as useMatchPricesChunked, Z as useMyCompanies, _ as useMyOrders, $ as useMyOrdersInfinite, a0 as useMyReturns, a1 as useMyRewardPoints, a2 as useMyRewardPointsSummary, a3 as useMySegmentCategories, a4 as useMySegmentCategoriesInfinite, a5 as useMySegmentCategoryTree, a6 as useMySegmentItems, a7 as useMySegmentProducts, a8 as useMySegmentProductsInfinite, a9 as useMySegments, aa as useOrder, ab as useOrderTransition, ac as usePasswordReset, ad as usePaymentModes, ae as useProduct, af as useProductByCode, ag as useProductMedia, ah as useProductSearch, ai as useProducts, aj as useProductsByCodes, ak as useProductsInCategory, al as useProductsInCategoryInfinite, am as useProductsInfinite, an as useRedeemCoupon, ao as useRedeemOptions, ap as useRedeemRewardPoints, aq as useRemoveFromShoppingList, ar as useReorder, as as useReturn, at as useSalesOrder, au as useSetShoppingListItemQuantity, av as useShoppingLists, aw as useSiteContext, ax as useSites, ay as useSubcategories, az as useUnassignContact, aA as useUpdateCompany, aB as useUpdateContactAssignment, aC as useUpdateCustomer, aD as useUpdateLocation, aE as useUpdateSalesOrder, aF as useValidateCoupon, aG as useVariantChildren } from './use-returns-96kuAgjF.js';
|
|
2
2
|
import { UseQueryResult, UseMutationResult } from '@tanstack/react-query';
|
|
3
3
|
import { ApprovalPatch, Approval, ApprovalList, ApprovalCreated, ApprovalInput } from '@viu/emporix-sdk';
|
|
4
4
|
import './provider-CLNEKOuu.js';
|
package/dist/hooks.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { useActiveCart, useAddToShoppingList, useAddressMutations, useApproval, useApprovals, useAssignContact, useAvailabilities, useAvailability, useCancelOrder, useCart, useCartMutations, useCategories, useCategoriesInfinite, useCategory, useCategoryTree, useChangePassword, useCheckout, useCompany, useCompanyContacts, useCompanyGroups, useCompanyLocations, useCompanySwitcher, useCreateApproval, useCreateCart, useCreateCompany, useCreateLocation, useCreateReturn, useCreateShoppingList, useCustomerAddresses, useCustomerSession, useDefaultSite, useDeleteCompany, useDeleteLocation, useDeleteShoppingList, useMatchPrices, useMatchPricesChunked, useMyCompanies, useMyOrders, useMyOrdersInfinite, useMyReturns, useMyRewardPoints, useMyRewardPointsSummary, useMySegmentCategories, useMySegmentCategoriesInfinite, useMySegmentCategoryTree, useMySegmentItems, useMySegmentProducts, useMySegmentProductsInfinite, useMySegments, useOrder, useOrderTransition, usePasswordReset, usePaymentModes, useProduct, useProductByCode, useProductMedia, useProductSearch, useProducts, useProductsByCodes, useProductsInCategory, useProductsInCategoryInfinite, useProductsInfinite, useRedeemCoupon, useRedeemOptions, useRedeemRewardPoints, useRemoveFromShoppingList, useReorder, useReturn, useSalesOrder, useSetShoppingListItemQuantity, useShoppingLists, useSiteContext, useSites, useSubcategories, useUnassignContact, useUpdateApproval, useUpdateCompany, useUpdateContactAssignment, useUpdateCustomer, useUpdateLocation, useUpdateSalesOrder, useValidateCoupon, useVariantChildren } from './chunk-
|
|
1
|
+
export { useActiveCart, useAddToShoppingList, useAddressMutations, useApproval, useApprovals, useAssignContact, useAvailabilities, useAvailability, useCancelOrder, useCart, useCartMutations, useCategories, useCategoriesInfinite, useCategory, useCategoryTree, useChangePassword, useCheckout, useCompany, useCompanyContacts, useCompanyGroups, useCompanyLocations, useCompanySwitcher, useCreateApproval, useCreateCart, useCreateCompany, useCreateLocation, useCreateReturn, useCreateShoppingList, useCustomerAddresses, useCustomerSession, useDefaultSite, useDeleteCompany, useDeleteLocation, useDeleteShoppingList, useMatchPrices, useMatchPricesChunked, useMyCompanies, useMyOrders, useMyOrdersInfinite, useMyReturns, useMyRewardPoints, useMyRewardPointsSummary, useMySegmentCategories, useMySegmentCategoriesInfinite, useMySegmentCategoryTree, useMySegmentItems, useMySegmentProducts, useMySegmentProductsInfinite, useMySegments, useOrder, useOrderTransition, usePasswordReset, usePaymentModes, useProduct, useProductByCode, useProductMedia, useProductSearch, useProducts, useProductsByCodes, useProductsInCategory, useProductsInCategoryInfinite, useProductsInfinite, useRedeemCoupon, useRedeemOptions, useRedeemRewardPoints, useRemoveFromShoppingList, useReorder, useReturn, useSalesOrder, useSetShoppingListItemQuantity, useShoppingLists, useSiteContext, useSites, useSubcategories, useUnassignContact, useUpdateApproval, useUpdateCompany, useUpdateContactAssignment, useUpdateCustomer, useUpdateLocation, useUpdateSalesOrder, useValidateCoupon, useVariantChildren } from './chunk-GRGWUXNB.js';
|
|
2
2
|
import './chunk-SDRV73LG.js';
|
|
3
3
|
import './chunk-FBQY2N7S.js';
|
|
4
4
|
//# sourceMappingURL=hooks.js.map
|
package/dist/index.cjs
CHANGED
|
@@ -674,6 +674,36 @@ async function bootstrapCart(opts) {
|
|
|
674
674
|
});
|
|
675
675
|
}
|
|
676
676
|
|
|
677
|
+
// src/hooks/internal/customer-session-store.ts
|
|
678
|
+
var stores = /* @__PURE__ */ new WeakMap();
|
|
679
|
+
function getCustomerSessionStore(storage) {
|
|
680
|
+
const existing = stores.get(storage);
|
|
681
|
+
if (existing) return existing;
|
|
682
|
+
let state = {
|
|
683
|
+
token: storage.getCustomerToken(),
|
|
684
|
+
refreshToken: null,
|
|
685
|
+
saasToken: null
|
|
686
|
+
};
|
|
687
|
+
const listeners = /* @__PURE__ */ new Set();
|
|
688
|
+
const store = {
|
|
689
|
+
getSnapshot: () => state,
|
|
690
|
+
setState: (next) => {
|
|
691
|
+
const resolved = typeof next === "function" ? next(state) : next;
|
|
692
|
+
if (resolved === state) return;
|
|
693
|
+
state = resolved;
|
|
694
|
+
for (const listener of listeners) listener();
|
|
695
|
+
},
|
|
696
|
+
subscribe: (listener) => {
|
|
697
|
+
listeners.add(listener);
|
|
698
|
+
return () => {
|
|
699
|
+
listeners.delete(listener);
|
|
700
|
+
};
|
|
701
|
+
}
|
|
702
|
+
};
|
|
703
|
+
stores.set(storage, store);
|
|
704
|
+
return store;
|
|
705
|
+
}
|
|
706
|
+
|
|
677
707
|
// src/hooks/use-customer-session.ts
|
|
678
708
|
var EMPTY_SESSION = {
|
|
679
709
|
token: null,
|
|
@@ -684,14 +714,12 @@ function useCustomerSession() {
|
|
|
684
714
|
const { client, storage } = useEmporix();
|
|
685
715
|
const qc = reactQuery.useQueryClient();
|
|
686
716
|
const siteCtx = react.useContext(EmporixSiteContext);
|
|
687
|
-
const
|
|
688
|
-
|
|
689
|
-
|
|
690
|
-
saasToken: null
|
|
691
|
-
}));
|
|
717
|
+
const store = react.useMemo(() => getCustomerSessionStore(storage), [storage]);
|
|
718
|
+
const session = react.useSyncExternalStore(store.subscribe, store.getSnapshot, store.getSnapshot);
|
|
719
|
+
const setSession = store.setState;
|
|
692
720
|
react.useEffect(() => {
|
|
693
721
|
return storage.subscribe?.((t) => setSession((s) => ({ ...s, token: t })));
|
|
694
|
-
}, [storage]);
|
|
722
|
+
}, [storage, setSession]);
|
|
695
723
|
const meQuery = reactQuery.useQuery({
|
|
696
724
|
queryKey: ["emporix", "customer", "me", { tenant: client.tenant, hasToken: session.token !== null }],
|
|
697
725
|
enabled: session.token !== null,
|
|
@@ -725,7 +753,7 @@ function useCustomerSession() {
|
|
|
725
753
|
await qc.invalidateQueries({ queryKey: ["emporix", "customer"], refetchType: "none" });
|
|
726
754
|
await qc.invalidateQueries({ queryKey: ["emporix", "cart"], refetchType: "none" });
|
|
727
755
|
},
|
|
728
|
-
[client, storage, qc, siteCtx]
|
|
756
|
+
[client, storage, qc, siteCtx, setSession]
|
|
729
757
|
);
|
|
730
758
|
const signup = react.useCallback(
|
|
731
759
|
async (input) => {
|
|
@@ -757,7 +785,7 @@ function useCustomerSession() {
|
|
|
757
785
|
await qc.invalidateQueries({ queryKey: ["emporix", "customer"], refetchType: "none" });
|
|
758
786
|
await qc.invalidateQueries({ queryKey: ["emporix", "cart"], refetchType: "none" });
|
|
759
787
|
},
|
|
760
|
-
[client, storage, qc, siteCtx]
|
|
788
|
+
[client, storage, qc, siteCtx, setSession]
|
|
761
789
|
);
|
|
762
790
|
const socialLogin = react.useCallback(
|
|
763
791
|
async (input) => {
|
|
@@ -781,10 +809,11 @@ function useCustomerSession() {
|
|
|
781
809
|
storage.setCustomerToken(null);
|
|
782
810
|
storage.setRefreshToken(null);
|
|
783
811
|
storage.setActiveLegalEntityId(null);
|
|
812
|
+
storage.setCartId(null);
|
|
784
813
|
setSession(EMPTY_SESSION);
|
|
785
814
|
qc.removeQueries({ queryKey: ["emporix", "customer"] });
|
|
786
815
|
qc.removeQueries({ queryKey: ["emporix", "cart"] });
|
|
787
|
-
}, [client, session.token, storage, qc]);
|
|
816
|
+
}, [client, session.token, storage, qc, setSession]);
|
|
788
817
|
const refresh = react.useCallback(async () => {
|
|
789
818
|
await meQuery.refetch();
|
|
790
819
|
}, [meQuery]);
|
|
@@ -803,10 +832,11 @@ function useCustomerSession() {
|
|
|
803
832
|
}));
|
|
804
833
|
await qc.invalidateQueries({ queryKey: ["emporix", "customer"] });
|
|
805
834
|
await qc.invalidateQueries({ queryKey: ["emporix", "cart"] });
|
|
806
|
-
}, [client, storage, qc, session.refreshToken, session.saasToken]);
|
|
835
|
+
}, [client, storage, qc, session.refreshToken, session.saasToken, setSession]);
|
|
807
836
|
return {
|
|
808
837
|
customerToken: session.token,
|
|
809
838
|
refreshToken: session.refreshToken,
|
|
839
|
+
saasToken: session.saasToken,
|
|
810
840
|
customer: meQuery.data ?? null,
|
|
811
841
|
isAuthenticated: session.token !== null,
|
|
812
842
|
isLoading: meQuery.isLoading && session.token !== null,
|
|
@@ -1191,7 +1221,12 @@ function useCartMutations(cartId) {
|
|
|
1191
1221
|
if (c) qc.setQueryData(c.key, c.previous);
|
|
1192
1222
|
},
|
|
1193
1223
|
onSuccess: (cart, _v, c) => {
|
|
1194
|
-
if (c)
|
|
1224
|
+
if (!c) return;
|
|
1225
|
+
if (cart && Array.isArray(cart.items)) {
|
|
1226
|
+
qc.setQueryData(c.key, cart);
|
|
1227
|
+
} else {
|
|
1228
|
+
void qc.invalidateQueries({ queryKey: c.key });
|
|
1229
|
+
}
|
|
1195
1230
|
}
|
|
1196
1231
|
});
|
|
1197
1232
|
}
|
|
@@ -1210,7 +1245,9 @@ function useCartMutations(cartId) {
|
|
|
1210
1245
|
]
|
|
1211
1246
|
} : prev
|
|
1212
1247
|
),
|
|
1213
|
-
updateItem: make(
|
|
1248
|
+
updateItem: make(
|
|
1249
|
+
(id, v) => client.carts.updateItem(id, v.itemId, v.patch, ctx, v.partial ? { partial: true } : {})
|
|
1250
|
+
),
|
|
1214
1251
|
removeItem: make(
|
|
1215
1252
|
(id, v) => client.carts.removeItem(id, v.itemId, ctx),
|
|
1216
1253
|
(prev, v) => prev ? { ...prev, items: (prev.items ?? []).filter((i) => i.id !== v.itemId) } : prev
|
|
@@ -1245,6 +1282,14 @@ function useActiveCart(opts) {
|
|
|
1245
1282
|
const { activeCompany } = useActiveCompany();
|
|
1246
1283
|
const [cartId, setCartId] = react.useState(() => storage.getCartId());
|
|
1247
1284
|
const effectiveLegalEntityId = opts?.legalEntityId ?? activeCompany?.id;
|
|
1285
|
+
react.useEffect(() => {
|
|
1286
|
+
if (!storage.subscribeAll) return;
|
|
1287
|
+
return storage.subscribeAll((key) => {
|
|
1288
|
+
if (key !== "cartId") return;
|
|
1289
|
+
const next = storage.getCartId();
|
|
1290
|
+
setCartId((prev) => prev === next ? prev : next);
|
|
1291
|
+
});
|
|
1292
|
+
}, [storage]);
|
|
1248
1293
|
react.useEffect(() => {
|
|
1249
1294
|
if (cartId !== null) return;
|
|
1250
1295
|
if (!opts?.create) return;
|