import * as React from 'react'; import type { JSX } from 'react'; import classNames from 'classnames'; import DescriptionsContext from './DescriptionsContext'; function notEmpty(val: any) { return val !== undefined && val !== null; } export interface CellProps { itemPrefixCls: string; span: number; className?: string; component: string; style?: React.CSSProperties; /** @deprecated Please use `styles={{ label: {} }}` instead */ labelStyle?: React.CSSProperties; /** @deprecated Please use `styles={{ content: {} }}` instead */ contentStyle?: React.CSSProperties; styles?: { label?: React.CSSProperties; content?: React.CSSProperties; }; classNames?: { label?: string; content?: string; }; bordered?: boolean; label?: React.ReactNode; content?: React.ReactNode; colon?: boolean; type?: 'label' | 'content' | 'item'; } const Cell: React.FC = (props) => { const { itemPrefixCls, component, span, className, style, labelStyle, contentStyle, bordered, label, content, colon, type, styles, } = props; const Component = component as keyof JSX.IntrinsicElements; const descContext = React.useContext(DescriptionsContext); const { classNames: descriptionsClassNames } = descContext; if (bordered) { return ( {notEmpty(label) && {label}} {notEmpty(content) && {content}} ); } return (
{(label || label === 0) && ( {label} )} {(content || content === 0) && ( {content} )}
); }; export default Cell;