mirror of
https://github.com/gosticks/react-bootstrap-table2.git
synced 2025-10-16 11:55:39 +00:00
implement data operator
This commit is contained in:
parent
143acde35e
commit
5307e58813
@ -2,11 +2,10 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import Const from '../const';
|
||||
import { getRowByRowId } from '../store/rows';
|
||||
// Consider make selectionHandler become a part of Provider
|
||||
import * as selectionHandler from '../store/selection';
|
||||
|
||||
export default () => {
|
||||
export default (
|
||||
dataOperator
|
||||
) => {
|
||||
const SelectionContext = React.createContext();
|
||||
|
||||
class SelectionProvider extends React.Component {
|
||||
@ -41,7 +40,7 @@ export default () => {
|
||||
}
|
||||
|
||||
if (onSelect) {
|
||||
const row = getRowByRowId(data, keyField, rowKey);
|
||||
const row = dataOperator.getRowByRowId(data, keyField, rowKey);
|
||||
onSelect(row, checked, rowIndex, e);
|
||||
}
|
||||
|
||||
@ -58,16 +57,16 @@ export default () => {
|
||||
}
|
||||
} = this.props;
|
||||
const { selected } = this.state;
|
||||
const anySelected = selectionHandler.isAnySelectedRow(selected, nonSelectable);
|
||||
const anySelected = dataOperator.isAnySelectedRow(selected, nonSelectable);
|
||||
|
||||
const result = !anySelected;
|
||||
|
||||
const currSelected = result ?
|
||||
selectionHandler.selectableKeys(data, keyField, nonSelectable) :
|
||||
selectionHandler.unSelectableKeys(selected, nonSelectable);
|
||||
dataOperator.selectableKeys(data, keyField, nonSelectable) :
|
||||
dataOperator.unSelectableKeys(selected, nonSelectable);
|
||||
|
||||
if (onSelectAll) {
|
||||
onSelectAll(result, selectionHandler.getSelectedRows(data, keyField, currSelected), e);
|
||||
onSelectAll(result, dataOperator.getSelectedRows(data, keyField, currSelected), e);
|
||||
}
|
||||
|
||||
this.setState(() => ({ selected: currSelected }));
|
||||
|
||||
@ -2,9 +2,9 @@
|
||||
import React from 'react';
|
||||
import PropTypes from 'prop-types';
|
||||
import Const from '../const';
|
||||
import { sort, nextOrder } from '../store/sort';
|
||||
|
||||
export default (
|
||||
dataOperator,
|
||||
isRemoteSort,
|
||||
handleSortChange
|
||||
) => {
|
||||
@ -48,7 +48,7 @@ export default (
|
||||
}
|
||||
|
||||
handleSort = (column) => {
|
||||
const sortOrder = nextOrder(column, this.state, this.props.defaultSortDirection);
|
||||
const sortOrder = dataOperator.nextOrder(column, this.state, this.props.defaultSortDirection);
|
||||
|
||||
if (column.onSort) {
|
||||
column.onSort(column.dataField, sortOrder);
|
||||
@ -67,7 +67,7 @@ export default (
|
||||
let { data } = this.props;
|
||||
const { sortOrder, sortColumn } = this.state;
|
||||
if (!isRemoteSort() && sortColumn) {
|
||||
data = sort(data, sortOrder, sortColumn);
|
||||
data = dataOperator.sort(data, sortOrder, sortColumn);
|
||||
}
|
||||
|
||||
return (
|
||||
|
||||
7
packages/react-bootstrap-table2/src/store/mutate.js
vendored
Normal file
7
packages/react-bootstrap-table2/src/store/mutate.js
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
import _ from '../utils';
|
||||
import { getRowByRowId } from './rows';
|
||||
|
||||
export const editCell = (rowId, dataField, newValue) => {
|
||||
const row = getRowByRowId(this)(rowId);
|
||||
if (row) _.set(row, dataField, newValue);
|
||||
};
|
||||
11
packages/react-bootstrap-table2/src/store/operators.js
vendored
Normal file
11
packages/react-bootstrap-table2/src/store/operators.js
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
import * as rows from './rows';
|
||||
import * as selection from './selection';
|
||||
import * as mutate from './mutate';
|
||||
import * as sort from './sort';
|
||||
|
||||
export default {
|
||||
...rows,
|
||||
...selection,
|
||||
...mutate,
|
||||
...sort
|
||||
};
|
||||
Loading…
Reference in New Issue
Block a user