Compare commits

..
2 Commits
Author SHA1 Message Date
Tanner Linsley 62cff3d6bc 5.0.3 2017-02-09 10:07:37 -07:00
Tanner Linsley 057a815337 Adjust current page if available pages dips below current page
Fixes #69
2017-02-09 10:07:33 -07:00
8 changed files with 16 additions and 69 deletions
Vendored
BIN
View File
Binary file not shown.
+1 -1
View File
@@ -103,7 +103,7 @@ const columns = [{
}, {
header: 'Age',
accessor: 'age',
render: props => <span className='number'>{props.value}</span> // Custom cell components!
render: props => <span className='number'>props.value</span> // Custom cell components!
}, {
header: 'Friend Name',
accessor: d => d.friend.name // Custom value accessors!
+1 -2
View File
@@ -1,6 +1,6 @@
{
"name": "react-table",
"version": "5.0.4",
"version": "5.0.3",
"description": "A fast, lightweight, opinionated table and datagrid built on React",
"license": "MIT",
"homepage": "https://github.com/tannerlinsley/react-table#readme",
@@ -62,7 +62,6 @@
"react-dom": "^15.4.2",
"react-json-tree": "^0.10.1",
"standard": "^8.0.0",
"storybook": "^0.0.0",
"stylus": "^0.54.5",
"uglifyify": "3.0.3"
},
+2 -5
View File
@@ -226,13 +226,13 @@ export default {
page: (page + 1) > newPages ? newPages - 1 : page
}
},
getSortedData (state) {
getSortedData (nextProps, nextState) {
const {
manual,
sorting,
allDecoratedColumns,
resolvedData
} = state
} = this.getResolvedState(nextProps, nextState)
const resolvedSorting = sorting.length ? sorting : this.getInitSorting(allDecoratedColumns)
@@ -273,9 +273,6 @@ export default {
// }]
},
sortData (data, sorting) {
if (!sorting.length) {
return data
}
const sorted = _.orderBy(data, sorting.map(sort => {
return row => {
if (row[sort.id] === null || row[sort.id] === undefined) {
+9 -43
View File
@@ -18,8 +18,6 @@ export const ReactTableDefaults = {
defaultPageSize: 20,
showPageJump: true,
expanderColumnWidth: 35,
collapseOnChange: true,
freezeWhenExpanded: false,
// Controlled State Overrides
// page: undefined,
@@ -156,10 +154,10 @@ export default React.createClass({
getResolvedState (props, state) {
const resolvedState = {
..._.compactObject(this.state),
..._.compactObject(state),
..._.compactObject(this.props),
..._.compactObject(props)
...this.state,
...state,
...this.props,
...props
}
return resolvedState
},
@@ -175,7 +173,6 @@ export default React.createClass({
componentWillReceiveProps (nextProps, nextState) {
const oldState = this.getResolvedState()
const newState = this.getResolvedState(nextProps, nextState)
// Props that trigger a data update
if (
oldState.data !== newState.data ||
@@ -190,49 +187,22 @@ export default React.createClass({
setStateWithData (newState, cb) {
const oldState = this.getResolvedState()
const newResolvedState = this.getResolvedState({}, newState)
const { freezeWhenExpanded } = newResolvedState
// Default to unfrozen state
newResolvedState.frozen = false
// If freezeWhenExpanded is set, check for frozen conditions
if (freezeWhenExpanded) {
// if any rows are expanded, freeze the existing data and sorting
const keys = Object.keys(newResolvedState.expandedRows)
for (var i = 0; i < keys.length; i++) {
if (newResolvedState.expandedRows[keys[i]]) {
newResolvedState.frozen = true
break
}
}
}
// If the data isn't frozen and either the data or
// sorting model has changed, update the data
if (
(oldState.frozen && !newResolvedState.frozen) ||
oldState.sorting !== newResolvedState.sorting ||
(!newResolvedState.frozen && oldState.resolvedData !== newResolvedState.resolvedData)
oldState.resolvedData !== newResolvedState.resolvedData ||
oldState.sorting !== newResolvedState.sorting
) {
// If collapseOnChange is set, automatically close expanded subcomponents
if (this.props.collapseOnChange) {
newResolvedState.expandedRows = {}
}
Object.assign(newResolvedState, this.getSortedData(newResolvedState))
Object.assign(newState, this.getSortedData({}, newState))
}
// Calculate pageSize all the time
if (newResolvedState.resolvedData) {
newResolvedState.pages = newResolvedState.manual ? newResolvedState.pages : Math.ceil(newResolvedState.resolvedData.length / newResolvedState.pageSize)
newState.pages = newResolvedState.manual ? newResolvedState.pages : Math.ceil(newResolvedState.resolvedData.length / newResolvedState.pageSize)
}
return this.setState(newResolvedState, cb)
return this.setState(newState, cb)
},
shouldComponentUpdate (nextProps, nextState) {
const oldState = this.getResolvedState()
const newState = this.getResolvedState(nextProps, nextState)
// State changes that trigger a render
if (
oldState.sortedData !== newState.sortedData ||
@@ -406,7 +376,6 @@ export default React.createClass({
if (column.pivotColumns) {
return (
<ThComponent
key={i}
className={classnames(
'rt-pivot-header',
classes
@@ -421,7 +390,6 @@ export default React.createClass({
}
return (
<ThComponent
key={i}
className={classnames(
'rt-expander-header',
classes
@@ -661,7 +629,6 @@ export default React.createClass({
const PivotCell = column.pivotRender
return (
<TdComponent
key={i2}
className={classnames(
'rt-pivot',
classes
@@ -702,7 +669,6 @@ export default React.createClass({
// Return the regular expander cell
return (
<TdComponent
key={i2}
className={classnames(
classes,
{hidden: !show}
+1 -12
View File
@@ -15,8 +15,7 @@ export default {
makeTemplateComponent,
groupBy,
isArray,
splitProps,
compactObject
splitProps
}
function get (obj, path, def) {
@@ -174,13 +173,3 @@ function splitProps ({className, style, ...rest}) {
rest
}
}
function compactObject (obj) {
const newObj = {}
for (var key in obj) {
if (obj.hasOwnProperty(key) && obj[key] !== undefined && typeof obj[key] !== 'undefined') {
newObj[key] = obj[key]
}
}
return newObj
}
+1 -1
View File
@@ -125,4 +125,4 @@ export default (
/>
)
`
}
}
+1 -5
View File
@@ -2998,7 +2998,7 @@ indexof@0.0.1:
version "0.0.1"
resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d"
inflight@^1.0.4, inflight@^1.0.6:
inflight@^1.0.4:
version "1.0.6"
resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
dependencies:
@@ -5248,10 +5248,6 @@ standard@^8.0.0:
version "1.3.1"
resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e"
storybook@^0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/storybook/-/storybook-0.0.0.tgz#b3b9508fb99fd83615674917583cfe9e1532931d"
stream-browserify@^2.0.0, stream-browserify@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db"