@sentecacommerce-theme/lib 0.12.57 → 0.12.61
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/dist/cjs/api/myCartApi/index.js +2 -1
- package/dist/cjs/api/myCartApi/index.js.map +1 -1
- package/dist/cjs/basket/api/index.js +12 -0
- package/dist/cjs/basket/api/index.js.map +1 -0
- package/dist/cjs/basket/api/mutations/index.js +12 -0
- package/dist/cjs/basket/api/mutations/index.js.map +1 -0
- package/dist/cjs/basket/api/mutations/useReplaceBasketMutation.js +42 -0
- package/dist/cjs/basket/api/mutations/useReplaceBasketMutation.js.map +1 -0
- package/dist/cjs/basket/hooks/index.js +20 -0
- package/dist/cjs/basket/hooks/index.js.map +1 -0
- package/dist/cjs/basket/hooks/useBasketCrossSaleItems.js +57 -0
- package/dist/cjs/basket/hooks/useBasketCrossSaleItems.js.map +1 -0
- package/dist/cjs/basket/hooks/useReplaceBasket.js +8 -0
- package/dist/cjs/basket/hooks/useReplaceBasket.js.map +1 -0
- package/dist/cjs/basket/index.js +12 -0
- package/dist/cjs/basket/index.js.map +1 -0
- package/dist/cjs/index.js +132 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/listing/api/queries/useAggregateQuery.js +15 -5
- package/dist/cjs/listing/api/queries/useAggregateQuery.js.map +1 -1
- package/dist/cjs/listing/hooks/useListingConfig.js +1 -1
- package/dist/cjs/listing/hooks/useListingConfig.js.map +1 -1
- package/dist/cjs/listing/hooks/useListingFilters.js +3 -2
- package/dist/cjs/listing/hooks/useListingFilters.js.map +1 -1
- package/dist/cjs/listing/types.js +9 -1
- package/dist/cjs/listing/types.js.map +1 -1
- package/dist/cjs/listing/utils/buildCategoryQuery.js +10 -4
- package/dist/cjs/listing/utils/buildCategoryQuery.js.map +1 -1
- package/dist/cjs/user/api/utils/getUserToken.js +19 -0
- package/dist/cjs/user/api/utils/getUserToken.js.map +1 -0
- package/dist/cjs/user/api/utils/index.js +8 -0
- package/dist/cjs/user/api/utils/index.js.map +1 -1
- package/dist/cjs/user/hooks/index.js +8 -0
- package/dist/cjs/user/hooks/index.js.map +1 -1
- package/dist/cjs/user/hooks/useGetUserToken.js +13 -0
- package/dist/cjs/user/hooks/useGetUserToken.js.map +1 -0
- package/dist/esm/api/myCartApi/index.js +2 -1
- package/dist/esm/api/myCartApi/index.js.map +1 -1
- package/dist/esm/basket/api/index.js +2 -0
- package/dist/esm/basket/api/index.js.map +1 -0
- package/dist/esm/basket/api/mutations/index.js +2 -0
- package/dist/esm/basket/api/mutations/index.js.map +1 -0
- package/dist/esm/basket/api/mutations/useReplaceBasketMutation.js +17 -0
- package/dist/esm/basket/api/mutations/useReplaceBasketMutation.js.map +1 -0
- package/dist/esm/basket/hooks/index.js +3 -0
- package/dist/esm/basket/hooks/index.js.map +1 -0
- package/dist/esm/basket/hooks/useBasketCrossSaleItems.js +25 -0
- package/dist/esm/basket/hooks/useBasketCrossSaleItems.js.map +1 -0
- package/dist/esm/basket/hooks/useReplaceBasket.js +3 -0
- package/dist/esm/basket/hooks/useReplaceBasket.js.map +1 -0
- package/dist/esm/basket/index.js +2 -0
- package/dist/esm/basket/index.js.map +1 -0
- package/dist/esm/index.js +5 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/listing/api/queries/useAggregateQuery.js +11 -2
- package/dist/esm/listing/api/queries/useAggregateQuery.js.map +1 -1
- package/dist/esm/listing/hooks/useListingConfig.js +1 -1
- package/dist/esm/listing/hooks/useListingConfig.js.map +1 -1
- package/dist/esm/listing/hooks/useListingFilters.js +3 -2
- package/dist/esm/listing/hooks/useListingFilters.js.map +1 -1
- package/dist/esm/listing/types.js +7 -0
- package/dist/esm/listing/types.js.map +1 -1
- package/dist/esm/listing/utils/buildCategoryQuery.js +10 -4
- package/dist/esm/listing/utils/buildCategoryQuery.js.map +1 -1
- package/dist/esm/user/api/utils/getUserToken.js +8 -0
- package/dist/esm/user/api/utils/getUserToken.js.map +1 -0
- package/dist/esm/user/api/utils/index.js +1 -0
- package/dist/esm/user/api/utils/index.js.map +1 -1
- package/dist/esm/user/hooks/index.js +1 -0
- package/dist/esm/user/hooks/index.js.map +1 -1
- package/dist/esm/user/hooks/useGetUserToken.js +3 -0
- package/dist/esm/user/hooks/useGetUserToken.js.map +1 -0
- package/dist/types/api/myCartApi/index.d.ts +1 -0
- package/dist/types/basket/api/index.d.ts +1 -0
- package/dist/types/basket/api/mutations/index.d.ts +1 -0
- package/dist/types/basket/api/mutations/useReplaceBasketMutation.d.ts +2 -0
- package/dist/types/basket/hooks/index.d.ts +2 -0
- package/dist/types/basket/hooks/useBasketCrossSaleItems.d.ts +9 -0
- package/dist/types/basket/hooks/useReplaceBasket.d.ts +2 -0
- package/dist/types/basket/index.d.ts +1 -0
- package/dist/types/index.d.ts +3 -0
- package/dist/types/listing/api/queries/useAggregateQuery.d.ts +4 -3
- package/dist/types/listing/types.d.ts +5 -0
- package/dist/types/user/api/utils/getUserToken.d.ts +1 -0
- package/dist/types/user/api/utils/index.d.ts +1 -0
- package/dist/types/user/hooks/index.d.ts +1 -0
- package/dist/types/user/hooks/useGetUserToken.d.ts +1 -0
- package/package.json +3 -3
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/api/myCartApi/index.ts"],"names":["MyCartAPI","MyOrdersAPI","useQuery","useQueryCache","useMutation","addToCart","readFromLocalStorage","writeToLocalStorage","getTranslatableField","getSDKConfig","syncResponse","getLineItemId","onMutate","queryKey","promoCodeQueryKey","BASKET_STORAGE_KEY","myCartCacheKeys","useGet","useGetCompact","useGetShippingMethods","useGetAllShippingMethods","useGetPaymentMethods","useIsExisting","LineItemType","MyCartApiFactory","instance","initialise","myCartApi","myOrdersApi","Object","freeze","useGetWithCookies","queryCache","cookies","data","get","setQueryData","usePrefetchCart","catch","e","error","compact","retry","refetchOnMount","refetchOnWindowFocus","compactBasket","productId","variantId","collapseKey","parsedData","identifier","lineItems","getMyShippingMethods","getAvailableShippingMethods","enabled","getPaymentMethods","useAdd","onSuccess","query","values","addLineItem","onError","_","__","rollback","params","product","find","p","variant","sku","quantity","offer","price","originalPrice","useAddCustom","addCustomLineItem","fields","customLineItems","useRemove","lineItemId","type","Regular","deleteLineItem","useRemoveCustom","deleteCustomLineItem","useSetQuantity","setLineItemQuantity","dto","useSetPlatformShippingMethod","setPlatformShippingMethod","useUnsetShippingMethod","unsetShippingMethods","useSync","sync","useSetMerchantsShippingMethod","setMerchantsShippingMethods","useSetShippingAddress","setShippingAddress","useSetBillingAddress","setBillingAddress","useAddDiscountCode","setDiscountCode","code","currentCode","discountCodes","c","discountCode","resource","status","codeData","name","useRemoveDiscountCode","deleteDiscountCode","undefined","getInstance"],"mappings":"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","sourcesContent":["/* eslint-disable react-hooks/rules-of-hooks */\nimport {\n MyCartAPI,\n ShippingMethodsInfo,\n PaymentMethodsInfo,\n PlatformMethodUpdateDTO,\n OrderDTO,\n MerchantsMethodsUpdateDTO,\n AddressDTO,\n DiscountCodeUpdateDTO,\n LineItemDraftDTO,\n QuantityUpdateDTO,\n DiscountCodeInfoDTO,\n CustomLineItemDraftDTO,\n MyOrdersAPI,\n TaxedPriceDTO,\n CompactBasketDTO,\n} from '@sentecacommerce/sdk'\nimport {\n useQuery,\n QueryResult,\n useQueryCache,\n useMutation,\n MutationResultPair,\n QueryCache,\n} from 'react-query'\nimport { addToCart } from '../../analytics/addToCart'\n\nimport {\n readFromLocalStorage,\n writeToLocalStorage,\n getTranslatableField,\n} from '../../utils'\nimport { getSDKConfig } from '../getSDKConfig'\nimport { syncResponse, getLineItemId, onMutate } from './utils'\n\nimport { queryKey as promoCodeQueryKey } from '../../api.v2/core/misc/promo-code'\n\nexport const BASKET_STORAGE_KEY = '__BASKET__'\n\nexport const myCartCacheKeys = {\n useGet: 'mycart-api-useget',\n useGetCompact: 'mycart-api-use-get-compact',\n useGetShippingMethods: 'mycart-api-use-get-shippingmethods',\n useGetAllShippingMethods: 'mycart-api-use-get-all-shippingmethods',\n useGetPaymentMethods: 'mycart-api-use-get-paymentmethods',\n useIsExisting: 'mycart-api-is-existing',\n}\n\ntype myCartApiType = {\n readonly useGetWithCookies: (\n queryCache: QueryCache,\n cookies: any\n ) => Promise<OrderDTO>\n readonly usePrefetchCart: (\n queryCache: QueryCache\n ) => Promise<OrderDTO | { error: any }>\n readonly useGet: () => QueryResult<OrderDTO, unknown>\n readonly useGetCompact: () => QueryResult<CompactBasket, unknown>\n readonly useIsExisting: (\n productId: string,\n variantId?: string,\n collapseKey?: string\n ) => QueryResult<boolean, unknown>\n readonly useGetShippingMethods: () => QueryResult<\n ShippingMethodsInfo,\n unknown\n >\n readonly useGetAllShippingMethods: () => QueryResult<\n ShippingMethodsInfo,\n unknown\n >\n readonly useGetPaymentMethods: (data?: {\n enabled?: boolean\n }) => QueryResult<PaymentMethodsInfo, unknown>\n readonly useAdd: (\n onSuccess?: () => void,\n query?: {\n storeKey?: string | undefined\n currencyCode?: string | undefined\n languageCode?: string | undefined\n priceListKey?: string | undefined\n time?: number | undefined\n merchantKey?: string | undefined\n expand?: string | undefined\n project?: string | undefined\n }\n ) => MutationResultPair<OrderDTO, unknown, LineItemDraftDTO, unknown>\n readonly useAddCustom: (\n onSuccess?: () => void\n ) => MutationResultPair<OrderDTO, unknown, CustomLineItemDraftDTO, unknown>\n readonly useRemove: (\n onSuccess?: () => void\n ) => MutationResultPair<\n OrderDTO,\n unknown,\n { productId: string; variantId?: string; collapseKey?: string },\n unknown\n >\n readonly useRemoveCustom: (\n onSuccess?: () => void\n ) => MutationResultPair<\n OrderDTO,\n unknown,\n { lineItemId: string; productId: string; variantId: string },\n unknown\n >\n readonly useSetQuantity: (\n onSuccess?: () => void\n ) => MutationResultPair<\n OrderDTO,\n unknown,\n {\n productId: string\n variantId?: string\n dto: QuantityUpdateDTO\n collapseKey?: string\n },\n unknown\n >\n readonly useSync: (\n onSuccess?: (order: OrderDTO) => void\n ) => MutationResultPair<\n OrderDTO,\n unknown,\n {\n query?: {\n storeKey?: string\n currencyCode?: string\n languageCode?: string\n priceListKey?: string\n time?: number\n merchantKey?: string\n expand?: string\n project?: string\n }\n },\n unknown\n >\n readonly useSetPlatformShippingMethod: (\n onSuccess?: () => void\n ) => MutationResultPair<OrderDTO, unknown, PlatformMethodUpdateDTO, unknown>\n readonly useUnsetShippingMethod: (\n onSuccess?: () => void\n ) => MutationResultPair<OrderDTO, unknown, unknown, unknown>\n readonly useSetMerchantsShippingMethod: (\n onSuccess?: () => void\n ) => MutationResultPair<OrderDTO, unknown, MerchantsMethodsUpdateDTO, unknown>\n readonly useSetShippingAddress: (\n onSuccess?: () => void\n ) => MutationResultPair<OrderDTO, unknown, AddressDTO, unknown>\n readonly useSetBillingAddress: (\n onSuccess?: () => void\n ) => MutationResultPair<OrderDTO, unknown, AddressDTO, unknown>\n readonly useAddDiscountCode: (\n onSuccess?: () => void,\n onError?: (code: DiscountCodeInfoDTO) => void\n ) => MutationResultPair<OrderDTO, unknown, DiscountCodeUpdateDTO, unknown>\n readonly useRemoveDiscountCode: (\n onSuccess?: () => void\n ) => MutationResultPair<OrderDTO, unknown, DiscountCodeUpdateDTO, unknown>\n}\n\nexport type CompactBasket = CompactBasketDTO & {\n totalNet: {\n amount: number\n currency: string\n }\n totalGross: {\n amount: number\n currency: string\n }\n lineItems: {\n [productId: string]: {\n // Could be collapse key or variant id\n [identifier: string]: {\n quantity?: number\n lineItemId?: string\n }\n }\n }\n customLineItems: {\n [productId: string]: {\n [identifier: string]: number\n }\n }\n}\n\nenum LineItemType {\n Regular = 'lineItems',\n Custom = 'customLineItems',\n}\n\nexport const MyCartApiFactory = (function () {\n let instance: myCartApiType\n\n function initialise(): Readonly<myCartApiType> {\n const myCartApi = new MyCartAPI(getSDKConfig())\n const myOrdersApi = new MyOrdersAPI(getSDKConfig())\n\n return Object.freeze({\n myCartCacheKeys,\n useGetWithCookies: async (queryCache, cookies) => {\n const data = await new MyCartAPI(getSDKConfig({ cookies })).get()\n queryCache.setQueryData(myCartCacheKeys.useGet, data)\n return data\n },\n usePrefetchCart: async (queryCache) => {\n const data = await myCartApi.get().catch((e) => ({ error: e }))\n if (!(data as any).error) {\n queryCache.setQueryData(myCartCacheKeys.useGet, data)\n }\n return data\n },\n useGet: () => {\n const queryCache = useQueryCache()\n return useQuery(\n myCartCacheKeys.useGet,\n async () => {\n const data = await myCartApi.get()\n\n writeToLocalStorage(BASKET_STORAGE_KEY, data.compact)\n queryCache.setQueryData(myCartCacheKeys.useGetCompact, data.compact)\n return data\n },\n {\n retry: false,\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n }\n )\n },\n useGetCompact: () => {\n return useQuery(myCartCacheKeys.useGetCompact, async () => {\n const compactBasket: CompactBasket = readFromLocalStorage(\n BASKET_STORAGE_KEY\n )\n\n return compactBasket\n })\n },\n useIsExisting: (\n productId: string,\n variantId?: string,\n collapseKey?: string\n ) => {\n return useQuery(\n [myCartCacheKeys.useIsExisting, productId, variantId],\n () => {\n const parsedData = readFromLocalStorage(BASKET_STORAGE_KEY)\n const identifier = (collapseKey ?? variantId) as string\n return !!parsedData?.lineItems?.[productId]?.[identifier]\n }\n )\n },\n useGetShippingMethods: () => {\n return useQuery(\n myCartCacheKeys.useGetShippingMethods,\n async () => myCartApi.getMyShippingMethods(),\n {\n retry: false,\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n }\n )\n },\n useGetAllShippingMethods: () => {\n return useQuery(\n myCartCacheKeys.useGetAllShippingMethods,\n async () => myOrdersApi.getAvailableShippingMethods(),\n {\n retry: false,\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n }\n )\n },\n useGetPaymentMethods: (data = {}) => {\n const { enabled } = data\n return useQuery(\n myCartCacheKeys.useGetPaymentMethods,\n async () => myCartApi.getPaymentMethods(),\n {\n retry: false,\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n enabled,\n }\n )\n },\n useAdd: (onSuccess, query = {}) => {\n const queryCache = useQueryCache()\n\n return useMutation(async (values) => myCartApi.addLineItem(values), {\n onMutate: () => onMutate(queryCache),\n onError: (_, __, rollback) => rollback(),\n onSuccess: (data, params) => {\n // Analytics\n const product = data.lineItems.find(\n (p) => p.productId === params.productId\n )\n product &&\n addToCart(\n product.variant.sku,\n params.quantity,\n product.offer.price || product.offer.originalPrice\n )\n\n queryCache.setQueryData(\n [\n myCartCacheKeys.useIsExisting,\n params.productId,\n params.variantId,\n ],\n true\n )\n\n syncResponse(queryCache, data)\n onSuccess?.()\n },\n })\n },\n useAddCustom: (onSuccess) => {\n const queryCache = useQueryCache()\n\n return useMutation(\n async (values) => myCartApi.addCustomLineItem(values),\n {\n onMutate: () => onMutate(queryCache),\n onError: (_, __, rollback) => rollback(),\n onSuccess: (data, params) => {\n const compactBasket = data.compact as CompactBasket\n const productId = params.fields.productId as string\n const variantId = params.fields.variantId as string\n\n queryCache.setQueryData(\n [myCartCacheKeys.useIsExisting, productId, variantId],\n compactBasket.customLineItems[productId][variantId]\n )\n syncResponse(queryCache, data)\n onSuccess?.()\n },\n }\n )\n },\n useRemove: (onSuccess) => {\n const queryCache = useQueryCache()\n\n return useMutation(\n async (values) => {\n const lineItemId = getLineItemId({\n collapseKey: values?.collapseKey,\n productId: values?.productId,\n variantId: values?.variantId,\n type: LineItemType.Regular,\n })\n return myCartApi.deleteLineItem(lineItemId)\n },\n {\n onMutate: () => onMutate(queryCache),\n onError: (_, __, rollback) => rollback(),\n onSuccess: (data, params) => {\n syncResponse(queryCache, data)\n queryCache.setQueryData(\n [\n myCartCacheKeys.useIsExisting,\n params.productId,\n params.variantId,\n ],\n false\n )\n onSuccess?.()\n },\n }\n )\n },\n useRemoveCustom: (onSuccess) => {\n const queryCache = useQueryCache()\n\n return useMutation(\n async (values) => myCartApi.deleteCustomLineItem(values.lineItemId),\n {\n onMutate: () => onMutate(queryCache),\n onError: (_, __, rollback) => rollback(),\n onSuccess: (data, params) => {\n syncResponse(queryCache, data)\n queryCache.setQueryData(\n [\n myCartCacheKeys.useIsExisting,\n params.productId,\n params.variantId,\n ],\n 0\n )\n onSuccess?.()\n },\n }\n )\n },\n useSetQuantity: (onSuccess) => {\n const queryCache = useQueryCache()\n return useMutation(\n async (values) => {\n const lineItemId = getLineItemId({\n collapseKey: values?.collapseKey,\n productId: values?.productId,\n variantId: values?.variantId,\n type: LineItemType.Regular,\n })\n return myCartApi.setLineItemQuantity(lineItemId, values.dto)\n },\n {\n onMutate: () => onMutate(queryCache),\n onError: (_, __, rollback) => rollback(),\n onSuccess: (data) => {\n syncResponse(queryCache, data)\n onSuccess?.()\n },\n }\n )\n },\n useSetPlatformShippingMethod: (onSuccess) => {\n const queryCache = useQueryCache()\n return useMutation(\n (values) => myCartApi.setPlatformShippingMethod(values),\n {\n onMutate: () => onMutate(queryCache),\n onSuccess: (data) => {\n syncResponse(queryCache, data)\n onSuccess?.()\n },\n }\n )\n },\n useUnsetShippingMethod: (onSuccess) => {\n const queryCache = useQueryCache()\n return useMutation(() => myCartApi.unsetShippingMethods(), {\n onMutate: () => onMutate(queryCache),\n onSuccess: (data) => {\n syncResponse(queryCache, data)\n onSuccess?.()\n },\n })\n },\n useSync: (onSuccess) => {\n const queryCache = useQueryCache()\n return useMutation((values) => myCartApi.sync(values?.query), {\n onMutate: () => onMutate(queryCache),\n onSuccess: (data) => {\n syncResponse(queryCache, data)\n onSuccess?.(data)\n },\n })\n },\n useSetMerchantsShippingMethod: (onSuccess) => {\n const queryCache = useQueryCache()\n return useMutation(\n (values) => myCartApi.setMerchantsShippingMethods(values),\n {\n onMutate: () => onMutate(queryCache),\n onSuccess: (data) => {\n syncResponse(queryCache, data)\n onSuccess?.()\n },\n }\n )\n },\n useSetShippingAddress: (onSuccess) => {\n const queryCache = useQueryCache()\n return useMutation((values) => myCartApi.setShippingAddress(values), {\n onMutate: () => onMutate(queryCache),\n onSuccess: (data) => {\n syncResponse(queryCache, data)\n onSuccess?.()\n },\n })\n },\n useSetBillingAddress: (onSuccess) => {\n const queryCache = useQueryCache()\n return useMutation((values) => myCartApi.setBillingAddress(values), {\n onMutate: () => onMutate(queryCache),\n onSuccess: (data) => {\n syncResponse(queryCache, data)\n onSuccess?.()\n },\n })\n },\n useAddDiscountCode: (onSuccess, onError) => {\n const queryCache = useQueryCache()\n return useMutation((values) => myCartApi.setDiscountCode(values), {\n onSuccess: (data, code) => {\n queryCache.setQueryData(myCartCacheKeys.useGet, data)\n const currentCode = data.discountCodes.find(\n (c) => c.discountCode.resource?.code === code.code\n )\n\n // currentCode?.discountCode.resource\n // Not optional chained because TS doesn't recognize it can't be undefined\n if (currentCode && currentCode.status !== 'MatchesCart') {\n onError?.(currentCode)\n } else {\n const codeData = {\n code: code.code,\n name: getTranslatableField(\n currentCode?.discountCode.resource.name\n ),\n }\n writeToLocalStorage(promoCodeQueryKey, codeData)\n queryCache.setQueryData(promoCodeQueryKey, codeData)\n onSuccess?.()\n }\n },\n })\n },\n useRemoveDiscountCode: (onSuccess) => {\n const queryCache = useQueryCache()\n return useMutation((values) => myCartApi.deleteDiscountCode(values), {\n onMutate: () => onMutate(queryCache),\n onSuccess: (data) => {\n syncResponse(queryCache, data)\n writeToLocalStorage(promoCodeQueryKey, undefined)\n queryCache.setQueryData(promoCodeQueryKey, undefined)\n onSuccess?.()\n },\n })\n },\n })\n }\n\n return {\n getInstance: function () {\n if (!instance) {\n instance = initialise()\n }\n\n return instance\n },\n }\n})()\n\nexport const myCartApi = MyCartApiFactory.getInstance()\n"],"file":"index.js"}
|
1
|
+
{"version":3,"sources":["../../../../src/api/myCartApi/index.ts"],"names":["MyCartAPI","MyOrdersAPI","useQuery","useQueryCache","useMutation","addToCart","readFromLocalStorage","writeToLocalStorage","getTranslatableField","getSDKConfig","syncResponse","getLineItemId","onMutate","queryKey","promoCodeQueryKey","BASKET_STORAGE_KEY","myCartCacheKeys","useGet","useGetCompact","useGetShippingMethods","useGetAllShippingMethods","useGetPaymentMethods","useIsExisting","useGetCrossSaleItems","LineItemType","MyCartApiFactory","instance","initialise","myCartApi","myOrdersApi","Object","freeze","useGetWithCookies","queryCache","cookies","data","get","setQueryData","usePrefetchCart","catch","e","error","compact","retry","refetchOnMount","refetchOnWindowFocus","compactBasket","productId","variantId","collapseKey","parsedData","identifier","lineItems","getMyShippingMethods","getAvailableShippingMethods","enabled","getPaymentMethods","useAdd","onSuccess","query","values","addLineItem","onError","_","__","rollback","params","product","find","p","variant","sku","quantity","offer","price","originalPrice","useAddCustom","addCustomLineItem","fields","customLineItems","useRemove","lineItemId","type","Regular","deleteLineItem","useRemoveCustom","deleteCustomLineItem","useSetQuantity","setLineItemQuantity","dto","useSetPlatformShippingMethod","setPlatformShippingMethod","useUnsetShippingMethod","unsetShippingMethods","useSync","sync","useSetMerchantsShippingMethod","setMerchantsShippingMethods","useSetShippingAddress","setShippingAddress","useSetBillingAddress","setBillingAddress","useAddDiscountCode","setDiscountCode","code","currentCode","discountCodes","c","discountCode","resource","status","codeData","name","useRemoveDiscountCode","deleteDiscountCode","undefined","getInstance"],"mappings":"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","sourcesContent":["/* eslint-disable react-hooks/rules-of-hooks */\nimport {\n MyCartAPI,\n ShippingMethodsInfo,\n PaymentMethodsInfo,\n PlatformMethodUpdateDTO,\n OrderDTO,\n MerchantsMethodsUpdateDTO,\n AddressDTO,\n DiscountCodeUpdateDTO,\n LineItemDraftDTO,\n QuantityUpdateDTO,\n DiscountCodeInfoDTO,\n CustomLineItemDraftDTO,\n MyOrdersAPI,\n TaxedPriceDTO,\n CompactBasketDTO,\n} from '@sentecacommerce/sdk'\nimport {\n useQuery,\n QueryResult,\n useQueryCache,\n useMutation,\n MutationResultPair,\n QueryCache,\n} from 'react-query'\nimport { addToCart } from '../../analytics/addToCart'\n\nimport {\n readFromLocalStorage,\n writeToLocalStorage,\n getTranslatableField,\n} from '../../utils'\nimport { getSDKConfig } from '../getSDKConfig'\nimport { syncResponse, getLineItemId, onMutate } from './utils'\n\nimport { queryKey as promoCodeQueryKey } from '../../api.v2/core/misc/promo-code'\n\nexport const BASKET_STORAGE_KEY = '__BASKET__'\n\nexport const myCartCacheKeys = {\n useGet: 'mycart-api-useget',\n useGetCompact: 'mycart-api-use-get-compact',\n useGetShippingMethods: 'mycart-api-use-get-shippingmethods',\n useGetAllShippingMethods: 'mycart-api-use-get-all-shippingmethods',\n useGetPaymentMethods: 'mycart-api-use-get-paymentmethods',\n useIsExisting: 'mycart-api-is-existing',\n useGetCrossSaleItems: 'mycart-api-use-get-cross-sale-products',\n}\n\ntype myCartApiType = {\n readonly useGetWithCookies: (\n queryCache: QueryCache,\n cookies: any\n ) => Promise<OrderDTO>\n readonly usePrefetchCart: (\n queryCache: QueryCache\n ) => Promise<OrderDTO | { error: any }>\n readonly useGet: () => QueryResult<OrderDTO, unknown>\n readonly useGetCompact: () => QueryResult<CompactBasket, unknown>\n readonly useIsExisting: (\n productId: string,\n variantId?: string,\n collapseKey?: string\n ) => QueryResult<boolean, unknown>\n readonly useGetShippingMethods: () => QueryResult<\n ShippingMethodsInfo,\n unknown\n >\n readonly useGetAllShippingMethods: () => QueryResult<\n ShippingMethodsInfo,\n unknown\n >\n readonly useGetPaymentMethods: (data?: {\n enabled?: boolean\n }) => QueryResult<PaymentMethodsInfo, unknown>\n readonly useAdd: (\n onSuccess?: () => void,\n query?: {\n storeKey?: string | undefined\n currencyCode?: string | undefined\n languageCode?: string | undefined\n priceListKey?: string | undefined\n time?: number | undefined\n merchantKey?: string | undefined\n expand?: string | undefined\n project?: string | undefined\n }\n ) => MutationResultPair<OrderDTO, unknown, LineItemDraftDTO, unknown>\n readonly useAddCustom: (\n onSuccess?: () => void\n ) => MutationResultPair<OrderDTO, unknown, CustomLineItemDraftDTO, unknown>\n readonly useRemove: (\n onSuccess?: () => void\n ) => MutationResultPair<\n OrderDTO,\n unknown,\n { productId: string; variantId?: string; collapseKey?: string },\n unknown\n >\n readonly useRemoveCustom: (\n onSuccess?: () => void\n ) => MutationResultPair<\n OrderDTO,\n unknown,\n { lineItemId: string; productId: string; variantId: string },\n unknown\n >\n readonly useSetQuantity: (\n onSuccess?: () => void\n ) => MutationResultPair<\n OrderDTO,\n unknown,\n {\n productId: string\n variantId?: string\n dto: QuantityUpdateDTO\n collapseKey?: string\n },\n unknown\n >\n readonly useSync: (\n onSuccess?: (order: OrderDTO) => void\n ) => MutationResultPair<\n OrderDTO,\n unknown,\n {\n query?: {\n storeKey?: string\n currencyCode?: string\n languageCode?: string\n priceListKey?: string\n time?: number\n merchantKey?: string\n expand?: string\n project?: string\n }\n },\n unknown\n >\n readonly useSetPlatformShippingMethod: (\n onSuccess?: () => void\n ) => MutationResultPair<OrderDTO, unknown, PlatformMethodUpdateDTO, unknown>\n readonly useUnsetShippingMethod: (\n onSuccess?: () => void\n ) => MutationResultPair<OrderDTO, unknown, unknown, unknown>\n readonly useSetMerchantsShippingMethod: (\n onSuccess?: () => void\n ) => MutationResultPair<OrderDTO, unknown, MerchantsMethodsUpdateDTO, unknown>\n readonly useSetShippingAddress: (\n onSuccess?: () => void\n ) => MutationResultPair<OrderDTO, unknown, AddressDTO, unknown>\n readonly useSetBillingAddress: (\n onSuccess?: () => void\n ) => MutationResultPair<OrderDTO, unknown, AddressDTO, unknown>\n readonly useAddDiscountCode: (\n onSuccess?: () => void,\n onError?: (code: DiscountCodeInfoDTO) => void\n ) => MutationResultPair<OrderDTO, unknown, DiscountCodeUpdateDTO, unknown>\n readonly useRemoveDiscountCode: (\n onSuccess?: () => void\n ) => MutationResultPair<OrderDTO, unknown, DiscountCodeUpdateDTO, unknown>\n}\n\nexport type CompactBasket = CompactBasketDTO & {\n totalNet: {\n amount: number\n currency: string\n }\n totalGross: {\n amount: number\n currency: string\n }\n lineItems: {\n [productId: string]: {\n // Could be collapse key or variant id\n [identifier: string]: {\n quantity?: number\n lineItemId?: string\n }\n }\n }\n customLineItems: {\n [productId: string]: {\n [identifier: string]: number\n }\n }\n}\n\nenum LineItemType {\n Regular = 'lineItems',\n Custom = 'customLineItems',\n}\n\nexport const MyCartApiFactory = (function () {\n let instance: myCartApiType\n\n function initialise(): Readonly<myCartApiType> {\n const myCartApi = new MyCartAPI(getSDKConfig())\n const myOrdersApi = new MyOrdersAPI(getSDKConfig())\n\n return Object.freeze({\n myCartCacheKeys,\n useGetWithCookies: async (queryCache, cookies) => {\n const data = await new MyCartAPI(getSDKConfig({ cookies })).get()\n queryCache.setQueryData(myCartCacheKeys.useGet, data)\n return data\n },\n usePrefetchCart: async (queryCache) => {\n const data = await myCartApi.get().catch((e) => ({ error: e }))\n if (!(data as any).error) {\n queryCache.setQueryData(myCartCacheKeys.useGet, data)\n }\n return data\n },\n useGet: () => {\n const queryCache = useQueryCache()\n return useQuery(\n myCartCacheKeys.useGet,\n async () => {\n const data = await myCartApi.get()\n\n writeToLocalStorage(BASKET_STORAGE_KEY, data.compact)\n queryCache.setQueryData(myCartCacheKeys.useGetCompact, data.compact)\n return data\n },\n {\n retry: false,\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n }\n )\n },\n useGetCompact: () => {\n return useQuery(myCartCacheKeys.useGetCompact, async () => {\n const compactBasket: CompactBasket = readFromLocalStorage(\n BASKET_STORAGE_KEY\n )\n\n return compactBasket\n })\n },\n useIsExisting: (\n productId: string,\n variantId?: string,\n collapseKey?: string\n ) => {\n return useQuery(\n [myCartCacheKeys.useIsExisting, productId, variantId],\n () => {\n const parsedData = readFromLocalStorage(BASKET_STORAGE_KEY)\n const identifier = (collapseKey ?? variantId) as string\n return !!parsedData?.lineItems?.[productId]?.[identifier]\n }\n )\n },\n useGetShippingMethods: () => {\n return useQuery(\n myCartCacheKeys.useGetShippingMethods,\n async () => myCartApi.getMyShippingMethods(),\n {\n retry: false,\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n }\n )\n },\n useGetAllShippingMethods: () => {\n return useQuery(\n myCartCacheKeys.useGetAllShippingMethods,\n async () => myOrdersApi.getAvailableShippingMethods(),\n {\n retry: false,\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n }\n )\n },\n useGetPaymentMethods: (data = {}) => {\n const { enabled } = data\n return useQuery(\n myCartCacheKeys.useGetPaymentMethods,\n async () => myCartApi.getPaymentMethods(),\n {\n retry: false,\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n enabled,\n }\n )\n },\n useAdd: (onSuccess, query = {}) => {\n const queryCache = useQueryCache()\n\n return useMutation(async (values) => myCartApi.addLineItem(values), {\n onMutate: () => onMutate(queryCache),\n onError: (_, __, rollback) => rollback(),\n onSuccess: (data, params) => {\n // Analytics\n const product = data.lineItems.find(\n (p) => p.productId === params.productId\n )\n product &&\n addToCart(\n product.variant.sku,\n params.quantity,\n product.offer.price || product.offer.originalPrice\n )\n\n queryCache.setQueryData(\n [\n myCartCacheKeys.useIsExisting,\n params.productId,\n params.variantId,\n ],\n true\n )\n\n syncResponse(queryCache, data)\n onSuccess?.()\n },\n })\n },\n useAddCustom: (onSuccess) => {\n const queryCache = useQueryCache()\n\n return useMutation(\n async (values) => myCartApi.addCustomLineItem(values),\n {\n onMutate: () => onMutate(queryCache),\n onError: (_, __, rollback) => rollback(),\n onSuccess: (data, params) => {\n const compactBasket = data.compact as CompactBasket\n const productId = params.fields.productId as string\n const variantId = params.fields.variantId as string\n\n queryCache.setQueryData(\n [myCartCacheKeys.useIsExisting, productId, variantId],\n compactBasket.customLineItems[productId][variantId]\n )\n syncResponse(queryCache, data)\n onSuccess?.()\n },\n }\n )\n },\n useRemove: (onSuccess) => {\n const queryCache = useQueryCache()\n\n return useMutation(\n async (values) => {\n const lineItemId = getLineItemId({\n collapseKey: values?.collapseKey,\n productId: values?.productId,\n variantId: values?.variantId,\n type: LineItemType.Regular,\n })\n return myCartApi.deleteLineItem(lineItemId)\n },\n {\n onMutate: () => onMutate(queryCache),\n onError: (_, __, rollback) => rollback(),\n onSuccess: (data, params) => {\n syncResponse(queryCache, data)\n queryCache.setQueryData(\n [\n myCartCacheKeys.useIsExisting,\n params.productId,\n params.variantId,\n ],\n false\n )\n onSuccess?.()\n },\n }\n )\n },\n useRemoveCustom: (onSuccess) => {\n const queryCache = useQueryCache()\n\n return useMutation(\n async (values) => myCartApi.deleteCustomLineItem(values.lineItemId),\n {\n onMutate: () => onMutate(queryCache),\n onError: (_, __, rollback) => rollback(),\n onSuccess: (data, params) => {\n syncResponse(queryCache, data)\n queryCache.setQueryData(\n [\n myCartCacheKeys.useIsExisting,\n params.productId,\n params.variantId,\n ],\n 0\n )\n onSuccess?.()\n },\n }\n )\n },\n useSetQuantity: (onSuccess) => {\n const queryCache = useQueryCache()\n return useMutation(\n async (values) => {\n const lineItemId = getLineItemId({\n collapseKey: values?.collapseKey,\n productId: values?.productId,\n variantId: values?.variantId,\n type: LineItemType.Regular,\n })\n return myCartApi.setLineItemQuantity(lineItemId, values.dto)\n },\n {\n onMutate: () => onMutate(queryCache),\n onError: (_, __, rollback) => rollback(),\n onSuccess: (data) => {\n syncResponse(queryCache, data)\n onSuccess?.()\n },\n }\n )\n },\n useSetPlatformShippingMethod: (onSuccess) => {\n const queryCache = useQueryCache()\n return useMutation(\n (values) => myCartApi.setPlatformShippingMethod(values),\n {\n onMutate: () => onMutate(queryCache),\n onSuccess: (data) => {\n syncResponse(queryCache, data)\n onSuccess?.()\n },\n }\n )\n },\n useUnsetShippingMethod: (onSuccess) => {\n const queryCache = useQueryCache()\n return useMutation(() => myCartApi.unsetShippingMethods(), {\n onMutate: () => onMutate(queryCache),\n onSuccess: (data) => {\n syncResponse(queryCache, data)\n onSuccess?.()\n },\n })\n },\n useSync: (onSuccess) => {\n const queryCache = useQueryCache()\n return useMutation((values) => myCartApi.sync(values?.query), {\n onMutate: () => onMutate(queryCache),\n onSuccess: (data) => {\n syncResponse(queryCache, data)\n onSuccess?.(data)\n },\n })\n },\n useSetMerchantsShippingMethod: (onSuccess) => {\n const queryCache = useQueryCache()\n return useMutation(\n (values) => myCartApi.setMerchantsShippingMethods(values),\n {\n onMutate: () => onMutate(queryCache),\n onSuccess: (data) => {\n syncResponse(queryCache, data)\n onSuccess?.()\n },\n }\n )\n },\n useSetShippingAddress: (onSuccess) => {\n const queryCache = useQueryCache()\n return useMutation((values) => myCartApi.setShippingAddress(values), {\n onMutate: () => onMutate(queryCache),\n onSuccess: (data) => {\n syncResponse(queryCache, data)\n onSuccess?.()\n },\n })\n },\n useSetBillingAddress: (onSuccess) => {\n const queryCache = useQueryCache()\n return useMutation((values) => myCartApi.setBillingAddress(values), {\n onMutate: () => onMutate(queryCache),\n onSuccess: (data) => {\n syncResponse(queryCache, data)\n onSuccess?.()\n },\n })\n },\n useAddDiscountCode: (onSuccess, onError) => {\n const queryCache = useQueryCache()\n return useMutation((values) => myCartApi.setDiscountCode(values), {\n onSuccess: (data, code) => {\n queryCache.setQueryData(myCartCacheKeys.useGet, data)\n const currentCode = data.discountCodes.find(\n (c) => c.discountCode.resource?.code === code.code\n )\n\n // currentCode?.discountCode.resource\n // Not optional chained because TS doesn't recognize it can't be undefined\n if (currentCode && currentCode.status !== 'MatchesCart') {\n onError?.(currentCode)\n } else {\n const codeData = {\n code: code.code,\n name: getTranslatableField(\n currentCode?.discountCode.resource.name\n ),\n }\n writeToLocalStorage(promoCodeQueryKey, codeData)\n queryCache.setQueryData(promoCodeQueryKey, codeData)\n onSuccess?.()\n }\n },\n })\n },\n useRemoveDiscountCode: (onSuccess) => {\n const queryCache = useQueryCache()\n return useMutation((values) => myCartApi.deleteDiscountCode(values), {\n onMutate: () => onMutate(queryCache),\n onSuccess: (data) => {\n syncResponse(queryCache, data)\n writeToLocalStorage(promoCodeQueryKey, undefined)\n queryCache.setQueryData(promoCodeQueryKey, undefined)\n onSuccess?.()\n },\n })\n },\n })\n }\n\n return {\n getInstance: function () {\n if (!instance) {\n instance = initialise()\n }\n\n return instance\n },\n }\n})()\n\nexport const myCartApi = MyCartApiFactory.getInstance()\n"],"file":"index.js"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../../../src/basket/api/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAd","sourcesContent":["export * from './mutations'\n"],"file":"index.js"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../../../../src/basket/api/mutations/index.ts"],"names":[],"mappings":"AAAA,cAAc,4BAAd","sourcesContent":["export * from './useReplaceBasketMutation'\n"],"file":"index.js"}
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
2
|
+
import { useMutation, useQueryCache } from 'react-query';
|
3
|
+
import { myCartCacheKeys } from '../../../index';
|
4
|
+
export var useReplaceBasketMutation = () => {
|
5
|
+
var queryCache = useQueryCache();
|
6
|
+
return useMutation( /*#__PURE__*/function () {
|
7
|
+
var _ref = _asyncToGenerator(function* (newBasket) {
|
8
|
+
queryCache.setQueryData(myCartCacheKeys.useGet, newBasket);
|
9
|
+
queryCache.setQueryData(myCartCacheKeys.useGetCompact, newBasket.compact);
|
10
|
+
});
|
11
|
+
|
12
|
+
return function (_x) {
|
13
|
+
return _ref.apply(this, arguments);
|
14
|
+
};
|
15
|
+
}());
|
16
|
+
};
|
17
|
+
//# sourceMappingURL=useReplaceBasketMutation.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../../../../src/basket/api/mutations/useReplaceBasketMutation.ts"],"names":["useMutation","useQueryCache","myCartCacheKeys","useReplaceBasketMutation","queryCache","newBasket","setQueryData","useGet","useGetCompact","compact"],"mappings":";AACA,SAASA,WAAT,EAAsBC,aAAtB,QAA2C,aAA3C;AACA,SAASC,eAAT,QAA0C,gBAA1C;AAEA,OAAO,IAAMC,wBAAwB,GAAG,MAAM;AAC5C,MAAMC,UAAU,GAAGH,aAAa,EAAhC;AAEA,SAAOD,WAAW;AAAA,iCAAC,WAAOK,SAAP,EAA+B;AAChDD,MAAAA,UAAU,CAACE,YAAX,CAAwBJ,eAAe,CAACK,MAAxC,EAAgDF,SAAhD;AACAD,MAAAA,UAAU,CAACE,YAAX,CAAwBJ,eAAe,CAACM,aAAxC,EAAuDH,SAAS,CAACI,OAAjE;AACD,KAHiB;;AAAA;AAAA;AAAA;AAAA,MAAlB;AAID,CAPM","sourcesContent":["import React from 'react'\nimport { useMutation, useQueryCache } from 'react-query'\nimport { myCartCacheKeys, OrderDTO } from '../../../index'\n\nexport const useReplaceBasketMutation = () => {\n const queryCache = useQueryCache()\n\n return useMutation(async (newBasket: OrderDTO) => {\n queryCache.setQueryData(myCartCacheKeys.useGet, newBasket)\n queryCache.setQueryData(myCartCacheKeys.useGetCompact, newBasket.compact)\n })\n}\n"],"file":"useReplaceBasketMutation.js"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../../../src/basket/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAd;AACA,cAAc,2BAAd","sourcesContent":["export * from './useReplaceBasket'\nexport * from './useBasketCrossSaleItems'\n"],"file":"index.js"}
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
2
|
+
import { useMemo } from 'react';
|
3
|
+
import { useQuery } from 'react-query';
|
4
|
+
import { MyCartGetCrossSaleProducts } from '@sentecacommerce/sdk';
|
5
|
+
import { getTranslatableField } from '../../index';
|
6
|
+
import { myCartCacheKeys } from '../../index';
|
7
|
+
export var useBasketCrossSaleItems = () => {
|
8
|
+
var crossSaleProducts = useQuery(myCartCacheKeys.useGetCrossSaleItems, /*#__PURE__*/_asyncToGenerator(function* () {
|
9
|
+
return yield MyCartGetCrossSaleProducts();
|
10
|
+
}));
|
11
|
+
return useMemo(() => {
|
12
|
+
var _crossSaleProducts$da;
|
13
|
+
|
14
|
+
return crossSaleProducts == null ? void 0 : (_crossSaleProducts$da = crossSaleProducts.data) == null ? void 0 : _crossSaleProducts$da.map(product => ({
|
15
|
+
name: getTranslatableField(product.name),
|
16
|
+
description: getTranslatableField(product.description),
|
17
|
+
slug: getTranslatableField(product.slug),
|
18
|
+
attributeRules: product.attributeRules,
|
19
|
+
attributes: product.attributes,
|
20
|
+
_id: product._id,
|
21
|
+
variants: product.variants
|
22
|
+
}));
|
23
|
+
}, [crossSaleProducts == null ? void 0 : crossSaleProducts.data]);
|
24
|
+
};
|
25
|
+
//# sourceMappingURL=useBasketCrossSaleItems.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../../../src/basket/hooks/useBasketCrossSaleItems.ts"],"names":["useMemo","useQuery","MyCartGetCrossSaleProducts","getTranslatableField","myCartCacheKeys","useBasketCrossSaleItems","crossSaleProducts","useGetCrossSaleItems","data","map","product","name","description","slug","attributeRules","attributes","_id","variants"],"mappings":";AAAA,SAAgBA,OAAhB,QAA+B,OAA/B;AACA,SAASC,QAAT,QAAyB,aAAzB;AACA,SAASC,0BAAT,QAA2C,sBAA3C;AACA,SAASC,oBAAT,QAAqC,aAArC;AACA,SAASC,eAAT,QAAgC,aAAhC;AAEA,OAAO,IAAMC,uBAAuB,GAAG,MAAM;AAC3C,MAAMC,iBAAiB,GAAGL,QAAQ,CAChCG,eAAe,CAACG,oBADgB,iCAEhC;AAAA,iBAAkBL,0BAA0B,EAA5C;AAAA,GAFgC,EAAlC;AAKA,SAAOF,OAAO,CACZ;AAAA;;AAAA,WACEM,iBADF,6CACEA,iBAAiB,CAAEE,IADrB,qBACE,sBAAyBC,GAAzB,CAA8BC,OAAD,KAAc;AACzCC,MAAAA,IAAI,EAAER,oBAAoB,CAACO,OAAO,CAACC,IAAT,CADe;AAEzCC,MAAAA,WAAW,EAAET,oBAAoB,CAACO,OAAO,CAACE,WAAT,CAFQ;AAGzCC,MAAAA,IAAI,EAAEV,oBAAoB,CAACO,OAAO,CAACG,IAAT,CAHe;AAIzCC,MAAAA,cAAc,EAAEJ,OAAO,CAACI,cAJiB;AAKzCC,MAAAA,UAAU,EAAEL,OAAO,CAACK,UALqB;AAMzCC,MAAAA,GAAG,EAAEN,OAAO,CAACM,GAN4B;AAOzCC,MAAAA,QAAQ,EAAEP,OAAO,CAACO;AAPuB,KAAd,CAA7B,CADF;AAAA,GADY,EAWZ,CAACX,iBAAD,oBAACA,iBAAiB,CAAEE,IAApB,CAXY,CAAd;AAaD,CAnBM","sourcesContent":["import React, { useMemo } from 'react'\nimport { useQuery } from 'react-query'\nimport { MyCartGetCrossSaleProducts } from '@sentecacommerce/sdk'\nimport { getTranslatableField } from '../../index'\nimport { myCartCacheKeys } from '../../index'\n\nexport const useBasketCrossSaleItems = () => {\n const crossSaleProducts = useQuery(\n myCartCacheKeys.useGetCrossSaleItems,\n async () => await MyCartGetCrossSaleProducts()\n )\n\n return useMemo(\n () =>\n crossSaleProducts?.data?.map((product) => ({\n name: getTranslatableField(product.name),\n description: getTranslatableField(product.description),\n slug: getTranslatableField(product.slug),\n attributeRules: product.attributeRules,\n attributes: product.attributes,\n _id: product._id,\n variants: product.variants,\n })),\n [crossSaleProducts?.data]\n )\n}\n"],"file":"useBasketCrossSaleItems.js"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../../../src/basket/hooks/useReplaceBasket.ts"],"names":["useReplaceBasketMutation","useReplaceBasket"],"mappings":"AAAA,SAASA,wBAAT,QAAyC,QAAzC;AACA,SAASA,wBAAwB,IAAIC,gBAArC","sourcesContent":["import { useReplaceBasketMutation } from '../api'\nexport { useReplaceBasketMutation as useReplaceBasket }\n"],"file":"useReplaceBasket.js"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../../../src/basket/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAd","sourcesContent":["export * from './hooks'\n"],"file":"index.js"}
|
package/dist/esm/index.js
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
import Cookie from 'js-cookie';
|
2
|
+
export { Cookie };
|
1
3
|
export * from './dto'; // API
|
2
4
|
// export * from './api/myCart'
|
3
5
|
|
@@ -119,7 +121,9 @@ export * from './brands';
|
|
119
121
|
export * from './navigation';
|
120
122
|
export * from './GDPR'; // User
|
121
123
|
|
122
|
-
export * from './user'; //
|
124
|
+
export * from './user'; // Basket
|
125
|
+
|
126
|
+
export * from './basket'; // UI Components and hooks
|
123
127
|
|
124
128
|
export * from './ui';
|
125
129
|
export * from './wishlist'; // Build Scripts
|
package/dist/esm/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,OAAd,C,CAEA;AACA;;AACA,cAAc,mBAAd;AACA,cAAc,gBAAd;AACA,cAAc,gBAAd;AACA,cAAc,kBAAd;AACA,cAAc,mBAAd;AACA,cAAc,oBAAd;AACA,cAAc,mBAAd;AACA,cAAc,kBAAd;AACA,cAAc,qBAAd;AACA,cAAc,iBAAd;AACA,cAAc,gBAAd;AACA,cAAc,wBAAd;AACA,cAAc,oBAAd;AACA,cAAc,mBAAd;AACA,cAAc,iBAAd;AACA,cAAc,4BAAd;AACA,cAAc,mBAAd;AACA,cAAc,2BAAd;AACA,cAAc,6BAAd;AACA,cAAc,iBAAd;AACA,cAAc,wBAAd;AAEA,cAAc,iBAAd;AACA,cAAc,qCAAd;AAEA,cAAc,2BAAd,C,CACA;AAEA;;AACA,cAAc,oBAAd;AACA,cAAc,yBAAd;AACA,cAAc,+BAAd;AACA,cAAc,mDAAd;AACA,cAAc,kCAAd,C,CAEA;;AACA,cAAc,cAAd,C,CAEA;;AACA,cAAc,qBAAd;AACA,cAAc,iBAAd;AACA,cAAc,oBAAd;AACA,cAAc,0BAAd;AACA,cAAc,4BAAd;AACA,cAAc,qBAAd;AACA,cAAc,sBAAd;AACA,cAAc,6BAAd;AACA,cAAc,4BAAd;AACA,cAAc,oCAAd;AACA,cAAc,mCAAd;AACA,cAAc,2BAAd;AACA,cAAc,iCAAd;AACA,cAAc,oCAAd;AACA,cAAc,4BAAd;AACA,cAAc,kBAAd;AACA,cAAc,wBAAd;AACA,cAAc,gBAAd;AACA,cAAc,wBAAd;AAEA,cAAc,0CAAd;AACA,cAAc,2CAAd;AACA,cAAc,4BAAd;AACA,cAAc,sBAAd;AACA,cAAc,+BAAd;AACA,cAAc,8BAAd;AACA,cAAc,4BAAd;AACA,cAAc,4BAAd;AACA,cAAc,+BAAd;AACA,cAAc,4BAAd;AACA,cAAc,oCAAd;AACA,cAAc,mCAAd;AACA,cAAc,2BAAd;AACA,cAAc,yBAAd;AACA,cAAc,mBAAd;AACA,cAAc,yBAAd;AACA,cAAc,yBAAd;AAEA,cAAc,sBAAd;AAEA,cAAc,qBAAd;AACA,cAAc,4BAAd;AACA,cAAc,kBAAd;AACA,cAAc,qBAAd;AACA,cAAc,sBAAd;AACA,cAAc,wBAAd,C,CACA;;AAEA,cAAc,mBAAd;AACA,cAAc,4BAAd;AACA,cAAc,2BAAd;AACA,cAAc,wBAAd;AAEA,cAAc,oBAAd;AACA,cAAc,wBAAd;AAEA,cAAc,uBAAd;AACA,cAAc,yBAAd;AACA,cAAc,yBAAd;AACA,cAAc,6BAAd;AACA,cAAc,2BAAd;AACA,cAAc,wBAAd;AACA,cAAc,6BAAd;AACA,cAAc,wBAAd,C,CAEA;;AACA,cAAc,SAAd;AACA,cAAc,SAAd,C,CAEA;;AACA,cAAc,OAAd,C,CAEA;;AACA,cAAc,8BAAd;AACA,cAAc,yBAAd;AAEA,cAAc,oBAAd;AACA,cAAc,mBAAd,C,CAEA;;AACA,cAAc,WAAd,C,CAEA;;AACA,cAAc,sBAAd,C,CAEA;;AACA,cAAc,OAAd,C,CAEA;;AACA,cAAc,UAAd;AACA,cAAc,eAAd;AAEA,cAAc,oBAAd;AAEA,cAAc,QAAd;AACA,cAAc,WAAd;AACA,cAAc,UAAd;AACA,cAAc,cAAd;AACA,cAAc,QAAd,C,CAEA;;AACA,cAAc,QAAd,C,CAEA;;AACA,cAAc,MAAd;AAEA,cAAc,YAAd,C,CAEA;;AACA,cAAc,SAAd,C,CAEA;;AACA,cAAc,SAAd,C,CAEA;;AACA,cAAc,WAAd,C,CAEA;;AACA,cAAc,YAAd,C,CAEA;;AACA,cAAc,WAAd","sourcesContent":["
|
1
|
+
{"version":3,"sources":["../../src/index.ts"],"names":["Cookie"],"mappings":"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","sourcesContent":["import Cookie from 'js-cookie'\nexport { Cookie }\n\nexport * from './dto'\n\n// API\n// export * from './api/myCart'\nexport * from './api/productsApi'\nexport * from './api/pagesApi'\nexport * from './api/usersApi'\nexport * from './api/profileApi'\nexport * from './api/wishlistApi'\nexport * from './api/addressesApi'\nexport * from './api/consentsApi'\nexport * from './api/catalogApi'\nexport * from './api/categoriesApi'\nexport * from './api/brandsApi'\nexport * from './api/viewsApi'\nexport * from './api/notificationsApi'\nexport * from './api/companiesApi'\nexport * from './api/vouchersApi'\nexport * from './api/myCartApi'\nexport * from './api/myShippingsSpeedyApi'\nexport * from './api/myOrdersApi'\nexport * from './api/myShippingsEcontApi'\nexport * from './api/myShippingsEvropatApi'\nexport * from './api/citiesApi'\nexport * from './api/searchHistoryApi'\n\nexport * from './api/walletApi'\nexport * from './api/myShippingsPickupFromStoreAPI'\n\nexport * from './api/myPaymentsBoricaApi'\n// Components\n\n// Contexts\nexport * from './contexts/Strings'\nexport * from './contexts/CheckoutForm'\nexport * from './contexts/CheckoutForm/utils'\nexport * from './contexts/CheckoutForm/Components/BoricaRedirect'\nexport * from './contexts/CustomProductProvider'\n\n// Components\nexport * from './components'\n\n// Hooks\nexport * from './hooks/useCarousel'\nexport * from './hooks/useZoom'\nexport * from './hooks/useProduct'\nexport * from './hooks/useCatalogResult'\nexport * from './hooks/useCopyToClipboard'\nexport * from './hooks/useVouchers'\nexport * from './hooks/usePromoCode'\nexport * from './hooks/useCheckoutDelivery'\nexport * from './hooks/useCheckoutPayment'\nexport * from './hooks/useCheckoutShippingAddress'\nexport * from './hooks/useCheckoutBillingAddress'\nexport * from './hooks/useCheckoutSubmit'\nexport * from './hooks/useCheckoutDiscountCode'\nexport * from './hooks/wishlist-hooks/useWishlist'\nexport * from './hooks/useCheckoutSummary'\nexport * from './hooks/usePrice'\nexport * from './hooks/wishlist-hooks'\nexport * from './hooks/labels'\nexport * from './hooks/checkout-hooks'\n\nexport * from './hooks/basket-hooks/useBasketTotalCount'\nexport * from './hooks/useIsBasketWithFixedShippingPrice'\nexport * from './hooks/useProductCarousel'\nexport * from './hooks/useSearchbar'\nexport * from './hooks/useSEOAggregateResult'\nexport * from './hooks/useCatalogPredicates'\nexport * from './hooks/useAggregateResult'\nexport * from './hooks/useSelectedFilters'\nexport * from './hooks/useAllSelectedFilters'\nexport * from './hooks/useClearAllFilters'\nexport * from './hooks/useCheckoutPickupFromStore'\nexport * from './hooks/useCheckoutShippingModule'\nexport * from './hooks/useLoyaltyProgram'\nexport * from './hooks/useCategoryTree'\nexport * from './hooks/useWallet'\nexport * from './hooks/useSizesReducer'\nexport * from './hooks/useAvailability'\n\nexport * from './hooks/cities-hooks'\n\nexport * from './hooks/useLineItem'\nexport * from './hooks/usePrefetchProduct'\nexport * from './hooks/ui-hooks'\nexport * from './hooks/order-hooks'\nexport * from './hooks/basket-hooks'\nexport * from './hooks/useAddressList'\n// export * from './hooks/third-party'\n\nexport * from './hooks/useConfig'\nexport * from './hooks/useShippingAddress'\nexport * from './hooks/useBillingAddress'\nexport * from './hooks/useContactForm'\n\nexport * from './hooks/user-hooks'\nexport * from './hooks/error-handling'\n\nexport * from './hooks/profile-hooks'\nexport * from './hooks/addresses-hooks'\nexport * from './hooks/companies-hooks'\nexport * from './hooks/subscriptions-hooks'\nexport * from './hooks/useRouterRedirect'\nexport * from './hooks/useProgressBar'\nexport * from './hooks/useCatalogDiscounts'\nexport * from './hooks/useLocalRating'\n\n// Utils\nexport * from './utils'\nexport * from './types'\n\n// SEO\nexport * from './seo'\n\n// Analytics\nexport * from './analytics/initiateCheckout'\nexport * from './analytics/viewContent'\n\nexport * from './analytics/Releva'\nexport * from './analytics/Pixel'\n\n// WebView\nexport * from './webview'\n\n// Carousel\nexport * from 'embla-carousel/react'\n\n// CMS\nexport * from './cms'\n\n// API v2\nexport * from './config'\nexport * from './api.v2/core'\n\nexport * from './api.v2/core/misc'\n\nexport * from './ssr/'\nexport * from './listing'\nexport * from './brands'\nexport * from './navigation'\nexport * from './GDPR'\n\n// User\nexport * from './user'\n\n// Basket\nexport * from './basket'\n\n// UI Components and hooks\nexport * from './ui'\n\nexport * from './wishlist'\n\n// Build Scripts\nexport * from './build'\n\n// Order\nexport * from './order'\n\n// Product\nexport * from './product'\n\n// Checkout\nexport * from './checkout'\n\n// PostCSS and related configuration\nexport * from './postcss'\n"],"file":"index.js"}
|
@@ -1,3 +1,4 @@
|
|
1
|
+
import _extends from "@babel/runtime/helpers/extends";
|
1
2
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
2
3
|
import { useQuery } from 'react-query';
|
3
4
|
import { CatalogAggregate } from '@sentecacommerce/sdk';
|
@@ -15,7 +16,7 @@ export var AggregateRequestEnum;
|
|
15
16
|
AggregateRequestEnum["Categories"] = "categories";
|
16
17
|
})(AggregateRequestEnum || (AggregateRequestEnum = {}));
|
17
18
|
|
18
|
-
export var useAggregateQuery = (aggregates, request) => {
|
19
|
+
export var useAggregateQuery = (aggregates, request, sort) => {
|
19
20
|
var router = useRouter();
|
20
21
|
var {
|
21
22
|
data: predicate
|
@@ -40,6 +41,13 @@ export var useAggregateQuery = (aggregates, request) => {
|
|
40
41
|
slug: aliasedSlug,
|
41
42
|
config: defaultConfig
|
42
43
|
});
|
44
|
+
|
45
|
+
if (sort) {
|
46
|
+
query = _extends({}, query, {
|
47
|
+
attributeSortType: sort
|
48
|
+
});
|
49
|
+
}
|
50
|
+
|
43
51
|
var response = yield CatalogAggregate(query);
|
44
52
|
return response;
|
45
53
|
}), {
|
@@ -58,7 +66,8 @@ export function prepareAggregateQuery(_ref2) {
|
|
58
66
|
router,
|
59
67
|
postFilter,
|
60
68
|
slug,
|
61
|
-
config
|
69
|
+
config,
|
70
|
+
attributeSortType
|
62
71
|
} = _ref2;
|
63
72
|
var pageType = getListingPageType(router, slug, config);
|
64
73
|
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../../src/listing/api/queries/useAggregateQuery.ts"],"names":["useQuery","CatalogAggregate","useRouter","usePredicate","useListingAlias","ListingTypesEnum","getListingPageType","buildCategoryQuery","buildFilterQuery","canUseDOM","useConfigState","AggregateRequestEnum","useAggregateQuery","aggregates","request","router","data","predicate","defaultConfig","postFilter","getPostFilters","aggregateKeys","generateAggregateKey","predicateId","_id","slug","aliasedSlug","queryKeys","toString","query","prepareAggregateQuery","config","response","refetchOnMount","refetchOnWindowFocus","enabled","isQueryEnabled","keepPreviousData","staleTime","pageType","Categories","Filters","map","aggregate","aggregationDefinition","join","Array","isArray","filter","Search","AttrPage"],"mappings":"
|
1
|
+
{"version":3,"sources":["../../../../../src/listing/api/queries/useAggregateQuery.ts"],"names":["useQuery","CatalogAggregate","useRouter","usePredicate","useListingAlias","ListingTypesEnum","getListingPageType","buildCategoryQuery","buildFilterQuery","canUseDOM","useConfigState","AggregateRequestEnum","useAggregateQuery","aggregates","request","sort","router","data","predicate","defaultConfig","postFilter","getPostFilters","aggregateKeys","generateAggregateKey","predicateId","_id","slug","aliasedSlug","queryKeys","toString","query","prepareAggregateQuery","config","attributeSortType","response","refetchOnMount","refetchOnWindowFocus","enabled","isQueryEnabled","keepPreviousData","staleTime","pageType","Categories","Filters","map","aggregate","aggregationDefinition","join","Array","isArray","filter","Search","AttrPage"],"mappings":"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","sourcesContent":["import { useQuery } from 'react-query'\nimport {\n CatalogAggregate,\n RangeAggregationResult,\n TermAggregationResult,\n RangeAggregation,\n TermAggregation,\n StatAggregation,\n} from '@sentecacommerce/sdk'\nimport { NextRouter, useRouter } from 'next/router'\nimport { usePredicate, PredicateType } from './usePredicate'\nimport { useListingAlias } from '../../hooks'\nimport { ListingTypesEnum, Aggregate, AggregateSortEnum } from '../../types'\nimport {\n getListingPageType,\n buildCategoryQuery,\n buildFilterQuery,\n} from '../../utils'\nimport { canUseDOM } from '../../../utils'\nimport { useConfigState } from '../../../index'\n\nexport type AggregationResultType = RangeAggregationResult &\n TermAggregationResult &\n RangeAggregationResult\n\nexport type AggregateType = TermAggregation & StatAggregation & RangeAggregation\n\nexport enum AggregateRequestEnum {\n Filters = 'filters',\n Categories = 'categories',\n}\n\nexport const useAggregateQuery = (\n aggregates: Aggregate[],\n request: AggregateRequestEnum,\n sort?: AggregateSortEnum\n) => {\n const router = useRouter()\n const { data: predicate } = usePredicate()\n const defaultConfig = useConfigState()\n const postFilter = getPostFilters(router)\n const aggregateKeys = generateAggregateKey(aggregates)\n const predicateId = predicate?._id\n\n const { slug: aliasedSlug } = useListingAlias()\n\n const queryKeys = [request.toString(), aggregateKeys, aliasedSlug, postFilter]\n\n return useQuery(\n queryKeys,\n async () => {\n // prevents an error in the case where a value of undefined is passed before hydration\n if (!aggregates[0]) return\n\n let query = prepareAggregateQuery({\n request,\n aggregates,\n predicate,\n router,\n postFilter,\n slug: aliasedSlug,\n config: defaultConfig,\n })\n\n if (sort) {\n query = {\n ...query,\n attributeSortType: sort,\n }\n }\n\n const response = await CatalogAggregate(query)\n\n return response\n },\n {\n refetchOnMount: false,\n refetchOnWindowFocus: false,\n enabled: isQueryEnabled(router, aliasedSlug, predicateId, defaultConfig),\n keepPreviousData: true,\n staleTime: 30000,\n }\n )\n}\n\nexport function prepareAggregateQuery({\n request,\n predicate,\n aggregates,\n router,\n postFilter,\n slug,\n config,\n attributeSortType,\n}: {\n request: AggregateRequestEnum\n aggregates: Aggregate[]\n router: NextRouter\n postFilter: string | undefined\n predicate?: PredicateType\n config?: any\n slug: string\n attributeSortType?: AggregateSortEnum\n}) {\n const pageType = getListingPageType(router, slug, config)\n\n switch (request) {\n case AggregateRequestEnum.Categories:\n return buildCategoryQuery({\n aggregates,\n predicate,\n postFilter,\n pageType,\n config,\n router,\n slug,\n })\n case AggregateRequestEnum.Filters:\n return buildFilterQuery({\n predicate,\n slug,\n pageType,\n router,\n aggregates,\n config,\n postFilter,\n })\n }\n}\n\nexport function generateAggregateKey(aggregates?: Aggregate[]) {\n return aggregates\n ?.map((aggregate) => aggregate?.aggregationDefinition)\n ?.join('&')\n}\n\nfunction getPostFilters(router: NextRouter) {\n const { query } = router\n return query && Array.isArray(query.filter)\n ? query?.filter?.join('&')\n : (query?.filter as string)\n}\n\nfunction isQueryEnabled(\n router: NextRouter,\n slug: string,\n predicate?: string,\n config?: any\n) {\n const pageType = getListingPageType(router, slug, config)\n\n if (pageType === ListingTypesEnum.Search) {\n return canUseDOM()\n }\n if (pageType === ListingTypesEnum.AttrPage) {\n return !!canUseDOM()\n }\n\n return !!predicate && canUseDOM()\n}\n"],"file":"useAggregateQuery.js"}
|
@@ -20,7 +20,7 @@ export function ListingPageProvider(_ref) {
|
|
20
20
|
return _extends({}, config, {
|
21
21
|
type: getListingPageType(router, slug, mainConfig)
|
22
22
|
});
|
23
|
-
}, [router.pathname, config.aggregates, config.categoryTreeConfig, config.defaultSortKey, config.productsPerPage, config.seoAggregates, config.sortOptions, config.filterExtension]);
|
23
|
+
}, [router.pathname, config.aggregates, config.categoryTreeConfig, config.defaultSortKey, config.productsPerPage, config.seoAggregates, config.sortOptions, config.filterExtension, config.attributeSortType]);
|
24
24
|
return /*#__PURE__*/React.createElement(ListingPageContext.Provider, {
|
25
25
|
value: data
|
26
26
|
}, /*#__PURE__*/React.createElement(ListingCategoriesProvider, null, /*#__PURE__*/React.createElement(ListingFiltersProvider, null, children)));
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/listing/hooks/useListingConfig.tsx"],"names":["React","useRouter","ListingFiltersProvider","ListingCategoriesProvider","useListingAlias","useConfigState","getListingPageType","ListingPageContext","createContext","undefined","ListingPageProvider","config","children","router","slug","mainConfig","data","useMemo","type","pathname","aggregates","categoryTreeConfig","defaultSortKey","productsPerPage","seoAggregates","sortOptions","filterExtension","useListingConfig","context","useContext","Error"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,SAAT,QAA0B,aAA1B;AACA,SAASC,sBAAT,QAAuC,qBAAvC;AACA,SAASC,yBAAT,QAA0C,wBAA1C;AACA,SAASC,eAAT,EAA0BC,cAA1B,QAAgD,aAAhD;AAEA,SAASC,kBAAT,QAAmC,UAAnC;AASA,IAAMC,kBAAkB,gBAAGP,KAAK,CAACQ,aAAN,CAEzBC,SAFyB,CAA3B;AAIA,OAAO,SAASC,mBAAT,OAGsB;AAAA,MAHO;AAClCC,IAAAA,MADkC;AAElCC,IAAAA;AAFkC,GAGP;AAC3B,MAAMC,MAAM,GAAGZ,SAAS,EAAxB;AACA,MAAM;AAAEa,IAAAA;AAAF,MAAWV,eAAe,EAAhC;AACA,MAAMW,UAAU,GAAGV,cAAc,EAAjC;AAEA,MAAMW,IAAI,GAAGhB,KAAK,CAACiB,OAAN,CAAc,MAA+B;AACxD,wBAAYN,MAAZ;AAAoBO,MAAAA,IAAI,EAAEZ,kBAAkB,CAACO,MAAD,EAASC,IAAT,EAAeC,UAAf;AAA5C;AACD,GAFY,EAEV,CACDF,MAAM,CAACM,QADN,EAEDR,MAAM,CAACS,UAFN,EAGDT,MAAM,CAACU,kBAHN,EAIDV,MAAM,CAACW,cAJN,EAKDX,MAAM,CAACY,eALN,EAMDZ,MAAM,CAACa,aANN,EAODb,MAAM,CAACc,WAPN,EAQDd,MAAM,CAACe,eARN,CAFU,CAAb;
|
1
|
+
{"version":3,"sources":["../../../../src/listing/hooks/useListingConfig.tsx"],"names":["React","useRouter","ListingFiltersProvider","ListingCategoriesProvider","useListingAlias","useConfigState","getListingPageType","ListingPageContext","createContext","undefined","ListingPageProvider","config","children","router","slug","mainConfig","data","useMemo","type","pathname","aggregates","categoryTreeConfig","defaultSortKey","productsPerPage","seoAggregates","sortOptions","filterExtension","attributeSortType","useListingConfig","context","useContext","Error"],"mappings":";AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,SAASC,SAAT,QAA0B,aAA1B;AACA,SAASC,sBAAT,QAAuC,qBAAvC;AACA,SAASC,yBAAT,QAA0C,wBAA1C;AACA,SAASC,eAAT,EAA0BC,cAA1B,QAAgD,aAAhD;AAEA,SAASC,kBAAT,QAAmC,UAAnC;AASA,IAAMC,kBAAkB,gBAAGP,KAAK,CAACQ,aAAN,CAEzBC,SAFyB,CAA3B;AAIA,OAAO,SAASC,mBAAT,OAGsB;AAAA,MAHO;AAClCC,IAAAA,MADkC;AAElCC,IAAAA;AAFkC,GAGP;AAC3B,MAAMC,MAAM,GAAGZ,SAAS,EAAxB;AACA,MAAM;AAAEa,IAAAA;AAAF,MAAWV,eAAe,EAAhC;AACA,MAAMW,UAAU,GAAGV,cAAc,EAAjC;AAEA,MAAMW,IAAI,GAAGhB,KAAK,CAACiB,OAAN,CAAc,MAA+B;AACxD,wBAAYN,MAAZ;AAAoBO,MAAAA,IAAI,EAAEZ,kBAAkB,CAACO,MAAD,EAASC,IAAT,EAAeC,UAAf;AAA5C;AACD,GAFY,EAEV,CACDF,MAAM,CAACM,QADN,EAEDR,MAAM,CAACS,UAFN,EAGDT,MAAM,CAACU,kBAHN,EAIDV,MAAM,CAACW,cAJN,EAKDX,MAAM,CAACY,eALN,EAMDZ,MAAM,CAACa,aANN,EAODb,MAAM,CAACc,WAPN,EAQDd,MAAM,CAACe,eARN,EASDf,MAAM,CAACgB,iBATN,CAFU,CAAb;AAcA,sBACE,oBAAC,kBAAD,CAAoB,QAApB;AAA6B,IAAA,KAAK,EAAEX;AAApC,kBACE,oBAAC,yBAAD,qBACE,oBAAC,sBAAD,QAAyBJ,QAAzB,CADF,CADF,CADF;AAOD;AAED,OAAO,SAASgB,gBAAT,GAA4B;AACjC,MAAMC,OAAO,GAAG7B,KAAK,CAAC8B,UAAN,CAAiBvB,kBAAjB,CAAhB;;AACA,MAAIsB,OAAO,KAAKpB,SAAhB,EAA2B;AACzB,UAAM,IAAIsB,KAAJ,CACJ,4DADI,CAAN;AAGD;;AAED,SAAOF,OAAP;AACD","sourcesContent":["import React from 'react'\nimport { useRouter } from 'next/router'\nimport { ListingFiltersProvider } from './useListingFilters'\nimport { ListingCategoriesProvider } from './useListingCategories'\nimport { useListingAlias, useConfigState } from '../../index'\nimport { DefaultListingPageProps } from '../types'\nimport { getListingPageType } from '../utils'\n\ninterface ConfigProps extends Omit<DefaultListingPageProps, 'type'> {}\n\ntype ListingPageProviderProps = {\n children: React.ReactNode\n config: ConfigProps\n}\n\nconst ListingPageContext = React.createContext<\n DefaultListingPageProps | undefined\n>(undefined)\n\nexport function ListingPageProvider({\n config,\n children,\n}: ListingPageProviderProps) {\n const router = useRouter()\n const { slug } = useListingAlias()\n const mainConfig = useConfigState()\n\n const data = React.useMemo((): DefaultListingPageProps => {\n return { ...config, type: getListingPageType(router, slug, mainConfig) }\n }, [\n router.pathname,\n config.aggregates,\n config.categoryTreeConfig,\n config.defaultSortKey,\n config.productsPerPage,\n config.seoAggregates,\n config.sortOptions,\n config.filterExtension,\n config.attributeSortType,\n ])\n\n return (\n <ListingPageContext.Provider value={data}>\n <ListingCategoriesProvider>\n <ListingFiltersProvider>{children}</ListingFiltersProvider>\n </ListingCategoriesProvider>\n </ListingPageContext.Provider>\n )\n}\n\nexport function useListingConfig() {\n const context = React.useContext(ListingPageContext)\n if (context === undefined) {\n throw new Error(\n 'useListingConfig must be used within a ListingPageProvider'\n )\n }\n\n return context\n}\n"],"file":"useListingConfig.js"}
|
@@ -16,13 +16,14 @@ export function ListingFiltersProvider(_ref) {
|
|
16
16
|
} = _ref;
|
17
17
|
var {
|
18
18
|
aggregates,
|
19
|
-
type: pageType
|
19
|
+
type: pageType,
|
20
|
+
attributeSortType
|
20
21
|
} = useListingConfig();
|
21
22
|
var {
|
22
23
|
data: aggData,
|
23
24
|
isLoading,
|
24
25
|
isFetching
|
25
|
-
} = useAggregateQuery(aggregates, AggregateRequestEnum.Filters);
|
26
|
+
} = useAggregateQuery(aggregates, AggregateRequestEnum.Filters, attributeSortType);
|
26
27
|
var config = useConfigState();
|
27
28
|
var router = useRouter();
|
28
29
|
var slug = useListingSlug();
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../../src/listing/hooks/useListingFilters.tsx"],"names":["React","useRouter","useListingConfig","useAggregateQuery","AggregateRequestEnum","ListingTypesEnum","useListingSlug","stripQueryProps","typeToSuffix","getSelectedFilters","useConfigState","ListingFiltersStateContext","createContext","undefined","ListingFiltersProvider","children","aggregates","type","pageType","data","aggData","isLoading","isFetching","Filters","config","router","slug","useMemo","result","sort","a","b","order","map","currentAggregate","aggregationType","toString","term","aggregationDefinition","split","filter","filterDefinition","current","find","agg","name","generatedFilters","generateFilters","rawFilters","selectedCount","reduce","count","res","selected","attributeResult","label","component","items","raw","clearAll","push","pathname","query","filterByType","clearAllFilters","selectedFilters","useListingFilters","context","useContext","Error","results","currentTerm","filterKey","mapKey","isFilterSelected","filtersOperatorsMap","meta","onClick","createAggregateQuery","aggType","aggKey","aggOperator","Boolean","areFiltersArray","Array","isArray","sel","includes","ranges","stats","terms","r","keysMap","key","from","to","manageFilter","pair","remove","stripped","generateQueryString","activeFilters","extractFilter","str","aggPair","operator","val","filterType","filterVal","filterOperator","Object","keys","forEach","el","applied","remaining","x","length","join","idx","Search","q","search","cat","filters","filterName"],"mappings":"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","sourcesContent":["import React from 'react'\nimport { useRouter } from 'next/router'\nimport { NextRouter } from 'next/router'\nimport { useListingConfig } from './useListingConfig'\nimport {\n useAggregateQuery,\n AggregateRequestEnum,\n AggregateType,\n AggregationResultType,\n} from '../api'\n\nimport { Aggregate, ListingTypesEnum } from '../types'\nimport { useListingSlug } from './useListingSlug'\n\nimport { stripQueryProps } from '../../utils/generateQueryFromRouter'\nimport { typeToSuffix } from '../../utils/typeToSuffix'\nimport { generateQueryStringFromQuery } from '../../utils/generateQueryStringFromQuery'\nimport {\n RangeAggregation,\n StatAggregation,\n TermAggregation,\n} from '@sentecacommerce/sdk'\nimport { getSelectedFilters } from '../../utils'\nimport { useConfigState } from '../../index'\nimport { FiltersQuery } from '../index'\n\nexport type {\n RangeAggregation,\n StatAggregation,\n TermAggregation,\n} from '@sentecacommerce/sdk'\n\ntype AggPair = {\n aggType: string\n aggKey: string\n aggOperator: string\n}\n\nexport type ListingAggregationResultType = {\n selected: boolean\n data: AggregationResultType\n meta: any\n aggregationType?: string\n onClick: () => void\n}\n\nexport type ListingAggregateType = {\n name: string\n component: string\n type: string\n selectedCount: number\n items: ListingAggregationResultType[]\n clearAll: () => void\n raw: StatAggregation | RangeAggregation | TermAggregation\n}\n\nexport type UseListingFiltersResult = {\n data?: ListingAggregateType[]\n clearAllFilters: () => void\n selectedFilters: ListingAggregationResultType[]\n isLoading: boolean\n isFetching: boolean\n}\n\nconst ListingFiltersStateContext = React.createContext<\n UseListingFiltersResult | undefined\n>(undefined)\n\nexport function ListingFiltersProvider({\n children,\n}: {\n children: React.ReactNode\n}) {\n const { aggregates, type: pageType } = useListingConfig()\n\n const { data: aggData, isLoading, isFetching } = useAggregateQuery(\n aggregates as Aggregate[],\n AggregateRequestEnum.Filters\n )\n\n const config = useConfigState()\n const router = useRouter()\n const slug = useListingSlug()\n\n const data = React.useMemo(() => {\n if (!isLoading && aggData) {\n const result = aggregates\n ?.sort((a, b) => a.order - b.order)\n .map((currentAggregate) => {\n const type = currentAggregate.aggregationType.toString()\n const term = currentAggregate.aggregationDefinition.split(':')[0]\n const filter = currentAggregate.filterDefinition\n const current: AggregateType = aggData[type].find(\n (agg: AggregateType) => agg.name === term\n )\n\n const generatedFilters = generateFilters({\n rawFilters: current,\n filter,\n router,\n type,\n slug,\n pageType,\n })\n\n const selectedCount = generatedFilters?.reduce((count, res) => {\n if (res.selected) count++\n return count\n }, 0)\n\n const attributeResult = ({\n name: currentAggregate.label,\n component: currentAggregate.component,\n items: generatedFilters,\n selectedCount,\n raw: current,\n clearAll: () =>\n router.push({\n pathname: router.pathname,\n query: {\n ...router.query,\n filter: filterByType(router.query.filter, filter),\n },\n }),\n type: type,\n } as unknown) as ListingAggregateType\n\n return attributeResult\n })\n\n return result\n }\n return undefined\n }, [aggData, router])\n\n const clearAllFilters = () => {\n const query = { ...router.query }\n delete query.filter\n\n router.push({\n pathname: router.pathname,\n query,\n })\n }\n\n const selectedFilters = React.useMemo(() => {\n return getSelectedFilters(router, slug, data as any, config) as any\n }, [router, data])\n\n return (\n <ListingFiltersStateContext.Provider\n value={{ data, clearAllFilters, selectedFilters, isLoading, isFetching }}\n >\n {children}\n </ListingFiltersStateContext.Provider>\n )\n}\n\nexport function useListingFilters() {\n const context = React.useContext(ListingFiltersStateContext)\n if (context === undefined) {\n throw new Error(\n 'useListingFilters must be used within a ListingFiltersProvider'\n )\n }\n return context\n}\n\nfunction generateFilters({\n rawFilters,\n type,\n filter,\n slug,\n router,\n pageType,\n}: {\n rawFilters: AggregateType\n type: string\n filter: string\n slug: string\n router: NextRouter\n pageType: ListingTypesEnum\n}) {\n return rawFilters.results\n ?.filter((res) => res.count > 0)\n ?.map((currentTerm) => {\n const filterKey = mapKey(currentTerm, type)\n\n const selected = isFilterSelected(\n router,\n filter,\n filterKey,\n filtersOperatorsMap[type]\n )\n\n return {\n data: currentTerm,\n selected,\n meta: currentTerm.meta,\n onClick: () => {\n router.push(\n createAggregateQuery(\n pageType,\n slug,\n {\n aggType: filter,\n aggKey: filterKey,\n aggOperator: filtersOperatorsMap[type],\n },\n Boolean(selected),\n router\n )\n )\n },\n }\n })\n}\n\nconst isFilterSelected = (\n router: NextRouter,\n filter: string,\n filterKey: any,\n type: string\n) => {\n const areFiltersArray = Array.isArray(router.query?.filter)\n\n return areFiltersArray\n ? !!(router.query.filter as string[])\n ?.find((sel: string) => sel.includes(`${filter};${type}`))\n ?.includes(filterKey)\n : router.query.filter?.includes(`${filter};${type}`) &&\n router.query.filter?.includes(filterKey)\n}\n\nexport const filtersOperatorsMap = {\n ranges: 'range',\n stats: 'range',\n terms: 'in',\n}\n\nfunction mapKey(r: any, type: any) {\n const keysMap = {\n terms: `\"${r.key}\"`,\n ranges: `${r.from},${r.to}`,\n }\n if (!keysMap[type]) return r.key\n\n return keysMap[type]\n}\n\nfunction manageFilter(pair: AggPair, query: any, remove: boolean) {\n const stripped = stripQueryProps(query, ['page']) // reset pagination on filter\n\n const result = generateQueryString(stripped, pair, remove)\n return result\n}\n\nconst generateQueryString = (\n query: FiltersQuery,\n pair: AggPair,\n remove?: boolean\n) => {\n const activeFilters = {}\n\n const extractFilter = ({\n str = '',\n aggPair,\n }: {\n str: string\n aggPair?: AggPair\n }) => {\n const [type, operator, val] = str.split(';')\n\n const filterType = aggPair?.aggType ?? type\n const filterVal = aggPair?.aggKey ?? val\n const filterOperator = aggPair?.aggOperator ?? operator\n\n if (activeFilters[filterType]) {\n activeFilters[filterType] += `,${filterVal}`\n } else {\n activeFilters[\n filterType\n ] = `filter=${filterType};${filterOperator};${filterVal}`\n }\n }\n\n Object.keys(query).forEach((el) => {\n if (Array.isArray(query[el])) {\n query[el].forEach((filter: string) => {\n extractFilter({ str: filter })\n })\n } else {\n if (el === 'sort') {\n activeFilters[el] = `sort=${query[el]}`\n } else {\n extractFilter({ str: query[el] })\n }\n }\n })\n\n if (remove) {\n const applied = activeFilters[pair.aggType].split(';')[2].split(',')\n\n const remaining = applied.filter((x: string) => !pair.aggKey.includes(x))\n\n if (remaining.length === 0) {\n activeFilters[pair.aggType] = ``\n } else {\n activeFilters[pair.aggType] = `filter=${pair.aggType};${\n pair.aggOperator\n };${remaining.join(',')}`\n }\n } else {\n extractFilter({ str: '', aggPair: pair })\n }\n\n if (Object.keys(activeFilters).length === 0) return ``\n\n return Object.keys(activeFilters).reduce((res, val, idx) => {\n res += `${idx > 0 ? '&' : ''}${activeFilters[val]}`\n return res\n }, ``)\n}\n\nfunction createAggregateQuery(\n type: ListingTypesEnum,\n slug: string,\n aggPair: AggPair,\n remove: boolean,\n router: NextRouter\n) {\n if (type === ListingTypesEnum.Search) {\n return router.query.q\n ? `/search?q=${router.query.q}&${manageFilter(\n aggPair,\n router.query,\n remove\n )}`\n : `/${slug}/c?search=${router.query.search}&${manageFilter(\n aggPair,\n router.query,\n remove\n )}`\n }\n\n if (router.query.cat) {\n return `/${router.query.slug}/${router.query.cat}/${\n typeToSuffix[type]\n }?${manageFilter(aggPair, router.query, remove)}`\n }\n\n return `/${slug}/${typeToSuffix[type]}?${manageFilter(\n aggPair,\n router.query,\n remove\n )}`\n}\n\nfunction filterByType(\n filters: string | string[] | undefined,\n filterName: string\n) {\n if (!filters) return\n\n if (typeof filters === 'string') {\n if (filters.includes(filterName)) return\n\n return filters\n }\n\n return filters.filter((filter) => !filter.includes(filterName))\n}\n"],"file":"useListingFilters.js"}
|
1
|
+
{"version":3,"sources":["../../../../src/listing/hooks/useListingFilters.tsx"],"names":["React","useRouter","useListingConfig","useAggregateQuery","AggregateRequestEnum","ListingTypesEnum","useListingSlug","stripQueryProps","typeToSuffix","getSelectedFilters","useConfigState","ListingFiltersStateContext","createContext","undefined","ListingFiltersProvider","children","aggregates","type","pageType","attributeSortType","data","aggData","isLoading","isFetching","Filters","config","router","slug","useMemo","result","sort","a","b","order","map","currentAggregate","aggregationType","toString","term","aggregationDefinition","split","filter","filterDefinition","current","find","agg","name","generatedFilters","generateFilters","rawFilters","selectedCount","reduce","count","res","selected","attributeResult","label","component","items","raw","clearAll","push","pathname","query","filterByType","clearAllFilters","selectedFilters","useListingFilters","context","useContext","Error","results","currentTerm","filterKey","mapKey","isFilterSelected","filtersOperatorsMap","meta","onClick","createAggregateQuery","aggType","aggKey","aggOperator","Boolean","areFiltersArray","Array","isArray","sel","includes","ranges","stats","terms","r","keysMap","key","from","to","manageFilter","pair","remove","stripped","generateQueryString","activeFilters","extractFilter","str","aggPair","operator","val","filterType","filterVal","filterOperator","Object","keys","forEach","el","applied","remaining","x","length","join","idx","Search","q","search","cat","filters","filterName"],"mappings":"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","sourcesContent":["import React from 'react'\nimport { useRouter } from 'next/router'\nimport { NextRouter } from 'next/router'\nimport { useListingConfig } from './useListingConfig'\nimport {\n useAggregateQuery,\n AggregateRequestEnum,\n AggregateType,\n AggregationResultType,\n} from '../api'\n\nimport { Aggregate, ListingTypesEnum } from '../types'\nimport { useListingSlug } from './useListingSlug'\n\nimport { stripQueryProps } from '../../utils/generateQueryFromRouter'\nimport { typeToSuffix } from '../../utils/typeToSuffix'\nimport { generateQueryStringFromQuery } from '../../utils/generateQueryStringFromQuery'\nimport {\n RangeAggregation,\n StatAggregation,\n TermAggregation,\n} from '@sentecacommerce/sdk'\nimport { getSelectedFilters } from '../../utils'\nimport { useConfigState } from '../../index'\nimport { FiltersQuery } from '../index'\n\nexport type {\n RangeAggregation,\n StatAggregation,\n TermAggregation,\n} from '@sentecacommerce/sdk'\n\ntype AggPair = {\n aggType: string\n aggKey: string\n aggOperator: string\n}\n\nexport type ListingAggregationResultType = {\n selected: boolean\n data: AggregationResultType\n meta: any\n aggregationType?: string\n onClick: () => void\n}\n\nexport type ListingAggregateType = {\n name: string\n component: string\n type: string\n selectedCount: number\n items: ListingAggregationResultType[]\n clearAll: () => void\n raw: StatAggregation | RangeAggregation | TermAggregation\n}\n\nexport type UseListingFiltersResult = {\n data?: ListingAggregateType[]\n clearAllFilters: () => void\n selectedFilters: ListingAggregationResultType[]\n isLoading: boolean\n isFetching: boolean\n}\n\nconst ListingFiltersStateContext = React.createContext<\n UseListingFiltersResult | undefined\n>(undefined)\n\nexport function ListingFiltersProvider({\n children,\n}: {\n children: React.ReactNode\n}) {\n const { aggregates, type: pageType, attributeSortType } = useListingConfig()\n\n const { data: aggData, isLoading, isFetching } = useAggregateQuery(\n aggregates as Aggregate[],\n AggregateRequestEnum.Filters,\n attributeSortType\n )\n\n const config = useConfigState()\n const router = useRouter()\n const slug = useListingSlug()\n\n const data = React.useMemo(() => {\n if (!isLoading && aggData) {\n const result = aggregates\n ?.sort((a, b) => a.order - b.order)\n .map((currentAggregate) => {\n const type = currentAggregate.aggregationType.toString()\n const term = currentAggregate.aggregationDefinition.split(':')[0]\n const filter = currentAggregate.filterDefinition\n const current: AggregateType = aggData[type].find(\n (agg: AggregateType) => agg.name === term\n )\n\n const generatedFilters = generateFilters({\n rawFilters: current,\n filter,\n router,\n type,\n slug,\n pageType,\n })\n\n const selectedCount = generatedFilters?.reduce((count, res) => {\n if (res.selected) count++\n return count\n }, 0)\n\n const attributeResult = ({\n name: currentAggregate.label,\n component: currentAggregate.component,\n items: generatedFilters,\n selectedCount,\n raw: current,\n clearAll: () =>\n router.push({\n pathname: router.pathname,\n query: {\n ...router.query,\n filter: filterByType(router.query.filter, filter),\n },\n }),\n type: type,\n } as unknown) as ListingAggregateType\n\n return attributeResult\n })\n\n return result\n }\n return undefined\n }, [aggData, router])\n\n const clearAllFilters = () => {\n const query = { ...router.query }\n delete query.filter\n\n router.push({\n pathname: router.pathname,\n query,\n })\n }\n\n const selectedFilters = React.useMemo(() => {\n return getSelectedFilters(router, slug, data as any, config) as any\n }, [router, data])\n\n return (\n <ListingFiltersStateContext.Provider\n value={{ data, clearAllFilters, selectedFilters, isLoading, isFetching }}\n >\n {children}\n </ListingFiltersStateContext.Provider>\n )\n}\n\nexport function useListingFilters() {\n const context = React.useContext(ListingFiltersStateContext)\n if (context === undefined) {\n throw new Error(\n 'useListingFilters must be used within a ListingFiltersProvider'\n )\n }\n return context\n}\n\nfunction generateFilters({\n rawFilters,\n type,\n filter,\n slug,\n router,\n pageType,\n}: {\n rawFilters: AggregateType\n type: string\n filter: string\n slug: string\n router: NextRouter\n pageType: ListingTypesEnum\n}) {\n return rawFilters.results\n ?.filter((res) => res.count > 0)\n ?.map((currentTerm) => {\n const filterKey = mapKey(currentTerm, type)\n\n const selected = isFilterSelected(\n router,\n filter,\n filterKey,\n filtersOperatorsMap[type]\n )\n\n return {\n data: currentTerm,\n selected,\n meta: currentTerm.meta,\n onClick: () => {\n router.push(\n createAggregateQuery(\n pageType,\n slug,\n {\n aggType: filter,\n aggKey: filterKey,\n aggOperator: filtersOperatorsMap[type],\n },\n Boolean(selected),\n router\n )\n )\n },\n }\n })\n}\n\nconst isFilterSelected = (\n router: NextRouter,\n filter: string,\n filterKey: any,\n type: string\n) => {\n const areFiltersArray = Array.isArray(router.query?.filter)\n\n return areFiltersArray\n ? !!(router.query.filter as string[])\n ?.find((sel: string) => sel.includes(`${filter};${type}`))\n ?.includes(filterKey)\n : router.query.filter?.includes(`${filter};${type}`) &&\n router.query.filter?.includes(filterKey)\n}\n\nexport const filtersOperatorsMap = {\n ranges: 'range',\n stats: 'range',\n terms: 'in',\n}\n\nfunction mapKey(r: any, type: any) {\n const keysMap = {\n terms: `\"${r.key}\"`,\n ranges: `${r.from},${r.to}`,\n }\n if (!keysMap[type]) return r.key\n\n return keysMap[type]\n}\n\nfunction manageFilter(pair: AggPair, query: any, remove: boolean) {\n const stripped = stripQueryProps(query, ['page']) // reset pagination on filter\n\n const result = generateQueryString(stripped, pair, remove)\n return result\n}\n\nconst generateQueryString = (\n query: FiltersQuery,\n pair: AggPair,\n remove?: boolean\n) => {\n const activeFilters = {}\n\n const extractFilter = ({\n str = '',\n aggPair,\n }: {\n str: string\n aggPair?: AggPair\n }) => {\n const [type, operator, val] = str.split(';')\n\n const filterType = aggPair?.aggType ?? type\n const filterVal = aggPair?.aggKey ?? val\n const filterOperator = aggPair?.aggOperator ?? operator\n\n if (activeFilters[filterType]) {\n activeFilters[filterType] += `,${filterVal}`\n } else {\n activeFilters[\n filterType\n ] = `filter=${filterType};${filterOperator};${filterVal}`\n }\n }\n\n Object.keys(query).forEach((el) => {\n if (Array.isArray(query[el])) {\n query[el].forEach((filter: string) => {\n extractFilter({ str: filter })\n })\n } else {\n if (el === 'sort') {\n activeFilters[el] = `sort=${query[el]}`\n } else {\n extractFilter({ str: query[el] })\n }\n }\n })\n\n if (remove) {\n const applied = activeFilters[pair.aggType].split(';')[2].split(',')\n\n const remaining = applied.filter((x: string) => !pair.aggKey.includes(x))\n\n if (remaining.length === 0) {\n activeFilters[pair.aggType] = ``\n } else {\n activeFilters[pair.aggType] = `filter=${pair.aggType};${\n pair.aggOperator\n };${remaining.join(',')}`\n }\n } else {\n extractFilter({ str: '', aggPair: pair })\n }\n\n if (Object.keys(activeFilters).length === 0) return ``\n\n return Object.keys(activeFilters).reduce((res, val, idx) => {\n res += `${idx > 0 ? '&' : ''}${activeFilters[val]}`\n return res\n }, ``)\n}\n\nfunction createAggregateQuery(\n type: ListingTypesEnum,\n slug: string,\n aggPair: AggPair,\n remove: boolean,\n router: NextRouter\n) {\n if (type === ListingTypesEnum.Search) {\n return router.query.q\n ? `/search?q=${router.query.q}&${manageFilter(\n aggPair,\n router.query,\n remove\n )}`\n : `/${slug}/c?search=${router.query.search}&${manageFilter(\n aggPair,\n router.query,\n remove\n )}`\n }\n\n if (router.query.cat) {\n return `/${router.query.slug}/${router.query.cat}/${\n typeToSuffix[type]\n }?${manageFilter(aggPair, router.query, remove)}`\n }\n\n return `/${slug}/${typeToSuffix[type]}?${manageFilter(\n aggPair,\n router.query,\n remove\n )}`\n}\n\nfunction filterByType(\n filters: string | string[] | undefined,\n filterName: string\n) {\n if (!filters) return\n\n if (typeof filters === 'string') {\n if (filters.includes(filterName)) return\n\n return filters\n }\n\n return filters.filter((filter) => !filter.includes(filterName))\n}\n"],"file":"useListingFilters.js"}
|
@@ -1,3 +1,10 @@
|
|
1
|
+
export var AggregateSortEnum;
|
2
|
+
|
3
|
+
(function (AggregateSortEnum) {
|
4
|
+
AggregateSortEnum["Index"] = "index";
|
5
|
+
AggregateSortEnum["Alphabetically"] = "alphabetically";
|
6
|
+
})(AggregateSortEnum || (AggregateSortEnum = {}));
|
7
|
+
|
1
8
|
export var ListingTypesEnum;
|
2
9
|
|
3
10
|
(function (ListingTypesEnum) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../../../src/listing/types.ts"],"names":["ListingTypesEnum","GenderNamesEnum","AggregationTypeEnum","ComponentTypeEnum"],"mappings":"AAwBA,WAAYA,gBAAZ;;WAAYA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;GAAAA,gB,KAAAA,gB;;AASZ,WAAYC,eAAZ;;WAAYA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;GAAAA,e,KAAAA,e;;AAMZ,WAAYC,mBAAZ;;WAAYA,mB;AAAAA,EAAAA,mB;AAAAA,EAAAA,mB;AAAAA,EAAAA,mB;GAAAA,mB,KAAAA,mB;;AAMZ,WAAYC,iBAAZ;;WAAYA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;GAAAA,iB,KAAAA,iB","sourcesContent":["import {\n BooleanField,\n TextField,\n NumberField,\n} from '@sentecacommerce-theme/base'\n\nexport type FiltersQuery = {\n storeKey?: string\n currencyCode?: string\n languageCode?: string\n priceListKey?: string\n time?: number\n merchantKey?: string\n expand?: string\n project?: string\n filter?: string\n fuzzy?: boolean\n fuzzyLevel?: string\n count?: boolean\n limit?: number\n offset?: number\n sort?: string\n}\n\nexport enum ListingTypesEnum {\n Category = 'category',\n Brand = 'brand',\n View = 'view',\n Search = 'text',\n Collection = 'collection',\n AttrPage = 'attribute page',\n}\n\nexport enum GenderNamesEnum {\n Men = 'Мъже',\n Women = 'Жени',\n Kids = 'Деца',\n}\n\nexport enum AggregationTypeEnum {\n Terms = 'terms',\n Ranges = 'ranges',\n Stats = 'stats',\n}\n\nexport enum ComponentTypeEnum {\n Text = 'text',\n TextWithLink = 'text-with-link',\n Checkbox = 'checkbox',\n Color = 'color',\n Autocomplete = 'autocomplete',\n AttributeCheckbox = 'attribute-checkbox',\n Dropdown = 'dropdown',\n RangeCheckbox = 'range-checkbox',\n RangeSlider = 'range-slider',\n}\n\nexport type Aggregate = {\n label: TextField\n aggregationType: AggregationTypeEnum\n aggregationDefinition: TextField\n filterDefinition: TextField\n order: NumberField\n collapsed?: BooleanField\n component: ComponentTypeEnum\n}\n\nexport type ListingPageSortOption = {\n key: TextField\n label: TextField\n}\n\nexport interface DefaultListingPageProps {\n type: ListingTypesEnum\n seoAggregates?: Aggregate\n aggregates?: Aggregate[]\n defaultSortKey: TextField\n categoryTreeConfig?: Aggregate\n sortOptions: ListingPageSortOption[]\n productsPerPage?: NumberField\n\n filterExtension?: TextField\n}\n"],"file":"types.js"}
|
1
|
+
{"version":3,"sources":["../../../src/listing/types.ts"],"names":["AggregateSortEnum","ListingTypesEnum","GenderNamesEnum","AggregationTypeEnum","ComponentTypeEnum"],"mappings":"AAwBA,WAAYA,iBAAZ;;WAAYA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;GAAAA,iB,KAAAA,iB;;AAKZ,WAAYC,gBAAZ;;WAAYA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;AAAAA,EAAAA,gB;GAAAA,gB,KAAAA,gB;;AASZ,WAAYC,eAAZ;;WAAYA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;AAAAA,EAAAA,e;GAAAA,e,KAAAA,e;;AAMZ,WAAYC,mBAAZ;;WAAYA,mB;AAAAA,EAAAA,mB;AAAAA,EAAAA,mB;AAAAA,EAAAA,mB;GAAAA,mB,KAAAA,mB;;AAMZ,WAAYC,iBAAZ;;WAAYA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;AAAAA,EAAAA,iB;GAAAA,iB,KAAAA,iB","sourcesContent":["import {\n BooleanField,\n TextField,\n NumberField,\n} from '@sentecacommerce-theme/base'\n\nexport type FiltersQuery = {\n storeKey?: string\n currencyCode?: string\n languageCode?: string\n priceListKey?: string\n time?: number\n merchantKey?: string\n expand?: string\n project?: string\n filter?: string\n fuzzy?: boolean\n fuzzyLevel?: string\n count?: boolean\n limit?: number\n offset?: number\n sort?: string\n}\n\nexport enum AggregateSortEnum {\n Index = 'index',\n Alphabetically = 'alphabetically',\n}\n\nexport enum ListingTypesEnum {\n Category = 'category',\n Brand = 'brand',\n View = 'view',\n Search = 'text',\n Collection = 'collection',\n AttrPage = 'attribute page',\n}\n\nexport enum GenderNamesEnum {\n Men = 'Мъже',\n Women = 'Жени',\n Kids = 'Деца',\n}\n\nexport enum AggregationTypeEnum {\n Terms = 'terms',\n Ranges = 'ranges',\n Stats = 'stats',\n}\n\nexport enum ComponentTypeEnum {\n Text = 'text',\n TextWithLink = 'text-with-link',\n Checkbox = 'checkbox',\n Color = 'color',\n Autocomplete = 'autocomplete',\n AttributeCheckbox = 'attribute-checkbox',\n Dropdown = 'dropdown',\n RangeCheckbox = 'range-checkbox',\n RangeSlider = 'range-slider',\n}\n\nexport type Aggregate = {\n label: TextField\n aggregationType: AggregationTypeEnum\n aggregationDefinition: TextField\n filterDefinition: TextField\n order: NumberField\n collapsed?: BooleanField\n component: ComponentTypeEnum\n}\n\nexport type ListingPageSortOption = {\n key: TextField\n label: TextField\n}\n\nexport interface DefaultListingPageProps {\n type: ListingTypesEnum\n seoAggregates?: Aggregate\n aggregates?: Aggregate[]\n defaultSortKey: TextField\n categoryTreeConfig?: Aggregate\n sortOptions: ListingPageSortOption[]\n productsPerPage?: NumberField\n attributeSortType?: AggregateSortEnum\n\n filterExtension?: TextField\n}\n"],"file":"types.js"}
|