@viu/emporix-sdk-react 2.7.0 → 2.9.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 +115 -0
- package/dist/{chunk-TJXNTSXN.js → chunk-3W3TIKRV.js} +108 -22
- package/dist/chunk-3W3TIKRV.js.map +1 -0
- package/dist/{chunk-SDRV73LG.js → chunk-JZRSYM3W.js} +3 -3
- package/dist/chunk-JZRSYM3W.js.map +1 -0
- package/dist/hooks.cjs +106 -17
- 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 +2 -2
- package/dist/index.cjs +107 -18
- 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 +2 -2
- package/dist/provider.cjs +1 -1
- package/dist/provider.cjs.map +1 -1
- package/dist/provider.js +1 -1
- package/dist/{use-returns-BMcuyi9J.d.cts → use-returns-D-P399mP.d.cts} +27 -5
- package/dist/{use-returns-FGAfGMpY.d.ts → use-returns-cBvLR-tm.d.ts} +27 -5
- package/package.json +3 -3
- package/dist/chunk-SDRV73LG.js.map +0 -1
- 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
|
|
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 useAddGroupMember, p as useAddToShoppingList, q as useAddressMutations, r as useAssignContact, s as useAvailabilities, t as useAvailability, v as useCancelOrder, w as useCart, x as useCartMutations, y as useCategories, z as useCategoriesInfinite, B as useCategory, D as useCategoryTree, E as useChangePassword, F as useCheckout, G as useCompany, H as useCompanyContacts, I as useCompanyGroups, J as useCompanyLocations, K as useCompanySwitcher, L as useCreateCart, M as useCreateCompany, N as useCreateLocation, O as useCreateReturn, Q as useCreateShoppingList, R as useCustomerAddresses, S as useCustomerSession, T as useDefaultSite, V as useDeleteCompany, W as useDeleteLocation, X as useDeleteShoppingList, Y as useMatchPrices, Z as useMatchPricesChunked, _ as useMyCompanies, $ as useMyOrders, a0 as useMyOrdersInfinite, a1 as useMyReturns, a2 as useMyRewardPoints, a3 as useMyRewardPointsSummary, a4 as useMySegmentCategories, a5 as useMySegmentCategoriesInfinite, a6 as useMySegmentCategoryTree, a7 as useMySegmentItems, a8 as useMySegmentProducts, a9 as useMySegmentProductsInfinite, aa as useMySegments, ab as useOrder, ac as useOrderTransition, ad as usePasswordReset, ae as usePaymentModes, af as useProduct, ag as useProductByCode, ah as useProductMedia, ai as useProductNameSearch, aj as useProductSearch, ak as useProducts, al as useProductsByCodes, am as useProductsInCategory, an as useProductsInCategoryInfinite, ao as useProductsInfinite, ap as useRedeemCoupon, aq as useRedeemOptions, ar as useRedeemRewardPoints, as as useRemoveFromShoppingList, at as useRemoveGroupMember, au as useReorder, av as useReturn, aw as useSalesOrder, ax as useSetShoppingListItemQuantity, ay as useShoppingLists, az as useSiteContext, aA as useSites, aB as useSubcategories, aC as useUnassignContact, aD as useUpdateCompany, aE as useUpdateContactAssignment, aF as useUpdateCustomer, aG as useUpdateLocation, aH as useUpdateSalesOrder, aI as useValidateCoupon, aJ as useVariantChildren } from './use-returns-D-P399mP.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
|
|
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 useAddGroupMember, p as useAddToShoppingList, q as useAddressMutations, r as useAssignContact, s as useAvailabilities, t as useAvailability, v as useCancelOrder, w as useCart, x as useCartMutations, y as useCategories, z as useCategoriesInfinite, B as useCategory, D as useCategoryTree, E as useChangePassword, F as useCheckout, G as useCompany, H as useCompanyContacts, I as useCompanyGroups, J as useCompanyLocations, K as useCompanySwitcher, L as useCreateCart, M as useCreateCompany, N as useCreateLocation, O as useCreateReturn, Q as useCreateShoppingList, R as useCustomerAddresses, S as useCustomerSession, T as useDefaultSite, V as useDeleteCompany, W as useDeleteLocation, X as useDeleteShoppingList, Y as useMatchPrices, Z as useMatchPricesChunked, _ as useMyCompanies, $ as useMyOrders, a0 as useMyOrdersInfinite, a1 as useMyReturns, a2 as useMyRewardPoints, a3 as useMyRewardPointsSummary, a4 as useMySegmentCategories, a5 as useMySegmentCategoriesInfinite, a6 as useMySegmentCategoryTree, a7 as useMySegmentItems, a8 as useMySegmentProducts, a9 as useMySegmentProductsInfinite, aa as useMySegments, ab as useOrder, ac as useOrderTransition, ad as usePasswordReset, ae as usePaymentModes, af as useProduct, ag as useProductByCode, ah as useProductMedia, ai as useProductNameSearch, aj as useProductSearch, ak as useProducts, al as useProductsByCodes, am as useProductsInCategory, an as useProductsInCategoryInfinite, ao as useProductsInfinite, ap as useRedeemCoupon, aq as useRedeemOptions, ar as useRedeemRewardPoints, as as useRemoveFromShoppingList, at as useRemoveGroupMember, au as useReorder, av as useReturn, aw as useSalesOrder, ax as useSetShoppingListItemQuantity, ay as useShoppingLists, az as useSiteContext, aA as useSites, aB as useSubcategories, aC as useUnassignContact, aD as useUpdateCompany, aE as useUpdateContactAssignment, aF as useUpdateCustomer, aG as useUpdateLocation, aH as useUpdateSalesOrder, aI as useValidateCoupon, aJ as useVariantChildren } from './use-returns-cBvLR-tm.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,5 +1,5 @@
|
|
|
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-
|
|
2
|
-
import './chunk-
|
|
1
|
+
export { useActiveCart, useAddGroupMember, 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, useProductNameSearch, useProductSearch, useProducts, useProductsByCodes, useProductsInCategory, useProductsInCategoryInfinite, useProductsInfinite, useRedeemCoupon, useRedeemOptions, useRedeemRewardPoints, useRemoveFromShoppingList, useRemoveGroupMember, useReorder, useReturn, useSalesOrder, useSetShoppingListItemQuantity, useShoppingLists, useSiteContext, useSites, useSubcategories, useUnassignContact, useUpdateApproval, useUpdateCompany, useUpdateContactAssignment, useUpdateCustomer, useUpdateLocation, useUpdateSalesOrder, useValidateCoupon, useVariantChildren } from './chunk-3W3TIKRV.js';
|
|
2
|
+
import './chunk-JZRSYM3W.js';
|
|
3
3
|
import './chunk-FBQY2N7S.js';
|
|
4
4
|
//# sourceMappingURL=hooks.js.map
|
|
5
5
|
//# sourceMappingURL=hooks.js.map
|
package/dist/index.cjs
CHANGED
|
@@ -304,7 +304,7 @@ function CompanyContextProvider({
|
|
|
304
304
|
if (matched) {
|
|
305
305
|
setActive(matched);
|
|
306
306
|
if (storage.getActiveLegalEntityId() !== matched.id) {
|
|
307
|
-
storage.setActiveLegalEntityId(matched.id);
|
|
307
|
+
storage.setActiveLegalEntityId(matched.id ?? null);
|
|
308
308
|
}
|
|
309
309
|
} else if (companies.length === 1) {
|
|
310
310
|
await switchTo(companies[0] ?? null);
|
|
@@ -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,
|
|
@@ -963,6 +993,17 @@ function useProductSearch(query, params = {}, options = {}) {
|
|
|
963
993
|
staleTime: PRODUCTS_STALE_TIME
|
|
964
994
|
});
|
|
965
995
|
}
|
|
996
|
+
function useProductNameSearch(term, params = {}, options = {}) {
|
|
997
|
+
const { client } = useEmporix();
|
|
998
|
+
const { ctx } = useReadAuth(options.auth);
|
|
999
|
+
const { siteCode } = useReadSite();
|
|
1000
|
+
return reactQuery.useQuery({
|
|
1001
|
+
queryKey: emporixKey("product-name-search", [term, params], { tenant: client.tenant, authKind: ctx.kind, siteCode }),
|
|
1002
|
+
enabled: typeof term === "string" && term.trim() !== "",
|
|
1003
|
+
queryFn: () => client.products.searchByName(term, params, ctx),
|
|
1004
|
+
staleTime: PRODUCTS_STALE_TIME
|
|
1005
|
+
});
|
|
1006
|
+
}
|
|
966
1007
|
function useProductsByCodes(codes, options = {}) {
|
|
967
1008
|
const { client } = useEmporix();
|
|
968
1009
|
const { ctx } = useReadAuth(options.auth);
|
|
@@ -1191,7 +1232,12 @@ function useCartMutations(cartId) {
|
|
|
1191
1232
|
if (c) qc.setQueryData(c.key, c.previous);
|
|
1192
1233
|
},
|
|
1193
1234
|
onSuccess: (cart, _v, c) => {
|
|
1194
|
-
if (c)
|
|
1235
|
+
if (!c) return;
|
|
1236
|
+
if (cart && Array.isArray(cart.items)) {
|
|
1237
|
+
qc.setQueryData(c.key, cart);
|
|
1238
|
+
} else {
|
|
1239
|
+
void qc.invalidateQueries({ queryKey: c.key });
|
|
1240
|
+
}
|
|
1195
1241
|
}
|
|
1196
1242
|
});
|
|
1197
1243
|
}
|
|
@@ -1210,7 +1256,9 @@ function useCartMutations(cartId) {
|
|
|
1210
1256
|
]
|
|
1211
1257
|
} : prev
|
|
1212
1258
|
),
|
|
1213
|
-
updateItem: make(
|
|
1259
|
+
updateItem: make(
|
|
1260
|
+
(id, v) => client.carts.updateItem(id, v.itemId, v.patch, ctx, v.partial ? { partial: true } : {})
|
|
1261
|
+
),
|
|
1214
1262
|
removeItem: make(
|
|
1215
1263
|
(id, v) => client.carts.removeItem(id, v.itemId, ctx),
|
|
1216
1264
|
(prev, v) => prev ? { ...prev, items: (prev.items ?? []).filter((i) => i.id !== v.itemId) } : prev
|
|
@@ -1245,6 +1293,14 @@ function useActiveCart(opts) {
|
|
|
1245
1293
|
const { activeCompany } = useActiveCompany();
|
|
1246
1294
|
const [cartId, setCartId] = react.useState(() => storage.getCartId());
|
|
1247
1295
|
const effectiveLegalEntityId = opts?.legalEntityId ?? activeCompany?.id;
|
|
1296
|
+
react.useEffect(() => {
|
|
1297
|
+
if (!storage.subscribeAll) return;
|
|
1298
|
+
return storage.subscribeAll((key) => {
|
|
1299
|
+
if (key !== "cartId") return;
|
|
1300
|
+
const next = storage.getCartId();
|
|
1301
|
+
setCartId((prev) => prev === next ? prev : next);
|
|
1302
|
+
});
|
|
1303
|
+
}, [storage]);
|
|
1248
1304
|
react.useEffect(() => {
|
|
1249
1305
|
if (cartId !== null) return;
|
|
1250
1306
|
if (!opts?.create) return;
|
|
@@ -1711,6 +1767,24 @@ function useDeleteLocation() {
|
|
|
1711
1767
|
onSuccess: () => qc.invalidateQueries({ predicate: (q) => q.queryKey.includes("locations") })
|
|
1712
1768
|
});
|
|
1713
1769
|
}
|
|
1770
|
+
function useAddGroupMember() {
|
|
1771
|
+
const { client } = useEmporix();
|
|
1772
|
+
const resolveAuth = useCustomerAuthResolver();
|
|
1773
|
+
const qc = reactQuery.useQueryClient();
|
|
1774
|
+
return reactQuery.useMutation({
|
|
1775
|
+
mutationFn: ({ groupId, member }) => client.customerGroups.addMember(groupId, member, resolveAuth()),
|
|
1776
|
+
onSuccess: () => qc.invalidateQueries({ predicate: (q) => q.queryKey.includes("groups") })
|
|
1777
|
+
});
|
|
1778
|
+
}
|
|
1779
|
+
function useRemoveGroupMember() {
|
|
1780
|
+
const { client } = useEmporix();
|
|
1781
|
+
const resolveAuth = useCustomerAuthResolver();
|
|
1782
|
+
const qc = reactQuery.useQueryClient();
|
|
1783
|
+
return reactQuery.useMutation({
|
|
1784
|
+
mutationFn: ({ groupId, userId }) => client.customerGroups.removeMember(groupId, userId, resolveAuth()),
|
|
1785
|
+
onSuccess: () => qc.invalidateQueries({ predicate: (q) => q.queryKey.includes("groups") })
|
|
1786
|
+
});
|
|
1787
|
+
}
|
|
1714
1788
|
function useCompanySwitcher() {
|
|
1715
1789
|
const ctx = useActiveCompany();
|
|
1716
1790
|
const switchFn = react.useCallback(
|
|
@@ -1846,11 +1920,23 @@ function useReorder() {
|
|
|
1846
1920
|
});
|
|
1847
1921
|
const cartId = storage.getCartId();
|
|
1848
1922
|
if (!cartId) throw new Error("useReorder: no active cart id in storage");
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1853
|
-
|
|
1923
|
+
const batchBody = (order.entries ?? []).map((entry) => {
|
|
1924
|
+
const p = entry.price;
|
|
1925
|
+
if (!entry.itemYrn || !p?.priceId || p.originalAmount === void 0 || p.effectiveAmount === void 0 || !p.currency) {
|
|
1926
|
+
return null;
|
|
1927
|
+
}
|
|
1928
|
+
return {
|
|
1929
|
+
itemYrn: entry.itemYrn,
|
|
1930
|
+
quantity: entry.orderedAmount ?? entry.amount,
|
|
1931
|
+
price: {
|
|
1932
|
+
priceId: p.priceId,
|
|
1933
|
+
originalAmount: p.originalAmount,
|
|
1934
|
+
effectiveAmount: p.effectiveAmount,
|
|
1935
|
+
currency: p.currency
|
|
1936
|
+
}
|
|
1937
|
+
};
|
|
1938
|
+
}).filter((x) => x !== null);
|
|
1939
|
+
if (batchBody.length === 0) return { added: 0, errors: [] };
|
|
1854
1940
|
const res = await client.carts.addItemsBatch(cartId, batchBody, ctx);
|
|
1855
1941
|
let added = 0;
|
|
1856
1942
|
const errors = [];
|
|
@@ -2085,6 +2171,7 @@ exports.prefetchOrder = prefetchOrder;
|
|
|
2085
2171
|
exports.prefetchProduct = prefetchProduct;
|
|
2086
2172
|
exports.useActiveCart = useActiveCart;
|
|
2087
2173
|
exports.useActiveCompany = useActiveCompany;
|
|
2174
|
+
exports.useAddGroupMember = useAddGroupMember;
|
|
2088
2175
|
exports.useAddToShoppingList = useAddToShoppingList;
|
|
2089
2176
|
exports.useAddressMutations = useAddressMutations;
|
|
2090
2177
|
exports.useAssignContact = useAssignContact;
|
|
@@ -2140,6 +2227,7 @@ exports.usePaymentModes = usePaymentModes;
|
|
|
2140
2227
|
exports.useProduct = useProduct;
|
|
2141
2228
|
exports.useProductByCode = useProductByCode;
|
|
2142
2229
|
exports.useProductMedia = useProductMedia;
|
|
2230
|
+
exports.useProductNameSearch = useProductNameSearch;
|
|
2143
2231
|
exports.useProductSearch = useProductSearch;
|
|
2144
2232
|
exports.useProducts = useProducts;
|
|
2145
2233
|
exports.useProductsByCodes = useProductsByCodes;
|
|
@@ -2150,6 +2238,7 @@ exports.useRedeemCoupon = useRedeemCoupon;
|
|
|
2150
2238
|
exports.useRedeemOptions = useRedeemOptions;
|
|
2151
2239
|
exports.useRedeemRewardPoints = useRedeemRewardPoints;
|
|
2152
2240
|
exports.useRemoveFromShoppingList = useRemoveFromShoppingList;
|
|
2241
|
+
exports.useRemoveGroupMember = useRemoveGroupMember;
|
|
2153
2242
|
exports.useReorder = useReorder;
|
|
2154
2243
|
exports.useReturn = useReturn;
|
|
2155
2244
|
exports.useSalesOrder = useSalesOrder;
|