antd
Version:
An enterprise-class UI design language and React components implementation
51 lines (50 loc) • 1.51 kB
JavaScript
;
"use client";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _trigger = require("@rc-component/trigger");
var _MotionContent = _interopRequireDefault(require("./MotionContent"));
const cachedPlacements = [null, null];
function uniqueBuiltinPlacements(ori) {
if (cachedPlacements[0] !== ori) {
const target = {};
Object.keys(ori).forEach(placement => {
target[placement] = {
...ori[placement],
dynamicInset: false
};
});
cachedPlacements[0] = ori;
cachedPlacements[1] = target;
}
return cachedPlacements[1];
}
const UniqueProvider = ({
children
}) => {
const renderPopup = options => {
const popupEle = typeof options.popup === 'function' ? options.popup() : options.popup;
const {
id,
builtinPlacements
} = options;
const parsedPlacements = uniqueBuiltinPlacements(builtinPlacements);
return {
...options,
getPopupContainer: null,
arrow: false,
popup: /*#__PURE__*/_react.default.createElement(_MotionContent.default, {
key: id
}, popupEle),
builtinPlacements: parsedPlacements
};
};
return /*#__PURE__*/_react.default.createElement(_trigger.UniqueProvider, {
postTriggerProps: renderPopup
}, children);
};
var _default = exports.default = UniqueProvider;