import React from 'react';
import util from '../util';
import classnames from 'classnames';
import DotAccess from 'dot-access';
/**
* TableRow
*/
class TableRow extends React.Component {
render() {
var {selected, selectable, onSelect} = this.props;
var inflation = (selectable) ? 1 : 0;
var cells = this.props.columns.map(function (column, key) {
var datum = DotAccess.get(this.props.data, column.name);
return React.createElement('td', {key: key + inflation},
(column.dataComponent) ?
React.createElement(column.dataComponent, {
data: this.props.data,
item:datum,
column: column,
index:key,
options: column.dataComponentOptions
}, datum) : datum)
}.bind(this));
if (selectable)
cells.unshift(React.createElement('td', {key: 'haxs0r'},
React.createElement('input', {
type: 'checkbox',
checked: selected,
onChange: onSelect
})));
return React.createElement('tr', {className: classnames({active: selected})}, cells);
}
}
TableRow.propTypes = {
data: React.PropTypes.object,
columns: React.PropTypes.arrayOf(React.PropTypes.shape({
name: React.PropTypes.string.isRequired,
label: React.PropTypes.string.isRequired,
headingComponent: React.PropTypes.component,
headingComponentOptions: React.PropTypes.component,
dataComponent: React.PropTypes.component,
dataComponentOptions: React.PropTypes.object,
transform: React.PropTypes.string,
sort: React.PropTypes.func,
hidden: React.PropTypes.bool
})).isRequired,
selectable: React.PropTypes.bool,
selected: React.PropTypes.bool,
onSelect: React.PropTypes.func
};
TableRow.defaultProps = {
data: {},
onSelect: function () {
}
};
export default TableRow