Skip to content

Commit 7c8896f

Browse files
committed
expose onItemsPerPageChange API
1 parent a0485af commit 7c8896f

File tree

5 files changed

+29
-15
lines changed

5 files changed

+29
-15
lines changed

build/reactable.js

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1016,20 +1016,21 @@ window.ReactDOM["default"] = window.ReactDOM;
10161016
var options = props.options.map(function (opt, i) {
10171017
if (opt === 'all') return _react['default'].createElement(
10181018
'option',
1019-
{ key: i, value: Number.MAX_SAFE_INTEGER, selected: isSelected },
1019+
{ key: i, value: Number.MAX_SAFE_INTEGER },
10201020
'all'
10211021
);
1022-
var isSelected = opt === props.selected;
10231022
return _react['default'].createElement(
10241023
'option',
1025-
{ key: i, value: opt, selected: isSelected },
1024+
{ key: i, value: opt },
10261025
opt
10271026
);
10281027
});
10291028

10301029
return _react['default'].createElement(
10311030
'select',
1032-
{ onChange: function (e) {
1031+
{
1032+
defaultValue: props.selected,
1033+
onChange: function (e) {
10331034
return props.onItemsPerPageChange(parseInt(e.target.value, 10));
10341035
} },
10351036
options
@@ -1583,7 +1584,10 @@ window.ReactDOM["default"] = window.ReactDOM;
15831584
}
15841585
},
15851586
onItemsPerPageChange: function (itemsPerPage) {
1586-
return _this.setState({ itemsPerPage: itemsPerPage });
1587+
_this.setState({ itemsPerPage: itemsPerPage });
1588+
if (_this.props.onItemsPerPageChange) {
1589+
_this.props.onItemsPerPageChange(itemsPerPage);
1590+
}
15871591
},
15881592
previousPageLabel: this.props.previousPageLabel,
15891593
nextPageLabel: this.props.nextPageLabel,

lib/reactable/paginator.js

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -180,20 +180,21 @@ function RowSelector(props) {
180180
var options = props.options.map(function (opt, i) {
181181
if (opt === 'all') return _react2['default'].createElement(
182182
'option',
183-
{ key: i, value: Number.MAX_SAFE_INTEGER, selected: isSelected },
183+
{ key: i, value: Number.MAX_SAFE_INTEGER },
184184
'all'
185185
);
186-
var isSelected = opt === props.selected;
187186
return _react2['default'].createElement(
188187
'option',
189-
{ key: i, value: opt, selected: isSelected },
188+
{ key: i, value: opt },
190189
opt
191190
);
192191
});
193192

194193
return _react2['default'].createElement(
195194
'select',
196-
{ onChange: function (e) {
195+
{
196+
defaultValue: props.selected,
197+
onChange: function (e) {
197198
return props.onItemsPerPageChange(parseInt(e.target.value, 10));
198199
} },
199200
options

lib/reactable/table.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -557,7 +557,10 @@ var Table = (function (_React$Component) {
557557
}
558558
},
559559
onItemsPerPageChange: function (itemsPerPage) {
560-
return _this.setState({ itemsPerPage: itemsPerPage });
560+
_this.setState({ itemsPerPage: itemsPerPage });
561+
if (_this.props.onItemsPerPageChange) {
562+
_this.props.onItemsPerPageChange(itemsPerPage);
563+
}
561564
},
562565
previousPageLabel: this.props.previousPageLabel,
563566
nextPageLabel: this.props.nextPageLabel,

src/reactable/paginator.jsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -132,13 +132,14 @@ export class Paginator extends React.Component {
132132

133133
function RowSelector(props) {
134134
let options = props.options.map((opt, i) => {
135-
if (opt === 'all') return <option key={i} value={Number.MAX_SAFE_INTEGER} selected={isSelected}>all</option>;
136-
let isSelected = opt === props.selected;
137-
return <option key={i} value={opt} selected={isSelected}>{opt}</option>;
135+
if (opt === 'all') return <option key={i} value={Number.MAX_SAFE_INTEGER}>all</option>;
136+
return <option key={i} value={opt}>{opt}</option>;
138137
});
139138

140139
return (
141-
<select onChange={e => props.onItemsPerPageChange(parseInt(e.target.value, 10))} >
140+
<select
141+
defaultValue={props.selected}
142+
onChange={e => props.onItemsPerPageChange(parseInt(e.target.value, 10))} >
142143
{options}
143144
</select>
144145
);

src/reactable/table.jsx

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -518,7 +518,12 @@ export class Table extends React.Component {
518518
this.props.onPageChange(page)
519519
}
520520
}}
521-
onItemsPerPageChange={itemsPerPage => this.setState({ itemsPerPage })}
521+
onItemsPerPageChange={itemsPerPage => {
522+
this.setState({ itemsPerPage });
523+
if (this.props.onItemsPerPageChange) {
524+
this.props.onItemsPerPageChange(itemsPerPage);
525+
}
526+
}}
522527
previousPageLabel={this.props.previousPageLabel}
523528
nextPageLabel={this.props.nextPageLabel}
524529
key="paginator"/>

0 commit comments

Comments
 (0)