@7shifts/sous-chef 3.44.11 → 3.44.12

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.js CHANGED
@@ -6342,12 +6342,12 @@ var DropdownPane = function DropdownPane(props) {
6342
6342
  if (!isOpen) {
6343
6343
  return null;
6344
6344
  }
6345
- return React__default.createElement(PaneOverlay, _extends({}, props));
6345
+ return React__default.createElement(Portal, null, React__default.createElement(PaneOverlay, _extends({}, props)));
6346
6346
  };
6347
6347
  var PaneOverlay = function PaneOverlay(_ref) {
6348
6348
  var _classNames;
6349
6349
  var width = _ref.width,
6350
- maxHeight = _ref.maxHeight,
6350
+ customMaxHeight = _ref.maxHeight,
6351
6351
  alignment = _ref.alignment,
6352
6352
  onMouseEnter = _ref.onMouseEnter,
6353
6353
  onMouseLeave = _ref.onMouseLeave,
@@ -6362,6 +6362,31 @@ var PaneOverlay = function PaneOverlay(_ref) {
6362
6362
  var _useState = React.useState({}),
6363
6363
  position = _useState[0],
6364
6364
  setPosition = _useState[1];
6365
+ var _useState2 = React.useState(function () {
6366
+ if (!triggerRef || !('current' in triggerRef) || !(triggerRef !== null && triggerRef !== void 0 && triggerRef.current)) {
6367
+ return customMaxHeight;
6368
+ }
6369
+ var triggerPosition = triggerRef.current.getBoundingClientRect();
6370
+ var MIN_HEIGHT_FIT = 200;
6371
+ var triggerDistanceFromTheBottom = window.innerHeight - triggerPosition.top + triggerPosition.height;
6372
+ if (triggerDistanceFromTheBottom > MIN_HEIGHT_FIT) {
6373
+ return triggerDistanceFromTheBottom - 14;
6374
+ }
6375
+ return triggerPosition.top - 14;
6376
+ }),
6377
+ maxHeight = _useState2[0];
6378
+ React.useEffect(function () {
6379
+ var handleScroll = function handleScroll(e) {
6380
+ var _paneRef$current;
6381
+ if (e.target !== paneRef.current && !((_paneRef$current = paneRef.current) !== null && _paneRef$current !== void 0 && _paneRef$current.contains(e.target))) {
6382
+ onToggleDropdown();
6383
+ }
6384
+ };
6385
+ window.addEventListener('scroll', handleScroll, true);
6386
+ return function () {
6387
+ window.removeEventListener('scroll', handleScroll, true);
6388
+ };
6389
+ }, [onToggleDropdown, paneRef]);
6365
6390
  useOnClickOutsideRole('dialog', onToggleDropdown);
6366
6391
  React.useLayoutEffect(function () {
6367
6392
  if (!triggerRef || !('current' in triggerRef) || !(triggerRef !== null && triggerRef !== void 0 && triggerRef.current) || !(paneRef !== null && paneRef !== void 0 && paneRef.current)) {
@@ -6373,7 +6398,7 @@ var PaneOverlay = function PaneOverlay(_ref) {
6373
6398
  setPosition(pos);
6374
6399
  }, [triggerRef, alignment, paneRef]);
6375
6400
  useKeyPress(['Escape'], onToggleDropdown);
6376
- var overflow = maxHeight ? 'scroll' : undefined;
6401
+ var overflow = maxHeight ? 'auto' : undefined;
6377
6402
  return React__default.createElement("div", {
6378
6403
  className: classnames(styles$f['dropdown-pane'], (_classNames = {}, _classNames[styles$f['dropdown-pane--with-padding']] = true, _classNames)),
6379
6404
  style: _extends({}, position, {