react-toolbox/spec/components/table.js

53 lines
1.2 KiB
JavaScript
Raw Normal View History

2015-11-03 09:23:23 +03:00
import React from 'react';
import Table from '../../components/table';
2015-11-04 06:20:02 +03:00
const UserModel = {
2015-11-04 15:50:53 +03:00
name: {type: String},
twitter: {type: String, title: '@twitter'},
2015-11-04 15:50:53 +03:00
birthdate: {type: Date},
cats: {type: Number, onChange (...args) { console.log('changes:', ...args); } },
2015-11-04 15:50:53 +03:00
dogs: {type: Number},
2016-05-26 21:37:57 +03:00
owner: {type: Boolean }
2015-11-04 06:20:02 +03:00
};
2015-11-03 09:23:23 +03:00
2015-11-04 06:20:02 +03:00
const users = [
2016-05-26 21:37:57 +03:00
{name: 'Javi Jimenez', twitter: '@soyjavi', birthdate: new Date(1980, 3, 11), cats: 1},
2015-11-14 12:26:50 +03:00
{name: 'Javi Velasco', twitter: '@javivelasco', birthdate: new Date(1987, 1, 1), dogs: 1, owner: true}
2015-11-04 06:20:02 +03:00
];
2015-11-03 09:23:23 +03:00
2015-11-04 06:20:02 +03:00
class TableTest extends React.Component {
2015-11-14 12:26:50 +03:00
state = {
selected: [],
source: users
};
2015-11-03 09:23:23 +03:00
2015-11-14 12:26:50 +03:00
handleChange = (row, key, value) => {
const source = this.state.source;
source[row][key] = value;
this.setState({source});
2015-11-03 09:23:23 +03:00
};
2015-11-14 12:26:50 +03:00
handleSelect = (selected) => {
this.setState({selected});
2015-11-03 09:23:23 +03:00
};
render () {
return (
<section>
<h5>Table</h5>
2015-11-04 06:20:02 +03:00
<p style={{marginBottom: '10px'}}>Organized data.</p>
2015-11-03 09:23:23 +03:00
<Table
2015-11-04 06:20:02 +03:00
model={UserModel}
2015-11-14 12:26:50 +03:00
onChange={this.handleChange}
onSelect={this.handleSelect}
selectable
2015-11-14 12:26:50 +03:00
selected={this.state.selected}
source={this.state.source}
2015-11-03 09:23:23 +03:00
/>
</section>
);
}
}
export default TableTest;