mirror of
https://github.com/gosticks/react-table.git
synced 2025-10-16 11:55:36 +00:00
74 lines
1.8 KiB
JavaScript
Executable File
74 lines
1.8 KiB
JavaScript
Executable File
import React from "react";
|
|
import { render } from "react-dom";
|
|
import { makeData, Logo, Tips } from "./Utils";
|
|
|
|
// Import React Table
|
|
import ReactTable from "react-table";
|
|
import "react-table/react-table.css";
|
|
|
|
class App extends React.Component {
|
|
constructor() {
|
|
super();
|
|
this.state = {
|
|
data: makeData()
|
|
};
|
|
this.renderEditable = this.renderEditable.bind(this);
|
|
}
|
|
renderEditable(cellInfo) {
|
|
return (
|
|
<div
|
|
style={{ backgroundColor: "#fafafa" }}
|
|
contentEditable
|
|
suppressContentEditableWarning
|
|
onBlur={e => {
|
|
const data = [...this.state.data];
|
|
data[cellInfo.index][cellInfo.column.id] = e.target.innerHTML;
|
|
this.setState({ data });
|
|
}}
|
|
dangerouslySetInnerHTML={{
|
|
__html: this.state.data[cellInfo.index][cellInfo.column.id]
|
|
}}
|
|
/>
|
|
);
|
|
}
|
|
render() {
|
|
const { data } = this.state;
|
|
return (
|
|
<div>
|
|
<ReactTable
|
|
data={data}
|
|
columns={[
|
|
{
|
|
Header: "First Name",
|
|
accessor: "firstName",
|
|
Cell: this.renderEditable
|
|
},
|
|
{
|
|
Header: "Last Name",
|
|
accessor: "lastName",
|
|
Cell: this.renderEditable
|
|
},
|
|
{
|
|
Header: "Full Name",
|
|
id: "full",
|
|
accessor: d =>
|
|
<div
|
|
dangerouslySetInnerHTML={{
|
|
__html: d.firstName + " " + d.lastName
|
|
}}
|
|
/>
|
|
}
|
|
]}
|
|
defaultPageSize={10}
|
|
className="-striped -highlight"
|
|
/>
|
|
<br />
|
|
<Tips />
|
|
<Logo />
|
|
</div>
|
|
);
|
|
}
|
|
}
|
|
|
|
render(<App />, document.getElementById("root"));
|