add colSpan support
This commit is contained in:
parent
1a07807dba
commit
c05aab4e17
@ -5,8 +5,11 @@ import classnames from 'classnames';
|
|||||||
const TableCell = ({
|
const TableCell = ({
|
||||||
children,
|
children,
|
||||||
className,
|
className,
|
||||||
|
colSpan,
|
||||||
|
// ignored because we don't wan't to expose this prop
|
||||||
|
// eslint-disable-next-line react/prop-types
|
||||||
|
cellsNum,
|
||||||
isTableHead,
|
isTableHead,
|
||||||
size,
|
|
||||||
align,
|
align,
|
||||||
style,
|
style,
|
||||||
}) => {
|
}) => {
|
||||||
@ -17,10 +20,6 @@ const TableCell = ({
|
|||||||
right: 'text-right',
|
right: 'text-right',
|
||||||
justify: 'text-justify',
|
justify: 'text-justify',
|
||||||
},
|
},
|
||||||
size: {
|
|
||||||
small: 'flex-0.3',
|
|
||||||
normal: 'flex-1',
|
|
||||||
},
|
|
||||||
isTableHead: {
|
isTableHead: {
|
||||||
true: '',
|
true: '',
|
||||||
false: 'border-r border-custom-violetPale',
|
false: 'border-r border-custom-violetPale',
|
||||||
@ -31,7 +30,7 @@ const TableCell = ({
|
|||||||
<div
|
<div
|
||||||
className={classnames(
|
className={classnames(
|
||||||
'px-2 last:border-r-0 break-all',
|
'px-2 last:border-r-0 break-all',
|
||||||
classes.size[size],
|
`w-${colSpan}/${cellsNum}`,
|
||||||
classes.align[align],
|
classes.align[align],
|
||||||
classes.isTableHead[isTableHead],
|
classes.isTableHead[isTableHead],
|
||||||
className
|
className
|
||||||
@ -44,20 +43,20 @@ const TableCell = ({
|
|||||||
};
|
};
|
||||||
|
|
||||||
TableCell.defaultProps = {
|
TableCell.defaultProps = {
|
||||||
className: '',
|
|
||||||
isTableHead: false,
|
|
||||||
size: 'normal',
|
|
||||||
style: {},
|
|
||||||
align: 'left',
|
align: 'left',
|
||||||
|
className: '',
|
||||||
|
colSpan: 1,
|
||||||
|
isTableHead: false,
|
||||||
|
style: {},
|
||||||
};
|
};
|
||||||
|
|
||||||
TableCell.propTypes = {
|
TableCell.propTypes = {
|
||||||
isTableHead: PropTypes.bool,
|
align: PropTypes.oneOf(['left', 'center', 'right', 'justify']),
|
||||||
children: PropTypes.node.isRequired,
|
children: PropTypes.node.isRequired,
|
||||||
className: PropTypes.string,
|
className: PropTypes.string,
|
||||||
size: PropTypes.oneOf(['small', 'normal']),
|
colSpan: PropTypes.number,
|
||||||
|
isTableHead: PropTypes.bool,
|
||||||
style: PropTypes.object,
|
style: PropTypes.object,
|
||||||
align: PropTypes.oneOf(['left', 'center', 'right', 'justify']),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default TableCell;
|
export default TableCell;
|
||||||
|
|||||||
@ -7,7 +7,7 @@ const TableRow = ({ children, className, isTableHead, style }) => {
|
|||||||
const isValidReactElement = React.isValidElement(child);
|
const isValidReactElement = React.isValidElement(child);
|
||||||
|
|
||||||
return isValidReactElement
|
return isValidReactElement
|
||||||
? React.cloneElement(child, { isTableHead })
|
? React.cloneElement(child, { isTableHead, cellsNum: children.length })
|
||||||
: children;
|
: children;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user