Skip to content

Commit 49d1ce8

Browse files
authored
Merge pull request #1109 from react-bootstrap-table/develop
20190929 release
2 parents cf5b24e + 18caf0a commit 49d1ce8

File tree

5 files changed

+17
-9
lines changed

5 files changed

+17
-9
lines changed

docs/README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,8 @@ const defaultSorted = [{
208208
}];
209209
```
210210

211+
**Note**: Only the first column is sorted currently, see #1083.
212+
211213
### <a name='defaultSortDirection'>defaultSortDirection - [String]</a>
212214
Default sort direction when user click on header column at first time, available value is `asc` and `desc`. Default is `desc`.
213215

packages/react-bootstrap-table2-example/examples/csv/export-custom-data.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,11 +36,12 @@ const columns = [{
3636
3737
const MyExportCSV = (props) => {
3838
const handleClick = () => {
39-
props.onExport();
39+
// passing my custom data
40+
props.onExport(products.filter(r => r.id > 2));
4041
};
4142
return (
4243
<div>
43-
<button className="btn btn-success" onClick={ handleClick }>Export to CSV</button>
44+
<button className="btn btn-success" onClick={ handleClick }>Only export Product ID bigger than 2</button>
4445
</div>
4546
);
4647
};

packages/react-bootstrap-table2/src/contexts/selection-context.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import React from 'react';
44
import PropTypes from 'prop-types';
55
import Const from '../const';
6+
import _ from '../utils';
67

78
import dataOperator from '../store/operators';
89
import { getSelectionSummary } from '../store/selection';
@@ -72,7 +73,7 @@ class SelectionProvider extends React.Component {
7273
if (!isUnSelect) {
7374
currSelected = selected.concat(dataOperator.selectableKeys(data, keyField, nonSelectable));
7475
} else {
75-
currSelected = selected.filter(s => typeof data.find(d => d[keyField] === s) === 'undefined');
76+
currSelected = selected.filter(s => typeof data.find(d => _.get(d, keyField) === s) === 'undefined');
7677
}
7778

7879
let result;

packages/react-bootstrap-table2/src/header-cell.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,10 +43,14 @@ class HeaderCell extends eventDelegater(React.Component) {
4343

4444
const delegateEvents = this.delegate(headerEvents);
4545

46+
const customAttrs = _.isFunction(headerAttrs)
47+
? headerAttrs(column, index)
48+
: (headerAttrs || {});
49+
4650
const cellAttrs = {
47-
..._.isFunction(headerAttrs) ? headerAttrs(column, index) : headerAttrs,
51+
...customAttrs,
4852
...delegateEvents,
49-
tabIndex: 0
53+
tabIndex: _.isDefined(customAttrs.tabIndex) ? customAttrs.tabIndex : 0
5054
};
5155

5256
let sortSymbol;

packages/react-bootstrap-table2/src/store/selection.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,14 +2,14 @@ import _ from '../utils';
22
import { getRowByRowId } from './rows';
33

44
export const getSelectionSummary = (
5-
data,
5+
data = [],
66
keyField,
77
selected = []
88
) => {
99
let allRowsSelected = data.length > 0;
1010
let allRowsNotSelected = true;
1111

12-
const rowKeys = data.map(d => d[keyField]);
12+
const rowKeys = data.map(d => _.get(d, keyField));
1313
for (let i = 0; i < rowKeys.length; i += 1) {
1414
const curr = rowKeys[i];
1515
if (typeof selected.find(x => x === curr) === 'undefined') {
@@ -24,7 +24,7 @@ export const getSelectionSummary = (
2424
};
2525
};
2626

27-
export const selectableKeys = (data, keyField, skips = []) => {
27+
export const selectableKeys = (data = [], keyField, skips = []) => {
2828
if (skips.length === 0) {
2929
return data.map(row => _.get(row, keyField));
3030
}
@@ -40,6 +40,6 @@ export const unSelectableKeys = (selected, skips = []) => {
4040
return selected.filter(x => _.contains(skips, x));
4141
};
4242

43-
export const getSelectedRows = (data, keyField, selected) =>
43+
export const getSelectedRows = (data = [], keyField, selected) =>
4444
selected.map(k => getRowByRowId(data, keyField, k)).filter(x => !!x);
4545

0 commit comments

Comments
 (0)