UNPKG

@atlaskit/popup

Version:

A popup displays brief content in an overlay.

145 lines (144 loc) 7.57 kB
/* popup.tsx generated by @compiled/babel-plugin v0.39.1 */ "use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.Popup = void 0; require("./popup.compiled.css"); var _react = _interopRequireWildcard(require("react")); var React = _react; var _runtime = require("@compiled/react/runtime"); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _useId = require("@atlaskit/ds-lib/use-id"); var _layering = require("@atlaskit/layering"); var _openLayerObserver = require("@atlaskit/layering/experimental/open-layer-observer"); var _exitingPersistence = _interopRequireDefault(require("@atlaskit/motion/exiting-persistence")); var _platformFeatureFlags = require("@atlaskit/platform-feature-flags"); var _popper = require("@atlaskit/popper"); var _portal = _interopRequireDefault(require("@atlaskit/portal")); var _compiled = require("@atlaskit/primitives/compiled"); var _popperWrapper = _interopRequireDefault(require("./popper-wrapper")); var _useAppearance = require("./use-appearance"); var _useGetMemoizedMergedTriggerRef = require("./use-get-memoized-merged-trigger-ref"); var _useGetMemoizedMergedTriggerRefNew = require("./use-get-memoized-merged-trigger-ref-new"); function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); } /* eslint-disable @repo/internal/react/require-jsdoc */ var defaultLayer = 400; var wrapperStyles = { root: "_kqswh2mm" }; var Popup = exports.Popup = /*#__PURE__*/(0, _react.memo)(function (_ref) { var xcss = _ref.xcss, _ref$appearance = _ref.appearance, inAppearance = _ref$appearance === void 0 ? 'default' : _ref$appearance, isOpen = _ref.isOpen, providedId = _ref.id, offset = _ref.offset, testId = _ref.testId, trigger = _ref.trigger, content = _ref.content, onClose = _ref.onClose, boundary = _ref.boundary, _ref$rootBoundary = _ref.rootBoundary, rootBoundary = _ref$rootBoundary === void 0 ? 'viewport' : _ref$rootBoundary, _ref$shouldFlip = _ref.shouldFlip, shouldFlip = _ref$shouldFlip === void 0 ? true : _ref$shouldFlip, _ref$placement = _ref.placement, placement = _ref$placement === void 0 ? 'auto' : _ref$placement, fallbackPlacements = _ref.fallbackPlacements, PopupContainer = _ref.popupComponent, _ref$autoFocus = _ref.autoFocus, autoFocus = _ref$autoFocus === void 0 ? true : _ref$autoFocus, _ref$zIndex = _ref.zIndex, zIndex = _ref$zIndex === void 0 ? defaultLayer : _ref$zIndex, _ref$shouldUseCapture = _ref.shouldUseCaptureOnOutsideClick, shouldUseCaptureOnOutsideClick = _ref$shouldUseCapture === void 0 ? false : _ref$shouldUseCapture, _ref$shouldRenderToPa = _ref.shouldRenderToParent, inShouldRenderToParent = _ref$shouldRenderToPa === void 0 ? false : _ref$shouldRenderToPa, _ref$shouldFitContain = _ref.shouldFitContainer, shouldFitContainer = _ref$shouldFitContain === void 0 ? false : _ref$shouldFitContain, _ref$shouldDisableFoc = _ref.shouldDisableFocusLock, shouldDisableFocusLock = _ref$shouldDisableFoc === void 0 ? false : _ref$shouldDisableFoc, _ref$shouldReturnFocu = _ref.shouldReturnFocus, shouldReturnFocus = _ref$shouldReturnFocu === void 0 ? true : _ref$shouldReturnFocu, strategy = _ref.strategy, role = _ref.role, label = _ref.label, titleId = _ref.titleId, modifiers = _ref.modifiers, shouldFitViewport = _ref.shouldFitViewport; var _useState = (0, _react.useState)(null), _useState2 = (0, _slicedToArray2.default)(_useState, 2), triggerRef = _useState2[0], setTriggerRef = _useState2[1]; var getMergedTriggerRef = (0, _useGetMemoizedMergedTriggerRef.useGetMemoizedMergedTriggerRef)(); var getMergedTriggerRefNew = (0, _useGetMemoizedMergedTriggerRefNew.useGetMemoizedMergedTriggerRefNew)(); var generatedId = (0, _useId.useId)(); var _usePopupAppearance = (0, _useAppearance.usePopupAppearance)({ appearance: inAppearance, shouldRenderToParent: inShouldRenderToParent }), appearance = _usePopupAppearance.appearance, shouldRenderToParent = _usePopupAppearance.shouldRenderToParent; var id = providedId || generatedId; var handleOpenLayerObserverCloseSignal = (0, _react.useCallback)(function () { onClose === null || onClose === void 0 || onClose(null); }, [onClose]); (0, _openLayerObserver.useNotifyOpenLayerObserver)({ isOpen: isOpen, onClose: handleOpenLayerObserverCloseSignal, type: 'popup' }); var renderPopperWrapper = /*#__PURE__*/React.createElement(_layering.Layering, { isDisabled: false }, /*#__PURE__*/React.createElement(_popperWrapper.default, { xcss: xcss, appearance: appearance, content: content, isOpen: isOpen, placement: placement, fallbackPlacements: fallbackPlacements, boundary: boundary, rootBoundary: rootBoundary, shouldFlip: shouldFlip, offset: offset, popupComponent: PopupContainer, id: id, testId: testId, onClose: onClose, autoFocus: autoFocus, shouldUseCaptureOnOutsideClick: shouldUseCaptureOnOutsideClick, shouldRenderToParent: shouldRenderToParent || shouldFitContainer, shouldFitContainer: shouldFitContainer, shouldDisableFocusLock: shouldDisableFocusLock, shouldReturnFocus: shouldReturnFocus, triggerRef: triggerRef, strategy: shouldFitContainer ? 'absolute' : strategy, role: role, label: label, titleId: titleId, modifiers: modifiers, shouldFitViewport: shouldFitViewport })); var popupContent = /*#__PURE__*/React.createElement(_popper.Manager, null, /*#__PURE__*/React.createElement(_popper.Reference, null, function (_ref2) { var ref = _ref2.ref; return trigger({ ref: !(0, _platformFeatureFlags.fg)('platform-design-system-popup-ref') ? getMergedTriggerRef(ref, setTriggerRef, isOpen) : getMergedTriggerRefNew(ref, setTriggerRef), 'aria-controls': isOpen ? id : undefined, 'aria-expanded': isOpen, 'aria-haspopup': role === 'dialog' && (0, _platformFeatureFlags.fg)('platform_dst_popup-disable-focuslock') ? 'dialog' : true }); }), !(0, _platformFeatureFlags.fg)('platform-dst-motion-uplift') && isOpen && (shouldRenderToParent || shouldFitContainer ? renderPopperWrapper : /*#__PURE__*/React.createElement(_portal.default, { zIndex: zIndex }, renderPopperWrapper)), (0, _platformFeatureFlags.fg)('platform-dst-motion-uplift') && /*#__PURE__*/React.createElement(_exitingPersistence.default, null, isOpen && (shouldRenderToParent || shouldFitContainer ? renderPopperWrapper : /*#__PURE__*/React.createElement(_portal.default, { zIndex: zIndex }, renderPopperWrapper)))); if (shouldFitContainer) { return /*#__PURE__*/React.createElement(_compiled.Box, { xcss: wrapperStyles.root }, popupContent); } return popupContent; });