mirror of
https://github.com/ant-design/ant-design.git
synced 2024-11-27 04:36:19 +08:00
d766472d94
* feat: add less variable @descriptions-item-trailing-colon,@descriptions-it,@descriptions-item-label-colon-margin-leftem-label-colon-margin-right, * fix * Update demo.test.js.snap
72 lines
1.4 KiB
TypeScript
72 lines
1.4 KiB
TypeScript
import * as React from 'react';
|
|
import classNames from 'classnames';
|
|
|
|
function notEmpty(val: any) {
|
|
return val !== undefined && val !== null;
|
|
}
|
|
|
|
export interface CellProps {
|
|
itemPrefixCls: string;
|
|
span: number;
|
|
className?: string;
|
|
component: string;
|
|
style?: React.CSSProperties;
|
|
bordered?: boolean;
|
|
label?: React.ReactNode;
|
|
content?: React.ReactNode;
|
|
colon?: boolean;
|
|
}
|
|
|
|
const Cell: React.FC<CellProps> = ({
|
|
itemPrefixCls,
|
|
component,
|
|
span,
|
|
className,
|
|
style,
|
|
bordered,
|
|
label,
|
|
content,
|
|
colon,
|
|
}) => {
|
|
const Component = component as any;
|
|
|
|
if (bordered) {
|
|
return (
|
|
<Component
|
|
className={classNames(
|
|
{
|
|
[`${itemPrefixCls}-item-label`]: notEmpty(label),
|
|
[`${itemPrefixCls}-item-content`]: notEmpty(content),
|
|
},
|
|
className,
|
|
)}
|
|
style={style}
|
|
colSpan={span}
|
|
>
|
|
{notEmpty(label) ? label : content}
|
|
</Component>
|
|
);
|
|
}
|
|
|
|
return (
|
|
<Component
|
|
className={classNames(`${itemPrefixCls}-item`, className)}
|
|
style={style}
|
|
colSpan={span}
|
|
>
|
|
{label && (
|
|
<span
|
|
className={classNames(`${itemPrefixCls}-item-label`, {
|
|
[`${itemPrefixCls}-item-no-colon`]: !colon,
|
|
})}
|
|
>
|
|
{label}
|
|
</span>
|
|
)}
|
|
{content && <span className={classNames(`${itemPrefixCls}-item-content`)}>{content}</span>}
|
|
</Component>
|
|
);
|
|
};
|
|
|
|
export default Cell;
|