mirror of
https://github.com/ant-design/ant-design.git
synced 2024-12-12 15:19:58 +08:00
338ec7dad7
* pref: better code style for production * refactor `devWarning` * don't use `useEffect` only wrap `devWarning` * chore: add 'noop' to coverage * chore: add test cases for devWarning * chore: add test case * chore: update test cases for devWarning * chore: restore test script command * fix: remove 'throw new Error' * should not use `throw` for browser * chore: update test case for AutoComplete * perf: add prefix for `devWarning` * update RegExp for UMD * add prefix for ES and CJS * chore: better code style * perf: * upgrade antd-tools * remove `injectWarningCondition` * rename `devWarning` to `warning` * chore: better code style * chore: better code style * chore: restore hasValidName
36 lines
1.0 KiB
TypeScript
36 lines
1.0 KiB
TypeScript
import * as React from 'react';
|
|
import omit from 'rc-util/lib/omit';
|
|
import warning from '../_util/warning';
|
|
import type { BlockProps, EllipsisConfig } from './Base';
|
|
import Base from './Base';
|
|
|
|
export interface TextProps extends BlockProps {
|
|
ellipsis?: boolean | Omit<EllipsisConfig, 'expandable' | 'rows' | 'onExpand'>;
|
|
onClick?: (e?: React.MouseEvent<HTMLDivElement>) => void;
|
|
}
|
|
|
|
const Text: React.ForwardRefRenderFunction<HTMLSpanElement, TextProps> = (
|
|
{ ellipsis, ...restProps },
|
|
ref,
|
|
) => {
|
|
const mergedEllipsis = React.useMemo(() => {
|
|
if (ellipsis && typeof ellipsis === 'object') {
|
|
return omit(ellipsis as any, ['expandable', 'rows']);
|
|
}
|
|
|
|
return ellipsis;
|
|
}, [ellipsis]);
|
|
|
|
warning(
|
|
typeof ellipsis !== 'object' ||
|
|
!ellipsis ||
|
|
(!('expandable' in ellipsis) && !('rows' in ellipsis)),
|
|
'Typography.Text',
|
|
'`ellipsis` do not support `expandable` or `rows` props.',
|
|
);
|
|
|
|
return <Base ref={ref} {...restProps} ellipsis={mergedEllipsis} component="span" />;
|
|
};
|
|
|
|
export default React.forwardRef(Text);
|