UNPKG

antd

Version:

An enterprise-class UI design language and React components implementation

45 lines (44 loc) 1.24 kB
"use client"; import React from 'react'; import { UniqueProvider as RcUniqueProvider } from '@rc-component/trigger'; import MotionContent from './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.createElement(MotionContent, { key: id }, popupEle), builtinPlacements: parsedPlacements }; }; return /*#__PURE__*/React.createElement(RcUniqueProvider, { postTriggerProps: renderPopup }, children); }; export default UniqueProvider;