ant-design/components/typography/Text.tsx
二货机器人 a9bd80916d
feat: Typography ellipsis support tooltip (#28821)
* feat: ellipsis support tooltip

* chore: Update test snapshot

* test: Coverage

* chore: fix ts definition

* clean up
2021-01-12 16:46:59 +08:00

31 lines
890 B
TypeScript

import * as React from 'react';
import omit from 'omit.js';
import devWarning from '../_util/devWarning';
import Base, { BlockProps, EllipsisConfig } from './Base';
export interface TextProps extends BlockProps {
ellipsis?: boolean | Omit<EllipsisConfig, 'expandable' | 'rows' | 'onExpand'>;
}
const Text: React.FC<TextProps> = ({ ellipsis, ...restProps }) => {
const mergedEllipsis = React.useMemo(() => {
if (ellipsis && typeof ellipsis === 'object') {
return omit(ellipsis, ['expandable', 'rows']);
}
return ellipsis;
}, [ellipsis]);
devWarning(
typeof ellipsis !== 'object' ||
!ellipsis ||
(!('expandable' in ellipsis) && !('rows' in ellipsis)),
'Typography.Text',
'`ellipsis` do not support `expandable` or `rows` props.',
);
return <Base {...restProps} ellipsis={mergedEllipsis} component="span" />;
};
export default Text;