@crystaldesign/widget-inspiration-slider 25.7.5 → 25.8.0-beta.10

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.
@@ -1,5 +1,5 @@
1
1
  import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
- import React, { useState, useMemo, useEffect } from 'react';
2
+ import React, { useMemo, useCallback, useState, useEffect } from 'react';
3
3
  import { useCss, useProductData, replaceActions, replaceTemplatesInObject, Gallery, ActionGroup, Action, TextBlock, Text, useConfiguration } from '@crystaldesign/widget-library';
4
4
  import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
5
5
  import { useDivaCore, useTranslation, getLogger, DivaError } from '@crystaldesign/diva-core';
@@ -27,16 +27,21 @@ function useInspirationSlider(_ref) {
27
27
  settings = _ref.settings;
28
28
  useCss(settings);
29
29
  var _useProductData = useProductData({
30
- productIds: productIds
30
+ productIds: productIds,
31
+ widgetType: 'INSPIRATIONSLIDER'
31
32
  }),
32
33
  productVariants = _useProductData.productVariants,
33
34
  error = _useProductData.error,
34
- loading = _useProductData.loading;
35
- var _useState = useState(0),
36
- _useState2 = _slicedToArray(_useState, 2),
37
- selectedProductIndex = _useState2[0],
38
- setSelectedProductIndex = _useState2[1];
39
- var parsedSettings = useParsedContent(settings, productVariants, selectedProductIndex);
35
+ loading = _useProductData.loading,
36
+ selectedProduct = _useProductData.selectedProduct,
37
+ setSelectedProductId = _useProductData.setSelectedProductId;
38
+ var selectedProductIndex = selectedProduct ? productVariants.findIndex(function (p) {
39
+ return p._id === (selectedProduct === null || selectedProduct === void 0 ? void 0 : selectedProduct._id);
40
+ }) : 0;
41
+ var parsedSettings = useParsedContent(settings, productVariants, selectedProduct);
42
+ var setSelectedProductIndex = useCallback(function (index) {
43
+ setSelectedProductId(productVariants[index]._id);
44
+ }, [productVariants, setSelectedProductId]);
40
45
  return {
41
46
  productVariants: productVariants,
42
47
  error: error,
@@ -46,24 +51,20 @@ function useInspirationSlider(_ref) {
46
51
  setSelectedProductIndex: setSelectedProductIndex
47
52
  };
48
53
  }
49
- function useParsedContent(settings, productVariants, selectedProductIndex) {
54
+ function useParsedContent(settings, productVariants, selectedProduct) {
50
55
  var _useDivaCore = useDivaCore(),
51
- _useDivaCore$state$di = _useDivaCore.state.dimensions;
52
- _useDivaCore$state$di.isMobile;
53
- _useDivaCore$state$di.isPortrait;
54
- var _useDivaCore$actions = _useDivaCore.actions,
56
+ _useDivaCore$actions = _useDivaCore.actions,
55
57
  onEvent = _useDivaCore$actions.onEvent,
56
58
  openComponent = _useDivaCore$actions.openComponent;
57
59
  var _useTranslation = useTranslation(),
58
60
  i18n = _useTranslation.i18n;
59
61
  return useMemo(function () {
60
- if (!productVariants || productVariants.length === 0 || productVariants[selectedProductIndex] === undefined) return settings;
61
- var selectedProduct = productVariants[selectedProductIndex];
62
+ if (!productVariants || productVariants.length === 0 || !selectedProduct) return settings;
62
63
  var clonedContent = cloneDeep(settings);
63
64
  var withActionsContent = replaceActions(clonedContent, productVariants, selectedProduct, i18n.language, openComponent, onEvent);
64
65
  var pureContent = replaceTemplatesInObject(withActionsContent, selectedProduct, i18n.language);
65
66
  return pureContent;
66
- }, [settings, productVariants, selectedProductIndex, i18n.language]);
67
+ }, [settings, productVariants, selectedProduct, i18n.language]);
67
68
  }
68
69
 
69
70
  function styleInject(css, ref) {
@@ -569,7 +570,7 @@ function Popup(_ref) {
569
570
  }
570
571
 
571
572
  function MainComponent(props) {
572
- var _settings$callToActio, _settings$texts;
573
+ var _settings$callToActio, _settings$texts, _productVariants$sele;
573
574
  var _React$useState = React.useState(false),
574
575
  _React$useState2 = _slicedToArray(_React$useState, 2),
575
576
  disableAnimation = _React$useState2[0],
@@ -618,7 +619,7 @@ function MainComponent(props) {
618
619
  return /*#__PURE__*/jsx(TextSection, {
619
620
  config: text
620
621
  }, index);
621
- }), settings.popup && /*#__PURE__*/jsx(Popup, {
622
+ }), settings.popup && ((_productVariants$sele = productVariants[selectedProductIndex]) === null || _productVariants$sele === void 0 ? void 0 : _productVariants$sele._id) && /*#__PURE__*/jsx(Popup, {
622
623
  config: settings.popup,
623
624
  productData: productVariants,
624
625
  productId: productVariants[selectedProductIndex]._id,
@@ -6,6 +6,6 @@ export declare function useInspirationSlider({ productIds, settings }: Inspirati
6
6
  loading: boolean;
7
7
  settings: Configuration;
8
8
  selectedProductIndex: number;
9
- setSelectedProductIndex: import("react").Dispatch<import("react").SetStateAction<number>>;
9
+ setSelectedProductIndex: (index: number) => void;
10
10
  };
11
11
  //# sourceMappingURL=useInspirationSlider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useInspirationSlider.d.ts","sourceRoot":"","sources":["../../../../src/useInspirationSlider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEhE,OAAO,EAAE,WAAW,EAA+B,MAAM,0BAA0B,CAAC;AAIpF,wBAAgB,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,sBAAsB;;;;;;;EAcpF"}
1
+ {"version":3,"file":"useInspirationSlider.d.ts","sourceRoot":"","sources":["../../../../src/useInspirationSlider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEhE,OAAO,EAAE,WAAW,EAA+B,MAAM,0BAA0B,CAAC;AAIpF,wBAAgB,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,EAAE,sBAAsB;;;;;;qCAOzE,MAAM;EAcjB"}