@atlaskit/portal
Version:
A wrapper for rendering components in React portals.
24 lines • 1.17 kB
JavaScript
import React from 'react';
import { fg } from '@atlaskit/platform-feature-flags';
import InternalPortal from './internal/components/internal-portal';
import InternalPortalNew from './internal/components/internal-portal-new';
import useIsSubsequentRender from './internal/hooks/use-is-subsequent-render';
import useFirePortalEvent from './internal/hooks/use-portal-event';
export default function Portal(_ref) {
var _ref$zIndex = _ref.zIndex,
zIndex = _ref$zIndex === void 0 ? 0 : _ref$zIndex,
children = _ref.children,
_ref$mountStrategy = _ref.mountStrategy,
mountStrategy = _ref$mountStrategy === void 0 ? 'effect' : _ref$mountStrategy,
_ref$isClosed = _ref.isClosed,
isClosed = _ref$isClosed === void 0 ? false : _ref$isClosed;
var isSubsequentRender = useIsSubsequentRender(mountStrategy);
useFirePortalEvent(zIndex);
return !fg('platform_design_system_team_portal_logic_r18_fix') ? isSubsequentRender ? /*#__PURE__*/React.createElement(InternalPortal, {
zIndex: zIndex,
isClosed: isClosed
}, children) : null : /*#__PURE__*/React.createElement(InternalPortalNew, {
zIndex: zIndex,
isClosed: isClosed
}, children);
}