import { Resizable } from 'react-resizable';
import style from './index.less';
const ResizableTitle = (props) => {
const { onResize, width, ...restProps } = props;
const { className, ...rest } = restProps;
if (!width) {
return
| ;
}
return (
{
e.stopPropagation();
}}
/>
}
onResize={onResize}
draggableOpts={{ enableUserSelectHack: false }}
>
|
);
};
export const components = {
header: {
cell: ResizableTitle,
},
};
export const handleResize =
(index, columns, setColumns) =>
(_, { size }) => {
const newColumns = [...columns];
newColumns[index] = {
...newColumns[index],
width: size.width,
};
setColumns(newColumns);
};
export const getMergeColumns = (columns, setColumns) => {
const mergeColumns = columns.map((col, index) => ({
...col,
onHeaderCell: (column) => ({
width: column.width,
onResize: handleResize(index, columns, (value) => setColumns(value)),
}),
}));
return mergeColumns;
};