import classNames from 'classnames'; import { Popup } from 'rc-tooltip'; import * as React from 'react'; import type { PopoverProps } from '.'; import { ConfigContext } from '../config-provider'; import { getRenderPropValue } from '../_util/getRenderPropValue'; import useStyle from './style'; import useCSSVar from './style/cssVar'; export const getOverlay = ( prefixCls: string, title?: PopoverProps['title'], content?: PopoverProps['content'], ) => { if (!title && !content) return undefined; return ( <> {title &&
{getRenderPropValue(title)}
}
{getRenderPropValue(content)}
); }; export interface PurePanelProps extends Omit { children?: React.ReactNode; } interface RawPurePanelProps extends PopoverProps { hashId: string; } export const RawPurePanel: React.FC = (props) => { const { hashId, prefixCls, className, style, placement = 'top', title, content, children, } = props; return (
{children || getOverlay(prefixCls!, title, content)}
); }; const PurePanel: React.FC = (props) => { const { prefixCls: customizePrefixCls, ...restProps } = props; const { getPrefixCls } = React.useContext(ConfigContext); const prefixCls = getPrefixCls('popover', customizePrefixCls); const [, hashId] = useStyle(prefixCls); const wrapCSSVar = useCSSVar(prefixCls); return wrapCSSVar(); }; export default PurePanel;