import { Popover } from 'antd'; import React, { CSSProperties, useState } from 'react'; const ellipsisDefaultStyle: CSSProperties = { overflow: 'hidden', overflowWrap: 'break-word', textOverflow: 'ellipsis', whiteSpace: 'nowrap', wordBreak: 'break-all', }; export const EllipsisWithTooltip = (props) => { const [ellipsis, setEllipsis] = useState(false); const [visible, setVisible] = useState(false); if (!props.ellipsis) { return <>{props.children}; } const { popoverContent } = props; return ( { setVisible(ellipsis && visible); }} content={
{popoverContent || props.children}
} >
{ const el = e.target as any; setEllipsis(el.scrollWidth > el.clientWidth); }} > {props.children}
); };