@moda/om 15.11.3 → 15.11.4

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/index.esm.js CHANGED
@@ -11269,8 +11269,7 @@ var Popover = function Popover(_ref) {
11269
11269
  var className = _ref.className,
11270
11270
  children = _ref.children,
11271
11271
  content = _ref.content,
11272
- _ref$open = _ref.open,
11273
- open = _ref$open === void 0 ? false : _ref$open,
11272
+ open = _ref.open,
11274
11273
  _ref$anchor = _ref.anchor,
11275
11274
  anchor = _ref$anchor === void 0 ? 'topLeft' : _ref$anchor,
11276
11275
  zIndex = _ref.zIndex,
@@ -11300,18 +11299,24 @@ var Popover = function Popover(_ref) {
11300
11299
  setMode = _useState2[1];
11301
11300
 
11302
11301
  var timeout = useRef(null);
11302
+ var handleOpen = useCallback(function () {
11303
+ if (smoothTransitioning) setMode(Mode.Opening);
11304
+ if (!smoothTransitioning) setMode(Mode.Open);
11305
+ }, [smoothTransitioning]);
11306
+ var handleClose = useCallback(function () {
11307
+ if (smoothTransitioning) setMode(Mode.Closing);
11308
+ if (!smoothTransitioning) setMode(Mode.Closed);
11309
+ }, [smoothTransitioning]);
11303
11310
  var handleMouseEnter = useCallback(function () {
11304
11311
  if (!open) {
11305
11312
  timeout.current && clearTimeout(timeout.current);
11306
- setMode(smoothTransitioning ? Mode.Opening : Mode.Open);
11313
+ handleOpen();
11307
11314
  }
11308
- }, [open, smoothTransitioning]);
11315
+ }, [handleOpen, open]);
11309
11316
  var handleMouseLeave = useCallback(function () {
11310
11317
  if (open) return;
11311
- timeout.current = setTimeout(function () {
11312
- return setMode(smoothTransitioning ? Mode.Closing : Mode.Closed);
11313
- }, POPOVER_MOUSEOUT_DELAY_MS);
11314
- }, [open, smoothTransitioning]);
11318
+ timeout.current = setTimeout(handleClose, POPOVER_MOUSEOUT_DELAY_MS);
11319
+ }, [handleClose, open]);
11315
11320
  useEffect(function () {
11316
11321
  if (mode !== Mode.Closing) return;
11317
11322
  var closingTimeout = setTimeout(function () {
@@ -11341,30 +11346,15 @@ var Popover = function Popover(_ref) {
11341
11346
  }, [mode]);
11342
11347
  useEffect(function () {
11343
11348
  if (mode !== Mode.AutoOpen) return;
11344
- var stayingTimeout = setTimeout(function () {
11345
- return setMode(smoothTransitioning ? Mode.Closing : Mode.Closed);
11346
- }, 5000);
11349
+ var stayingTimeout = setTimeout(handleClose, 5000);
11347
11350
  return function () {
11348
11351
  return clearTimeout(stayingTimeout);
11349
11352
  };
11350
- }, [mode, smoothTransitioning]);
11353
+ }, [handleClose, mode, smoothTransitioning]);
11351
11354
  useEffect(function () {
11352
- if (open && smoothTransitioning) {
11353
- setMode(Mode.Opening);
11354
- }
11355
-
11356
- if (open && !smoothTransitioning) {
11357
- setMode(Mode.Open);
11358
- }
11359
-
11360
- if (!open && smoothTransitioning) {
11361
- setMode(Mode.Closing);
11362
- }
11363
-
11364
- if (!open && !smoothTransitioning) {
11365
- setMode(Mode.Closed);
11366
- }
11367
- }, [open, smoothTransitioning]);
11355
+ if (open === undefined) return;
11356
+ open ? handleOpen() : handleClose();
11357
+ }, [handleClose, handleOpen, open]);
11368
11358
  var isOpen = mode === Mode.AutoOpen || mode === Mode.Opening || mode === Mode.Open || mode === Mode.Closing;
11369
11359
  return /*#__PURE__*/React__default.createElement("div", _extends$3({
11370
11360
  className: classNames("Popover Popover--anchor-".concat(anchor), className),