@atlaskit/popup
Version:
A popup displays brief content in an overlay.
145 lines (144 loc) • 7.57 kB
JavaScript
/* 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;
});