@gravity-ui/page-constructor 2.13.1 → 2.15.0-alpha

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.
Files changed (42) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/build/cjs/blocks/Slider/Slider.js +1 -1
  3. package/build/cjs/components/BalancedMasonry/BalancedMasonry.js +1 -1
  4. package/build/cjs/components/FullWidthBackground/FullWidthBackground.js +1 -1
  5. package/build/cjs/components/HeightCalculator/HeightCalculator.js +1 -1
  6. package/build/cjs/components/Map/GoogleMap.js +1 -1
  7. package/build/cjs/components/Map/YMap/YandexMap.js +1 -1
  8. package/build/cjs/components/Media/Image/Image.js +1 -1
  9. package/build/cjs/components/Media/Video/Video.js +1 -1
  10. package/build/cjs/components/OutsideClick/OutsideClick.js +1 -1
  11. package/build/cjs/components/OverflowScroller/OverflowScroller.d.ts +2 -0
  12. package/build/cjs/components/OverflowScroller/OverflowScroller.js +5 -4
  13. package/build/cjs/components/ReactPlayer/ReactPlayer.js +1 -1
  14. package/build/cjs/components/VideoBlock/VideoBlock.js +1 -1
  15. package/build/cjs/components/YandexForm/YandexForm.js +1 -1
  16. package/build/cjs/hooks/hubspot.js +2 -2
  17. package/build/cjs/hooks/useFocus.js +3 -3
  18. package/build/cjs/hooks/useHeightCalculator.js +1 -1
  19. package/build/cjs/hooks/useWindowBreakpoint.js +1 -1
  20. package/build/cjs/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.js +1 -1
  21. package/build/cjs/sub-blocks/PriceDetailed/PriceDescription/PriceDescription.js +1 -1
  22. package/build/esm/blocks/Slider/Slider.js +1 -1
  23. package/build/esm/components/BalancedMasonry/BalancedMasonry.js +1 -1
  24. package/build/esm/components/FullWidthBackground/FullWidthBackground.js +1 -1
  25. package/build/esm/components/HeightCalculator/HeightCalculator.js +1 -1
  26. package/build/esm/components/Map/GoogleMap.js +1 -1
  27. package/build/esm/components/Map/YMap/YandexMap.js +1 -1
  28. package/build/esm/components/Media/Image/Image.js +1 -1
  29. package/build/esm/components/Media/Video/Video.js +1 -1
  30. package/build/esm/components/OutsideClick/OutsideClick.js +1 -1
  31. package/build/esm/components/OverflowScroller/OverflowScroller.d.ts +2 -0
  32. package/build/esm/components/OverflowScroller/OverflowScroller.js +5 -4
  33. package/build/esm/components/ReactPlayer/ReactPlayer.js +1 -1
  34. package/build/esm/components/VideoBlock/VideoBlock.js +1 -1
  35. package/build/esm/components/YandexForm/YandexForm.js +1 -1
  36. package/build/esm/hooks/hubspot.js +2 -2
  37. package/build/esm/hooks/useFocus.js +3 -3
  38. package/build/esm/hooks/useHeightCalculator.js +1 -1
  39. package/build/esm/hooks/useWindowBreakpoint.js +1 -1
  40. package/build/esm/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.js +1 -1
  41. package/build/esm/sub-blocks/PriceDetailed/PriceDescription/PriceDescription.js +1 -1
  42. package/package.json +4 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.14.0](https://github.com/gravity-ui/page-constructor/compare/v2.13.1...v2.14.0) (2023-05-02)
4
+
5
+
6
+ ### Features
7
+
8
+ * add passive flage to every addEventListener ([#318](https://github.com/gravity-ui/page-constructor/issues/318)) ([b1b7447](https://github.com/gravity-ui/page-constructor/commit/b1b7447b16b64afaf5ecea1db3ddf7ee9eeec534))
9
+
3
10
  ## [2.13.1](https://github.com/gravity-ui/page-constructor/compare/v2.13.0...v2.13.1) (2023-05-02)
4
11
 
5
12
 
@@ -83,7 +83,7 @@ const SliderBlock = (props) => {
83
83
  }, [currentIndex, hasFocus, scrollLastSlide]);
84
84
  (0, react_1.useEffect)(() => {
85
85
  onResize();
86
- window.addEventListener('resize', onResize);
86
+ window.addEventListener('resize', onResize, { passive: true });
87
87
  return () => window.removeEventListener('resize', onResize);
88
88
  }, [onResize]);
89
89
  const handleArrowClick = (0, react_1.useCallback)((direction) => {
@@ -57,7 +57,7 @@ const BalancedMasonry = (props) => {
57
57
  }, [balanceColumns, children, columnCount]);
58
58
  (0, react_1.useEffect)(() => {
59
59
  const updateColumnCounter = () => setColumnCount(getCurrentColumnsCount());
60
- window.addEventListener('resize', updateColumnCounter);
60
+ window.addEventListener('resize', updateColumnCounter, { passive: true });
61
61
  return () => window.removeEventListener('resize', updateColumnCounter);
62
62
  }, [setColumnCount, columns, getCurrentColumnsCount]);
63
63
  (0, react_1.useEffect)(() => {
@@ -30,7 +30,7 @@ class FullWidthBackground extends react_1.Component {
30
30
  if ((_b = (_a = this === null || this === void 0 ? void 0 : this.ref) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.parentElement) {
31
31
  this.ref.current.parentElement.style.position = 'relative';
32
32
  this.setBg();
33
- window.addEventListener('resize', this.setBg);
33
+ window.addEventListener('resize', this.setBg, { passive: true });
34
34
  }
35
35
  }
36
36
  componentWillUnmount() {
@@ -34,7 +34,7 @@ const HeightCalculator = ({ onCalculate, children }) => {
34
34
  calculateContainerHeight();
35
35
  }, 1000);
36
36
  calculateContainerHeight();
37
- window.addEventListener('resize', handleResize);
37
+ window.addEventListener('resize', handleResize, { passive: true });
38
38
  return () => window.removeEventListener('resize', handleResize);
39
39
  }, [calculateContainerHeight]);
40
40
  return isCalculating ? (react_1.default.createElement("div", { className: b(), ref: container }, react_1.Children.map(children, (child, index) => {
@@ -29,7 +29,7 @@ const GoogleMap = (props) => {
29
29
  }
30
30
  }, 100);
31
31
  updateSize();
32
- window.addEventListener('resize', updateSize);
32
+ window.addEventListener('resize', updateSize, { passive: true });
33
33
  return () => {
34
34
  window.removeEventListener('resize', updateSize);
35
35
  };
@@ -56,7 +56,7 @@ const YandexMap = (props) => {
56
56
  }
57
57
  }, 100);
58
58
  updateSize();
59
- window.addEventListener('resize', updateSize);
59
+ window.addEventListener('resize', updateSize, { passive: true });
60
60
  return () => {
61
61
  window.removeEventListener('resize', updateSize);
62
62
  };
@@ -23,7 +23,7 @@ const Image = (props) => {
23
23
  (0, react_1.useEffect)(() => {
24
24
  if (parallax) {
25
25
  const handleScroll = () => setScrollY(window.scrollY);
26
- window.addEventListener('scroll', lodash_1.default.debounce(handleScroll, 5));
26
+ window.addEventListener('scroll', lodash_1.default.debounce(handleScroll, 5), { passive: true });
27
27
  return () => window.removeEventListener('scroll', lodash_1.default.debounce(handleScroll, 5));
28
28
  }
29
29
  return () => { };
@@ -22,7 +22,7 @@ const Video = (props) => {
22
22
  videoRef.currentTime = start;
23
23
  videoRef.play().catch(() => setHasVideoFallback(true));
24
24
  }
25
- });
25
+ }, { passive: true });
26
26
  }
27
27
  if (playVideo) {
28
28
  ref.current.play().catch(() => setHasVideoFallback(true));
@@ -17,7 +17,7 @@ class OutsideClick extends react_1.default.Component {
17
17
  };
18
18
  }
19
19
  componentDidMount() {
20
- document.addEventListener('click', this.handleOutsideClick);
20
+ document.addEventListener('click', this.handleOutsideClick, { passive: true });
21
21
  }
22
22
  componentWillUnmount() {
23
23
  document.removeEventListener('click', this.handleOutsideClick);
@@ -4,6 +4,8 @@ export interface OverflowScrollerProps {
4
4
  className?: string;
5
5
  onScrollStart?: () => void;
6
6
  onScrollEnd?: () => void;
7
+ arrowSize?: number;
8
+ arrowClassName?: string;
7
9
  }
8
10
  export interface OverflowScrollerState {
9
11
  arrows: Arrow[];
@@ -8,6 +8,7 @@ const utils_1 = require("../../utils");
8
8
  const b = (0, utils_1.block)('overflow-scroller');
9
9
  const TRANSITION_TIME = 300;
10
10
  const PADDING_SIZE = 24;
11
+ const DEFAULT_ARROW_SIZE = 18;
11
12
  class OverflowScroller extends react_1.default.Component {
12
13
  constructor() {
13
14
  super(...arguments);
@@ -60,7 +61,7 @@ class OverflowScroller extends react_1.default.Component {
60
61
  }
61
62
  componentDidMount() {
62
63
  this.checkOverflow();
63
- window.addEventListener('resize', this.checkOverflow);
64
+ window.addEventListener('resize', this.checkOverflow, { passive: true });
64
65
  }
65
66
  componentDidUpdate(_prepvProps, { scrollValue: prevScrollValue }) {
66
67
  const { onScrollEnd } = this.props;
@@ -72,7 +73,7 @@ class OverflowScroller extends react_1.default.Component {
72
73
  window.removeEventListener('resize', this.checkOverflow);
73
74
  }
74
75
  render() {
75
- const { className, children } = this.props;
76
+ const { className, arrowClassName, children, arrowSize = DEFAULT_ARROW_SIZE } = this.props;
76
77
  const { arrows, scrollValue } = this.state;
77
78
  const wrapperStyle = arrows.length ? { left: -scrollValue } : { left: 0 };
78
79
  const paddingLeft = arrows.includes('left');
@@ -83,8 +84,8 @@ class OverflowScroller extends react_1.default.Component {
83
84
  }) },
84
85
  react_1.default.createElement("div", { className: b(null, className), ref: this.containerRef },
85
86
  react_1.default.createElement("div", { className: b('wrapper'), style: wrapperStyle, ref: this.wrapperRef }, children)),
86
- arrows.map((direction) => (react_1.default.createElement("div", { key: direction, className: b('arrow', { type: direction }), onClick: (e) => this.handleScrollClick(e, direction) },
87
- react_1.default.createElement(__1.ToggleArrow, { size: 18, type: 'horizontal', iconType: "navigation" }))))));
87
+ arrows.map((direction) => (react_1.default.createElement("div", { key: direction, className: b('arrow', { type: direction }, arrowClassName), onClick: (e) => this.handleScrollClick(e, direction) },
88
+ react_1.default.createElement(__1.ToggleArrow, { size: arrowSize, type: 'horizontal', iconType: "navigation" }))))));
88
89
  }
89
90
  }
90
91
  exports.default = OverflowScroller;
@@ -87,7 +87,7 @@ exports.ReactPlayerBlock = react_1.default.forwardRef((props, originRef) => {
87
87
  }
88
88
  }, 200);
89
89
  updateSize();
90
- window.addEventListener('resize', updateSize);
90
+ window.addEventListener('resize', updateSize, { passive: true });
91
91
  return () => {
92
92
  window.removeEventListener('resize', updateSize);
93
93
  };
@@ -58,7 +58,7 @@ const VideoBlock = (props) => {
58
58
  setCurrentHeight(ref.current ? Math.round(getHeight(ref.current.offsetWidth)) : undefined);
59
59
  }, 100);
60
60
  updateSize();
61
- window.addEventListener('resize', updateSize);
61
+ window.addEventListener('resize', updateSize, { passive: true });
62
62
  return () => {
63
63
  window.removeEventListener('resize', updateSize);
64
64
  };
@@ -101,7 +101,7 @@ const YandexForm = (props) => {
101
101
  const container = formContainerRef.current;
102
102
  if (container) {
103
103
  updateFormIframe(container);
104
- window.addEventListener('message', handleMessage);
104
+ window.addEventListener('message', handleMessage, { passive: true });
105
105
  }
106
106
  }, [updateFormIframe, handleMessage]);
107
107
  (0, react_1.useEffect)(() => {
@@ -12,7 +12,7 @@ const hubspot_1 = require("../utils/hubspot");
12
12
  function useLoopBackHubspotEvents(formId) {
13
13
  (0, react_1.useEffect)(() => {
14
14
  const topHandler = (0, hubspot_1.loopBackHabspotEvents)(formId);
15
- window.addEventListener('message', topHandler);
15
+ window.addEventListener('message', topHandler, { passive: true });
16
16
  return () => {
17
17
  window.removeEventListener('message', topHandler);
18
18
  };
@@ -29,7 +29,7 @@ exports.useLoopBackHubspotEvents = useLoopBackHubspotEvents;
29
29
  function useHandleHubspotEvents(handlers, formId) {
30
30
  (0, react_1.useEffect)(() => {
31
31
  const topHandler = (0, hubspot_1.handleHubspotEvents)(handlers, formId);
32
- window.addEventListener('message', topHandler);
32
+ window.addEventListener('message', topHandler, { passive: true });
33
33
  return () => {
34
34
  window.removeEventListener('message', topHandler);
35
35
  };
@@ -12,11 +12,11 @@ function useFocus(element) {
12
12
  (0, react_1.useEffect)(() => {
13
13
  if (element) {
14
14
  if (isMobile) {
15
- element.addEventListener('pointerdown', setFocus);
15
+ element.addEventListener('pointerdown', setFocus, { passive: true });
16
16
  }
17
17
  else {
18
- element.addEventListener('mouseenter', setFocus);
19
- element.addEventListener('mouseleave', unsetFocus);
18
+ element.addEventListener('mouseenter', setFocus, { passive: true });
19
+ element.addEventListener('mouseleave', unsetFocus, { passive: true });
20
20
  }
21
21
  return () => {
22
22
  if (isMobile) {
@@ -17,7 +17,7 @@ const useHeightCalculator = (containerRef, options = DEFAULT_OPTIONS) => {
17
17
  (0, react_1.useEffect)(() => {
18
18
  const handleResize = lodash_1.default.debounce(calculateContainerHeight, recalculateOnResizeDelay);
19
19
  calculateContainerHeight();
20
- window.addEventListener('resize', handleResize);
20
+ window.addEventListener('resize', handleResize, { passive: true });
21
21
  return () => {
22
22
  window.removeEventListener('resize', handleResize);
23
23
  };
@@ -25,7 +25,7 @@ function useWindowBreakpoint() {
25
25
  setBreakpoint(calculate(window.innerWidth));
26
26
  }, 100);
27
27
  detect();
28
- window.addEventListener('resize', detect);
28
+ window.addEventListener('resize', detect, { passive: true });
29
29
  return () => window.removeEventListener('resize', detect);
30
30
  }, []);
31
31
  return breakpoint;
@@ -35,7 +35,7 @@ const CombinedPriceDetailed = (props) => {
35
35
  updateGroupItemsSize(window.innerWidth);
36
36
  }
37
37
  handleResize();
38
- window.addEventListener('resize', handleResize);
38
+ window.addEventListener('resize', handleResize, { passive: true });
39
39
  return () => window.removeEventListener('resize', handleResize);
40
40
  }, [updateGroupItemsSize]);
41
41
  const getPrice = (groupPrices) => {
@@ -30,7 +30,7 @@ const PriceDescription = (props) => {
30
30
  }, [pricesDetailedDescriptionHeight, setStyles]);
31
31
  (0, react_1.useEffect)(() => {
32
32
  setDescriptionHeight();
33
- window.addEventListener('resize', setDescriptionHeight);
33
+ window.addEventListener('resize', setDescriptionHeight, { passive: true });
34
34
  return () => window.removeEventListener('resize', setDescriptionHeight);
35
35
  }, [setDescriptionHeight]);
36
36
  const labelElement = (0, react_1.useMemo)(() => {
@@ -81,7 +81,7 @@ export const SliderBlock = (props) => {
81
81
  }, [currentIndex, hasFocus, scrollLastSlide]);
82
82
  useEffect(() => {
83
83
  onResize();
84
- window.addEventListener('resize', onResize);
84
+ window.addEventListener('resize', onResize, { passive: true });
85
85
  return () => window.removeEventListener('resize', onResize);
86
86
  }, [onResize]);
87
87
  const handleArrowClick = useCallback((direction) => {
@@ -55,7 +55,7 @@ const BalancedMasonry = (props) => {
55
55
  }, [balanceColumns, children, columnCount]);
56
56
  useEffect(() => {
57
57
  const updateColumnCounter = () => setColumnCount(getCurrentColumnsCount());
58
- window.addEventListener('resize', updateColumnCounter);
58
+ window.addEventListener('resize', updateColumnCounter, { passive: true });
59
59
  return () => window.removeEventListener('resize', updateColumnCounter);
60
60
  }, [setColumnCount, columns, getCurrentColumnsCount]);
61
61
  useEffect(() => {
@@ -28,7 +28,7 @@ export default class FullWidthBackground extends Component {
28
28
  if ((_b = (_a = this === null || this === void 0 ? void 0 : this.ref) === null || _a === void 0 ? void 0 : _a.current) === null || _b === void 0 ? void 0 : _b.parentElement) {
29
29
  this.ref.current.parentElement.style.position = 'relative';
30
30
  this.setBg();
31
- window.addEventListener('resize', this.setBg);
31
+ window.addEventListener('resize', this.setBg, { passive: true });
32
32
  }
33
33
  }
34
34
  componentWillUnmount() {
@@ -32,7 +32,7 @@ const HeightCalculator = ({ onCalculate, children }) => {
32
32
  calculateContainerHeight();
33
33
  }, 1000);
34
34
  calculateContainerHeight();
35
- window.addEventListener('resize', handleResize);
35
+ window.addEventListener('resize', handleResize, { passive: true });
36
36
  return () => window.removeEventListener('resize', handleResize);
37
37
  }, [calculateContainerHeight]);
38
38
  return isCalculating ? (React.createElement("div", { className: b(), ref: container }, Children.map(children, (child, index) => {
@@ -26,7 +26,7 @@ const GoogleMap = (props) => {
26
26
  }
27
27
  }, 100);
28
28
  updateSize();
29
- window.addEventListener('resize', updateSize);
29
+ window.addEventListener('resize', updateSize, { passive: true });
30
30
  return () => {
31
31
  window.removeEventListener('resize', updateSize);
32
32
  };
@@ -53,7 +53,7 @@ const YandexMap = (props) => {
53
53
  }
54
54
  }, 100);
55
55
  updateSize();
56
- window.addEventListener('resize', updateSize);
56
+ window.addEventListener('resize', updateSize, { passive: true });
57
57
  return () => {
58
58
  window.removeEventListener('resize', updateSize);
59
59
  };
@@ -21,7 +21,7 @@ const Image = (props) => {
21
21
  useEffect(() => {
22
22
  if (parallax) {
23
23
  const handleScroll = () => setScrollY(window.scrollY);
24
- window.addEventListener('scroll', _.debounce(handleScroll, 5));
24
+ window.addEventListener('scroll', _.debounce(handleScroll, 5), { passive: true });
25
25
  return () => window.removeEventListener('scroll', _.debounce(handleScroll, 5));
26
26
  }
27
27
  return () => { };
@@ -20,7 +20,7 @@ const Video = (props) => {
20
20
  videoRef.currentTime = start;
21
21
  videoRef.play().catch(() => setHasVideoFallback(true));
22
22
  }
23
- });
23
+ }, { passive: true });
24
24
  }
25
25
  if (playVideo) {
26
26
  ref.current.play().catch(() => setHasVideoFallback(true));
@@ -14,7 +14,7 @@ export default class OutsideClick extends React.Component {
14
14
  };
15
15
  }
16
16
  componentDidMount() {
17
- document.addEventListener('click', this.handleOutsideClick);
17
+ document.addEventListener('click', this.handleOutsideClick, { passive: true });
18
18
  }
19
19
  componentWillUnmount() {
20
20
  document.removeEventListener('click', this.handleOutsideClick);
@@ -5,6 +5,8 @@ export interface OverflowScrollerProps {
5
5
  className?: string;
6
6
  onScrollStart?: () => void;
7
7
  onScrollEnd?: () => void;
8
+ arrowSize?: number;
9
+ arrowClassName?: string;
8
10
  }
9
11
  export interface OverflowScrollerState {
10
12
  arrows: Arrow[];
@@ -6,6 +6,7 @@ import './OverflowScroller.css';
6
6
  const b = block('overflow-scroller');
7
7
  const TRANSITION_TIME = 300;
8
8
  const PADDING_SIZE = 24;
9
+ const DEFAULT_ARROW_SIZE = 18;
9
10
  export default class OverflowScroller extends React.Component {
10
11
  constructor() {
11
12
  super(...arguments);
@@ -58,7 +59,7 @@ export default class OverflowScroller extends React.Component {
58
59
  }
59
60
  componentDidMount() {
60
61
  this.checkOverflow();
61
- window.addEventListener('resize', this.checkOverflow);
62
+ window.addEventListener('resize', this.checkOverflow, { passive: true });
62
63
  }
63
64
  componentDidUpdate(_prepvProps, { scrollValue: prevScrollValue }) {
64
65
  const { onScrollEnd } = this.props;
@@ -70,7 +71,7 @@ export default class OverflowScroller extends React.Component {
70
71
  window.removeEventListener('resize', this.checkOverflow);
71
72
  }
72
73
  render() {
73
- const { className, children } = this.props;
74
+ const { className, arrowClassName, children, arrowSize = DEFAULT_ARROW_SIZE } = this.props;
74
75
  const { arrows, scrollValue } = this.state;
75
76
  const wrapperStyle = arrows.length ? { left: -scrollValue } : { left: 0 };
76
77
  const paddingLeft = arrows.includes('left');
@@ -81,7 +82,7 @@ export default class OverflowScroller extends React.Component {
81
82
  }) },
82
83
  React.createElement("div", { className: b(null, className), ref: this.containerRef },
83
84
  React.createElement("div", { className: b('wrapper'), style: wrapperStyle, ref: this.wrapperRef }, children)),
84
- arrows.map((direction) => (React.createElement("div", { key: direction, className: b('arrow', { type: direction }), onClick: (e) => this.handleScrollClick(e, direction) },
85
- React.createElement(ToggleArrow, { size: 18, type: 'horizontal', iconType: "navigation" }))))));
85
+ arrows.map((direction) => (React.createElement("div", { key: direction, className: b('arrow', { type: direction }, arrowClassName), onClick: (e) => this.handleScrollClick(e, direction) },
86
+ React.createElement(ToggleArrow, { size: arrowSize, type: 'horizontal', iconType: "navigation" }))))));
86
87
  }
87
88
  }
@@ -84,7 +84,7 @@ export const ReactPlayerBlock = React.forwardRef((props, originRef) => {
84
84
  }
85
85
  }, 200);
86
86
  updateSize();
87
- window.addEventListener('resize', updateSize);
87
+ window.addEventListener('resize', updateSize, { passive: true });
88
88
  return () => {
89
89
  window.removeEventListener('resize', updateSize);
90
90
  };
@@ -54,7 +54,7 @@ const VideoBlock = (props) => {
54
54
  setCurrentHeight(ref.current ? Math.round(getHeight(ref.current.offsetWidth)) : undefined);
55
55
  }, 100);
56
56
  updateSize();
57
- window.addEventListener('resize', updateSize);
57
+ window.addEventListener('resize', updateSize, { passive: true });
58
58
  return () => {
59
59
  window.removeEventListener('resize', updateSize);
60
60
  };
@@ -97,7 +97,7 @@ const YandexForm = (props) => {
97
97
  const container = formContainerRef.current;
98
98
  if (container) {
99
99
  updateFormIframe(container);
100
- window.addEventListener('message', handleMessage);
100
+ window.addEventListener('message', handleMessage, { passive: true });
101
101
  }
102
102
  }, [updateFormIframe, handleMessage]);
103
103
  useEffect(() => {
@@ -9,7 +9,7 @@ import { handleHubspotEvents, loopBackHabspotEvents } from '../utils/hubspot';
9
9
  export function useLoopBackHubspotEvents(formId) {
10
10
  useEffect(() => {
11
11
  const topHandler = loopBackHabspotEvents(formId);
12
- window.addEventListener('message', topHandler);
12
+ window.addEventListener('message', topHandler, { passive: true });
13
13
  return () => {
14
14
  window.removeEventListener('message', topHandler);
15
15
  };
@@ -25,7 +25,7 @@ export function useLoopBackHubspotEvents(formId) {
25
25
  export function useHandleHubspotEvents(handlers, formId) {
26
26
  useEffect(() => {
27
27
  const topHandler = handleHubspotEvents(handlers, formId);
28
- window.addEventListener('message', topHandler);
28
+ window.addEventListener('message', topHandler, { passive: true });
29
29
  return () => {
30
30
  window.removeEventListener('message', topHandler);
31
31
  };
@@ -9,11 +9,11 @@ export default function useFocus(element) {
9
9
  useEffect(() => {
10
10
  if (element) {
11
11
  if (isMobile) {
12
- element.addEventListener('pointerdown', setFocus);
12
+ element.addEventListener('pointerdown', setFocus, { passive: true });
13
13
  }
14
14
  else {
15
- element.addEventListener('mouseenter', setFocus);
16
- element.addEventListener('mouseleave', unsetFocus);
15
+ element.addEventListener('mouseenter', setFocus, { passive: true });
16
+ element.addEventListener('mouseleave', unsetFocus, { passive: true });
17
17
  }
18
18
  return () => {
19
19
  if (isMobile) {
@@ -14,7 +14,7 @@ const useHeightCalculator = (containerRef, options = DEFAULT_OPTIONS) => {
14
14
  useEffect(() => {
15
15
  const handleResize = _.debounce(calculateContainerHeight, recalculateOnResizeDelay);
16
16
  calculateContainerHeight();
17
- window.addEventListener('resize', handleResize);
17
+ window.addEventListener('resize', handleResize, { passive: true });
18
18
  return () => {
19
19
  window.removeEventListener('resize', handleResize);
20
20
  };
@@ -22,7 +22,7 @@ export default function useWindowBreakpoint() {
22
22
  setBreakpoint(calculate(window.innerWidth));
23
23
  }, 100);
24
24
  detect();
25
- window.addEventListener('resize', detect);
25
+ window.addEventListener('resize', detect, { passive: true });
26
26
  return () => window.removeEventListener('resize', detect);
27
27
  }, []);
28
28
  return breakpoint;
@@ -33,7 +33,7 @@ const CombinedPriceDetailed = (props) => {
33
33
  updateGroupItemsSize(window.innerWidth);
34
34
  }
35
35
  handleResize();
36
- window.addEventListener('resize', handleResize);
36
+ window.addEventListener('resize', handleResize, { passive: true });
37
37
  return () => window.removeEventListener('resize', handleResize);
38
38
  }, [updateGroupItemsSize]);
39
39
  const getPrice = (groupPrices) => {
@@ -28,7 +28,7 @@ const PriceDescription = (props) => {
28
28
  }, [pricesDetailedDescriptionHeight, setStyles]);
29
29
  useEffect(() => {
30
30
  setDescriptionHeight();
31
- window.addEventListener('resize', setDescriptionHeight);
31
+ window.addEventListener('resize', setDescriptionHeight, { passive: true });
32
32
  return () => window.removeEventListener('resize', setDescriptionHeight);
33
33
  }, [setDescriptionHeight]);
34
34
  const labelElement = useMemo(() => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gravity-ui/page-constructor",
3
- "version": "2.13.1",
3
+ "version": "2.15.0-alpha",
4
4
  "description": "Gravity UI Page Constructor",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -138,5 +138,8 @@
138
138
  "*.{json,yaml,yml,md}": [
139
139
  "prettier --write"
140
140
  ]
141
+ },
142
+ "publishConfig": {
143
+ "tag": "alpha"
141
144
  }
142
145
  }