@meduza/ui-kit-2 0.1.13 → 0.1.15

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.
@@ -611,7 +611,7 @@ var Footnote = function Footnote(_ref) {
611
611
  }, children));
612
612
  };
613
613
 
614
- var styles$7 = {"root":"DotsOnImage-module_root__2XP3Q","dot":"DotsOnImage-module_dot__H1wua","isActive":"DotsOnImage-module_isActive__3hh31","popover":"DotsOnImage-module_popover__35Cpj","isRight":"DotsOnImage-module_isRight__2RsJe","isTop":"DotsOnImage-module_isTop__3zmSK","isLeft":"DotsOnImage-module_isLeft__3quc9","isBottom":"DotsOnImage-module_isBottom__3Nk1T","popoverTitle":"DotsOnImage-module_popoverTitle__343d8","popoverBody":"DotsOnImage-module_popoverBody__2MSn7","popoverText":"DotsOnImage-module_popoverText__3v02w","dismiss":"DotsOnImage-module_dismiss__1EWXd"};
614
+ var styles$7 = {"root":"DotsOnImage-module_root__2XP3Q","isVisible":"DotsOnImage-module_isVisible__Wqqqt","dot":"DotsOnImage-module_dot__H1wua","show":"DotsOnImage-module_show__2TMBv","isActive":"DotsOnImage-module_isActive__3hh31","popover":"DotsOnImage-module_popover__35Cpj","isRight":"DotsOnImage-module_isRight__2RsJe","isTop":"DotsOnImage-module_isTop__3zmSK","isLeft":"DotsOnImage-module_isLeft__3quc9","isBottom":"DotsOnImage-module_isBottom__3Nk1T"};
615
615
 
616
616
  var DotsOnImage = function DotsOnImage(_ref) {
617
617
  var _ref$block = _ref.block,
@@ -622,6 +622,15 @@ var DotsOnImage = function DotsOnImage(_ref) {
622
622
  display = _ref$block.display,
623
623
  dots = _ref$block.dots;
624
624
 
625
+ var _useInView = reactIntersectionObserver.useInView({
626
+ threshold: 0.5
627
+ }),
628
+ ref = _useInView[0],
629
+ inView = _useInView[1],
630
+ entry = _useInView[2];
631
+
632
+ var container = React.useRef(null);
633
+
625
634
  var _useState = React.useState({
626
635
  title: null,
627
636
  body: null,
@@ -631,6 +640,42 @@ var DotsOnImage = function DotsOnImage(_ref) {
631
640
  popover = _useState[0],
632
641
  setPopover = _useState[1];
633
642
 
643
+ var _useState2 = React.useState(false),
644
+ visible = _useState2[0],
645
+ setVisible = _useState2[1];
646
+
647
+ React.useEffect(function () {
648
+ if (entry && entry.boundingClientRect && entry.boundingClientRect.y < 0) {
649
+ setVisible(true);
650
+ }
651
+ }, [entry]);
652
+ React.useEffect(function () {
653
+ if (inView) {
654
+ setVisible(true);
655
+ }
656
+ }, [inView]);
657
+ React.useEffect(function () {
658
+ if (popover.id) {
659
+ document.addEventListener('click', handleClickOutside);
660
+ } else {
661
+ document.removeEventListener('click', handleClickOutside);
662
+ }
663
+
664
+ return function () {
665
+ return document.removeEventListener('click', handleClickOutside);
666
+ };
667
+ }, [popover]);
668
+
669
+ var handleClickOutside = function handleClickOutside(event) {
670
+ var path = event.composedPath();
671
+
672
+ if (path.indexOf(container.current) === -1) {
673
+ setPopover({
674
+ show: false
675
+ });
676
+ }
677
+ };
678
+
634
679
  var handleDotClick = function handleDotClick(dot) {
635
680
  var shouldShow = dot.id !== popover.id;
636
681
  var side = dot.position.x > 50 ? 'isLeft' : 'isRight';
@@ -651,10 +696,21 @@ var DotsOnImage = function DotsOnImage(_ref) {
651
696
  };
652
697
 
653
698
  return React__default.createElement("div", {
699
+ className: makeClassName([[styles$7.root, true], [styles$7.isVisible, visible]]),
654
700
  "data-testid": "dots-on-image",
655
- className: styles$7.root
656
- }, React__default.createElement("div", {
657
- className: styles$7.dots
701
+ ref: ref
702
+ }, React__default.createElement(Image, {
703
+ optimized: optimized,
704
+ width: width,
705
+ height: height,
706
+ alt: credit,
707
+ display: display,
708
+ fullscreen: {
709
+ mobile: false,
710
+ desktop: false
711
+ }
712
+ }), React__default.createElement("div", {
713
+ ref: container
658
714
  }, dots.map(function (dot) {
659
715
  return React__default.createElement("button", {
660
716
  className: makeClassName([[styles$7.dot, true], [styles$7.isActive, dot.id === popover.id]]),
@@ -673,19 +729,7 @@ var DotsOnImage = function DotsOnImage(_ref) {
673
729
  __html: dot.icon.svg_string
674
730
  }
675
731
  }), dot.icon.type === 'number' && dot.icon.number);
676
- })), React__default.createElement("div", {
677
- className: styles$7.image
678
- }, React__default.createElement(Image, {
679
- optimized: optimized,
680
- width: width,
681
- height: height,
682
- alt: credit,
683
- display: display,
684
- fullscreen: {
685
- mobile: false,
686
- desktop: false
687
- }
688
- })), popover.show && React__default.createElement(React__default.Fragment, null, viewportSize().width >= MediaQuerySizes.LANDSCAPE_TABLET ? React__default.createElement("div", {
732
+ }), popover.show && React__default.createElement(React__default.Fragment, null, viewportSize().width >= MediaQuerySizes.LANDSCAPE_TABLET ? React__default.createElement("div", {
689
733
  className: makeClassName([[styles$7.popover, true], [styles$7[popover.side], !!popover.side], [styles$7[popover.align], !!popover.align]]),
690
734
  style: popover.style
691
735
  }, React__default.createElement(Footnote, {
@@ -694,7 +738,7 @@ var DotsOnImage = function DotsOnImage(_ref) {
694
738
  show: false
695
739
  });
696
740
  }
697
- }, React__default.createElement("h3", null, popover.title), React__default.createElement("div", {
741
+ }, popover.title && React__default.createElement("h3", null, popover.title), React__default.createElement("div", {
698
742
  dangerouslySetInnerHTML: {
699
743
  __html: popover.body
700
744
  }
@@ -704,11 +748,11 @@ var DotsOnImage = function DotsOnImage(_ref) {
704
748
  show: false
705
749
  });
706
750
  }
707
- }, React__default.createElement("h3", null, popover.title), React__default.createElement("div", {
751
+ }, popover.title && React__default.createElement("h3", null, popover.title), React__default.createElement("div", {
708
752
  dangerouslySetInnerHTML: {
709
753
  __html: popover.body
710
754
  }
711
- }))));
755
+ })))));
712
756
  };
713
757
 
714
758
  var makeStyleContext = function makeStyleContext(classNames, styleContext, styles) {