import * as React from 'react'; import classNames from 'classnames'; import { Popup } from 'rc-tooltip'; import type { PopoverProps } from '.'; import { getRenderPropValue } from '../_util/getRenderPropValue'; import { ConfigContext } from '../config-provider'; import useStyle from './style'; interface OverlayProps { prefixCls?: string; title?: React.ReactNode; content?: React.ReactNode; } export const Overlay: React.FC = ({ title, content, prefixCls }) => { if (!title && !content) { return null; } return ( <> {title &&
{title}
} {content &&
{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; const titleNode = getRenderPropValue(title); const contentNode = getRenderPropValue(content); const cls = classNames( hashId, prefixCls, `${prefixCls}-pure`, `${prefixCls}-placement-${placement}`, className, ); return (
{children || }
); }; const PurePanel: React.FC = (props) => { const { prefixCls: customizePrefixCls, className, ...restProps } = props; const { getPrefixCls } = React.useContext(ConfigContext); const prefixCls = getPrefixCls('popover', customizePrefixCls); const [wrapCSSVar, hashId, cssVarCls] = useStyle(prefixCls); return wrapCSSVar( , ); }; export default PurePanel;