import React from "react";
import styles from "./index.less";
import { Table } from "antd";
import { Resizable } from "react-resizable";
const ResizeableTitle = props => {
const { onResize, width, ...restProps } = props;
if (!width) {
return
| ;
}
return (
(
{
e.stopPropagation();
}}
/>
)}
onResize={onResize}
draggableOpts={{ enableUserSelectHack: false }}
>
|
);
};
class Demo extends React.Component {
state = {
columns: [
{
title: "Date",
dataIndex: "date",
width: 200
},
{
title: "Amount",
dataIndex: "amount",
width: 100,
sorter: (a, b) => a.amount - b.amount
},
{
title: "Type",
dataIndex: "type",
width: 100
},
{
title: "Note",
dataIndex: "note",
width: 100
},
{
title: "Action",
key: "action",
render: () => Delete
}
]
};
components = {
header: {
cell: ResizeableTitle
}
};
data = [
{
key: 0,
date: "2018-02-11",
amount: 120,
type: "income",
note: "transfer"
},
{
key: 1,
date: "2018-03-11",
amount: 243,
type: "income",
note: "transfer"
},
{
key: 2,
date: "2018-04-11",
amount: 98,
type: "income",
note: "transfer"
}
];
handleResize = index => (e, { size }) => {
this.setState(({ columns }) => {
const nextColumns = [...columns];
nextColumns[index] = {
...nextColumns[index],
width: size.width
};
return { columns: nextColumns };
});
};
render() {
const columns = this.state.columns.map((col, index) => ({
...col,
onHeaderCell: column => ({
width: column.width,
onResize: this.handleResize(index)
})
}));
return (
);
}
}
export default () => (
);