pui-react-sortable-table
Advanced tools
Comparing version
{ | ||
"name": "pui-react-sortable-table", | ||
"version": "0.0.1", | ||
"version": "0.0.2", | ||
"description": "sortable-table", | ||
@@ -24,4 +24,5 @@ "main": "sortable-table.js", | ||
"classnames": "^1.2.0", | ||
"lodash.sortBy": "^3.1.1" | ||
"lodash.sortBy": "^3.1.1", | ||
"pui-css-tables": "^0" | ||
} | ||
} |
@@ -20,13 +20,16 @@ /*(c) Copyright 2015 Pivotal Software, Inc. All Rights Reserved.*/ | ||
render: function render() { | ||
var sortClass; | ||
var _props = this.props; | ||
var children = _props.children; | ||
var sortable = _props.sortable; | ||
var _props$sortState = _props.sortState; | ||
var column = _props$sortState.column; | ||
var order = _props$sortState.order; | ||
var name = _props.name; | ||
if (this.props.sortable) { | ||
if (this.props.sortState.column !== this.props.name) { | ||
sortClass = "sortable sorted-none"; | ||
} else if (this.props.sortState.order === "asc") { | ||
sortClass = "sortable sorted-asc"; | ||
} else { | ||
sortClass = "sortable sorted-desc"; | ||
} | ||
} | ||
var sortClass = classnames({ | ||
sortable: sortable, | ||
"sorted-none": sortable && column !== name, | ||
"sorted-asc": sortable && column === name && order === "asc", | ||
"sorted-desc": sortable && column === name && order === "desc" | ||
}); | ||
@@ -36,3 +39,3 @@ return React.createElement( | ||
{ className: sortClass, onClick: this.handleClick }, | ||
this.props.children | ||
children | ||
); | ||
@@ -51,11 +54,14 @@ } | ||
render: function render() { | ||
var tableCells = this.props.columnNames.map(function (columnName, columnIndex) { | ||
var columnAlignment = this.props.alignment[columnIndex]; | ||
var _props = this.props; | ||
var data = _props.data; | ||
var alignment = _props.alignment; | ||
var columnNames = _props.columnNames; | ||
var tableCells = columnNames.map(function (name, i) { | ||
return React.createElement( | ||
"td", | ||
{ key: columnName, className: classnames(ALIGNMENT[columnAlignment]) }, | ||
this.props.data[columnName] | ||
{ key: name, className: classnames(ALIGNMENT[alignment[i]]) }, | ||
data[name] | ||
); | ||
}, this); | ||
}); | ||
return React.createElement( | ||
@@ -84,3 +90,7 @@ "tr", | ||
getInitialState: function getInitialState() { | ||
var column = this.props.columns[0].name; | ||
var _props = this.props; | ||
var columns = _props.columns; | ||
var data = _props.data; | ||
var column = columns[0].name; | ||
return { | ||
@@ -91,4 +101,3 @@ sort: { | ||
}, | ||
data: sortBy(this.props.data, column) | ||
data: sortBy(data, column) | ||
}; | ||
@@ -98,10 +107,10 @@ }, | ||
sortData: function sortData(header) { | ||
var _state$sort = this.state.sort; | ||
var _state = this.state; | ||
var oldData = _state.data; | ||
var _state$sort = _state.sort; | ||
var oldSortColumn = _state$sort.column; | ||
var oldSortOrder = _state$sort.order; | ||
var oldData = this.state.data; | ||
var newSortColumn = header.props.name; | ||
var newData; | ||
var newSortOrder; | ||
var newData, newSortOrder; | ||
@@ -138,4 +147,4 @@ if (oldSortColumn !== newSortColumn) { | ||
var rows = this.state.data.map(function (datum, datumIndex) { | ||
return React.createElement(TableRow, { data: datum, key: datumIndex, columnNames: columns.map(function (c) { | ||
var rows = this.state.data.map(function (datum, i) { | ||
return React.createElement(TableRow, { data: datum, key: i, columnNames: columns.map(function (c) { | ||
return c.name; | ||
@@ -142,0 +151,0 @@ }), alignment: columns.map(function (c) { |
7234
4%146
6.57%3
50%+ Added
+ Added
+ Added