mirror of
https://github.com/ant-design/ant-design.git
synced 2025-06-16 23:21:00 +08:00

Some checks are pending
Publish Any Commit / build (push) Waiting to run
✅ test v6 / lint (push) Waiting to run
✅ test v6 / test-react-legacy (18, 1/2) (push) Waiting to run
✅ test v6 / test-react-legacy (18, 2/2) (push) Waiting to run
✅ test v6 / test-node (push) Waiting to run
✅ test v6 / test-react-latest (dom, 1/2) (push) Waiting to run
✅ test v6 / test-react-latest (dom, 2/2) (push) Waiting to run
✅ test v6 / test-react-latest-dist (dist, 1/2) (push) Blocked by required conditions
✅ test v6 / test-react-latest-dist (dist, 2/2) (push) Blocked by required conditions
✅ test v6 / test-react-latest-dist (dist-min, 1/2) (push) Blocked by required conditions
✅ test v6 / test-react-latest-dist (dist-min, 2/2) (push) Blocked by required conditions
✅ test v6 / test-coverage (push) Blocked by required conditions
✅ test v6 / build (push) Waiting to run
✅ test v6 / test lib/es module (es, 1/2) (push) Waiting to run
✅ test v6 / test lib/es module (es, 2/2) (push) Waiting to run
✅ test v6 / test lib/es module (lib, 1/2) (push) Waiting to run
✅ test v6 / test lib/es module (lib, 2/2) (push) Waiting to run
👁️ Visual Regression Persist Start / test image (push) Waiting to run
* refactor: use @rc-component * chore: adjust compile * test: fix logic * chore: back of reset --------- Co-authored-by: 二货机器人 <smith3816@gmail.com>
41 lines
1.2 KiB
TypeScript
41 lines
1.2 KiB
TypeScript
import * as React from 'react';
|
|
import omit from '@rc-component/util/lib/omit';
|
|
|
|
import { devUseWarning } from '../_util/warning';
|
|
import type { BlockProps, EllipsisConfig } from './Base';
|
|
import Base from './Base';
|
|
|
|
export interface TextProps
|
|
extends BlockProps<'span'>,
|
|
Omit<React.HTMLAttributes<HTMLSpanElement>, 'type' | keyof BlockProps<'span'>> {
|
|
ellipsis?: boolean | Omit<EllipsisConfig, 'expandable' | 'rows' | 'onExpand'>;
|
|
}
|
|
|
|
const Text: React.ForwardRefRenderFunction<HTMLSpanElement, TextProps> = (
|
|
{ ellipsis, ...restProps },
|
|
ref,
|
|
) => {
|
|
const mergedEllipsis = React.useMemo(() => {
|
|
if (ellipsis && typeof ellipsis === 'object') {
|
|
return omit(ellipsis as EllipsisConfig, ['expandable', 'rows']);
|
|
}
|
|
return ellipsis;
|
|
}, [ellipsis]);
|
|
|
|
if (process.env.NODE_ENV !== 'production') {
|
|
const warning = devUseWarning('Typography.Text');
|
|
|
|
warning(
|
|
typeof ellipsis !== 'object' ||
|
|
!ellipsis ||
|
|
(!('expandable' in ellipsis) && !('rows' in ellipsis)),
|
|
'usage',
|
|
'`ellipsis` do not support `expandable` or `rows` props.',
|
|
);
|
|
}
|
|
|
|
return <Base ref={ref} {...restProps} ellipsis={mergedEllipsis} component="span" />;
|
|
};
|
|
|
|
export default React.forwardRef(Text);
|