ant-design/components/typography/hooks/useTooltipProps.ts
afc163 9f274a0884
refactor: reimplement Typography code (#50561)
Co-authored-by: lijianan <574980606@qq.com>
2024-08-27 22:08:04 +08:00

23 lines
689 B
TypeScript

import { isValidElement, useMemo } from 'react';
import type { TooltipProps } from '../../tooltip';
const useTooltipProps = (
tooltip: React.ReactNode | TooltipProps,
editConfigText: React.ReactNode,
children: React.ReactNode,
) =>
useMemo(() => {
if (tooltip === true) {
return { title: editConfigText ?? children };
}
if (isValidElement(tooltip)) {
return { title: tooltip };
}
if (typeof tooltip === 'object') {
return { title: editConfigText ?? children, ...tooltip };
}
return { title: tooltip };
}, [typeof tooltip === 'object' ? JSON.stringify(tooltip) : tooltip, editConfigText, children]);
export default useTooltipProps;