@gravity-ui/page-constructor 2.13.1 → 2.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (40) 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.js +1 -1
  12. package/build/cjs/components/ReactPlayer/ReactPlayer.js +1 -1
  13. package/build/cjs/components/VideoBlock/VideoBlock.js +1 -1
  14. package/build/cjs/components/YandexForm/YandexForm.js +1 -1
  15. package/build/cjs/hooks/hubspot.js +2 -2
  16. package/build/cjs/hooks/useFocus.js +3 -3
  17. package/build/cjs/hooks/useHeightCalculator.js +1 -1
  18. package/build/cjs/hooks/useWindowBreakpoint.js +1 -1
  19. package/build/cjs/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.js +1 -1
  20. package/build/cjs/sub-blocks/PriceDetailed/PriceDescription/PriceDescription.js +1 -1
  21. package/build/esm/blocks/Slider/Slider.js +1 -1
  22. package/build/esm/components/BalancedMasonry/BalancedMasonry.js +1 -1
  23. package/build/esm/components/FullWidthBackground/FullWidthBackground.js +1 -1
  24. package/build/esm/components/HeightCalculator/HeightCalculator.js +1 -1
  25. package/build/esm/components/Map/GoogleMap.js +1 -1
  26. package/build/esm/components/Map/YMap/YandexMap.js +1 -1
  27. package/build/esm/components/Media/Image/Image.js +1 -1
  28. package/build/esm/components/Media/Video/Video.js +1 -1
  29. package/build/esm/components/OutsideClick/OutsideClick.js +1 -1
  30. package/build/esm/components/OverflowScroller/OverflowScroller.js +1 -1
  31. package/build/esm/components/ReactPlayer/ReactPlayer.js +1 -1
  32. package/build/esm/components/VideoBlock/VideoBlock.js +1 -1
  33. package/build/esm/components/YandexForm/YandexForm.js +1 -1
  34. package/build/esm/hooks/hubspot.js +2 -2
  35. package/build/esm/hooks/useFocus.js +3 -3
  36. package/build/esm/hooks/useHeightCalculator.js +1 -1
  37. package/build/esm/hooks/useWindowBreakpoint.js +1 -1
  38. package/build/esm/sub-blocks/PriceDetailed/CombinedPriceDetailed/CombinedPriceDetailed.js +1 -1
  39. package/build/esm/sub-blocks/PriceDetailed/PriceDescription/PriceDescription.js +1 -1
  40. package/package.json +1 -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);
@@ -60,7 +60,7 @@ class OverflowScroller extends react_1.default.Component {
60
60
  }
61
61
  componentDidMount() {
62
62
  this.checkOverflow();
63
- window.addEventListener('resize', this.checkOverflow);
63
+ window.addEventListener('resize', this.checkOverflow, { passive: true });
64
64
  }
65
65
  componentDidUpdate(_prepvProps, { scrollValue: prevScrollValue }) {
66
66
  const { onScrollEnd } = this.props;
@@ -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);
@@ -58,7 +58,7 @@ export default class OverflowScroller extends React.Component {
58
58
  }
59
59
  componentDidMount() {
60
60
  this.checkOverflow();
61
- window.addEventListener('resize', this.checkOverflow);
61
+ window.addEventListener('resize', this.checkOverflow, { passive: true });
62
62
  }
63
63
  componentDidUpdate(_prepvProps, { scrollValue: prevScrollValue }) {
64
64
  const { onScrollEnd } = this.props;
@@ -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.14.0",
4
4
  "description": "Gravity UI Page Constructor",
5
5
  "license": "MIT",
6
6
  "repository": {