mirror of
https://github.com/gosticks/react-bootstrap-table2.git
synced 2025-10-16 11:55:39 +00:00
Merge branch 'chimericdream-master' into develop
This commit is contained in:
commit
4dc5e6099f
@ -1,5 +1,8 @@
|
|||||||
|
/* eslint disable-next-line: 0 */
|
||||||
/* eslint react/prop-types: 0 */
|
/* eslint react/prop-types: 0 */
|
||||||
/* eslint react/require-default-props: 0 */
|
/* eslint react/require-default-props: 0 */
|
||||||
|
/* eslint camelcase: 0 */
|
||||||
|
/* eslint react/no-unused-prop-types: 0 */
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
import { CLICK_TO_CELL_EDIT, DBCLICK_TO_CELL_EDIT } from './const';
|
import { CLICK_TO_CELL_EDIT, DBCLICK_TO_CELL_EDIT } from './const';
|
||||||
@ -43,7 +46,7 @@ export default (
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillReceiveProps(nextProps) {
|
UNSAFE_componentWillReceiveProps(nextProps) {
|
||||||
if (nextProps.cellEdit && isRemoteCellEdit()) {
|
if (nextProps.cellEdit && isRemoteCellEdit()) {
|
||||||
if (nextProps.cellEdit.options.errorMessage) {
|
if (nextProps.cellEdit.options.errorMessage) {
|
||||||
this.setState(() => ({
|
this.setState(() => ({
|
||||||
|
|||||||
@ -2,6 +2,7 @@
|
|||||||
/* eslint no-return-assign: 0 */
|
/* eslint no-return-assign: 0 */
|
||||||
/* eslint class-methods-use-this: 0 */
|
/* eslint class-methods-use-this: 0 */
|
||||||
/* eslint jsx-a11y/no-noninteractive-element-interactions: 0 */
|
/* eslint jsx-a11y/no-noninteractive-element-interactions: 0 */
|
||||||
|
/* eslint camelcase: 0 */
|
||||||
import React, { Component } from 'react';
|
import React, { Component } from 'react';
|
||||||
import cs from 'classnames';
|
import cs from 'classnames';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
@ -51,7 +52,11 @@ export default (_, onStartEdit) =>
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillReceiveProps({ message }) {
|
componentWillUnmount() {
|
||||||
|
this.clearTimer();
|
||||||
|
}
|
||||||
|
|
||||||
|
UNSAFE_componentWillReceiveProps({ message }) {
|
||||||
if (_.isDefined(message)) {
|
if (_.isDefined(message)) {
|
||||||
this.createTimer();
|
this.createTimer();
|
||||||
this.setState(() => ({
|
this.setState(() => ({
|
||||||
@ -60,10 +65,6 @@ export default (_, onStartEdit) =>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillUnmount() {
|
|
||||||
this.clearTimer();
|
|
||||||
}
|
|
||||||
|
|
||||||
clearTimer() {
|
clearTimer() {
|
||||||
if (this.indicatorTimer) {
|
if (this.indicatorTimer) {
|
||||||
clearTimeout(this.indicatorTimer);
|
clearTimeout(this.indicatorTimer);
|
||||||
|
|||||||
@ -117,7 +117,7 @@ describe('CellEditContext', () => {
|
|||||||
wrapper = shallow(shallowContext());
|
wrapper = shallow(shallowContext());
|
||||||
wrapper.setState(initialState);
|
wrapper.setState(initialState);
|
||||||
wrapper.render();
|
wrapper.render();
|
||||||
wrapper.instance().componentWillReceiveProps({});
|
wrapper.instance().UNSAFE_componentWillReceiveProps({});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should not set state.message', () => {
|
it('should not set state.message', () => {
|
||||||
@ -138,7 +138,7 @@ describe('CellEditContext', () => {
|
|||||||
wrapper = shallow(shallowContext());
|
wrapper = shallow(shallowContext());
|
||||||
wrapper.setState(initialState);
|
wrapper.setState(initialState);
|
||||||
wrapper.render();
|
wrapper.render();
|
||||||
wrapper.instance().componentWillReceiveProps({
|
wrapper.instance().UNSAFE_componentWillReceiveProps({
|
||||||
cellEdit: cellEditFactory(defaultCellEdit)
|
cellEdit: cellEditFactory(defaultCellEdit)
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -164,7 +164,7 @@ describe('CellEditContext', () => {
|
|||||||
wrapper = shallow(shallowContext(defaultCellEdit, true));
|
wrapper = shallow(shallowContext(defaultCellEdit, true));
|
||||||
wrapper.setState(initialState);
|
wrapper.setState(initialState);
|
||||||
wrapper.render();
|
wrapper.render();
|
||||||
wrapper.instance().componentWillReceiveProps({
|
wrapper.instance().UNSAFE_componentWillReceiveProps({
|
||||||
cellEdit: cellEditFactory({
|
cellEdit: cellEditFactory({
|
||||||
...defaultCellEdit,
|
...defaultCellEdit,
|
||||||
errorMessage: message
|
errorMessage: message
|
||||||
@ -190,7 +190,7 @@ describe('CellEditContext', () => {
|
|||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
wrapper = shallow(shallowContext(defaultCellEdit, true));
|
wrapper = shallow(shallowContext(defaultCellEdit, true));
|
||||||
wrapper.setState(initialState);
|
wrapper.setState(initialState);
|
||||||
wrapper.instance().componentWillReceiveProps({
|
wrapper.instance().UNSAFE_componentWillReceiveProps({
|
||||||
cellEdit: cellEditFactory({ ...defaultCellEdit })
|
cellEdit: cellEditFactory({ ...defaultCellEdit })
|
||||||
});
|
});
|
||||||
wrapper.update();
|
wrapper.update();
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
/* eslint react/require-default-props: 0 */
|
/* eslint react/require-default-props: 0 */
|
||||||
/* eslint react/prop-types: 0 */
|
/* eslint react/prop-types: 0 */
|
||||||
/* eslint no-return-assign: 0 */
|
/* eslint no-return-assign: 0 */
|
||||||
|
/* eslint camelcase: 0 */
|
||||||
import React, { Component } from 'react';
|
import React, { Component } from 'react';
|
||||||
import { PropTypes } from 'prop-types';
|
import { PropTypes } from 'prop-types';
|
||||||
|
|
||||||
@ -41,16 +42,16 @@ class TextFilter extends Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillReceiveProps(nextProps) {
|
componentWillUnmount() {
|
||||||
|
this.cleanTimer();
|
||||||
|
}
|
||||||
|
|
||||||
|
UNSAFE_componentWillReceiveProps(nextProps) {
|
||||||
if (nextProps.defaultValue !== this.props.defaultValue) {
|
if (nextProps.defaultValue !== this.props.defaultValue) {
|
||||||
this.applyFilter(nextProps.defaultValue);
|
this.applyFilter(nextProps.defaultValue);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillUnmount() {
|
|
||||||
this.cleanTimer();
|
|
||||||
}
|
|
||||||
|
|
||||||
filter(e) {
|
filter(e) {
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
this.cleanTimer();
|
this.cleanTimer();
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
/* eslint react/prop-types: 0 */
|
/* eslint react/prop-types: 0 */
|
||||||
/* eslint react/require-default-props: 0 */
|
/* eslint react/require-default-props: 0 */
|
||||||
|
/* eslint camelcase: 0 */
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
|
|
||||||
@ -37,15 +38,6 @@ export default (
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillReceiveProps(nextProps) {
|
|
||||||
// let nextData = nextProps.data;
|
|
||||||
if (!isRemoteFiltering() && !_.isEqual(nextProps.data, this.data)) {
|
|
||||||
this.doFilter(nextProps, this.isEmitDataChange);
|
|
||||||
} else {
|
|
||||||
this.data = nextProps.data;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
onFilter(column, filterType, initialize = false) {
|
onFilter(column, filterType, initialize = false) {
|
||||||
return (filterVal) => {
|
return (filterVal) => {
|
||||||
// watch out here if migration to context API, #334
|
// watch out here if migration to context API, #334
|
||||||
@ -90,6 +82,15 @@ export default (
|
|||||||
return this.data;
|
return this.data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UNSAFE_componentWillReceiveProps(nextProps) {
|
||||||
|
// let nextData = nextProps.data;
|
||||||
|
if (!isRemoteFiltering() && !_.isEqual(nextProps.data, this.data)) {
|
||||||
|
this.doFilter(nextProps, this.isEmitDataChange);
|
||||||
|
} else {
|
||||||
|
this.data = nextProps.data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
doFilter(props, ignoreEmitDataChange = false) {
|
doFilter(props, ignoreEmitDataChange = false) {
|
||||||
const { dataChangeListener, data, columns } = props;
|
const { dataChangeListener, data, columns } = props;
|
||||||
const result = filters(data, columns, _)(this.currFilters);
|
const result = filters(data, columns, _)(this.currFilters);
|
||||||
|
|||||||
@ -144,7 +144,7 @@ describe('Text Filter', () => {
|
|||||||
<TextFilter onFilter={ onFilter } column={ column } />
|
<TextFilter onFilter={ onFilter } column={ column } />
|
||||||
);
|
);
|
||||||
instance = wrapper.instance();
|
instance = wrapper.instance();
|
||||||
instance.componentWillReceiveProps(nextProps);
|
instance.UNSAFE_componentWillReceiveProps(nextProps);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should setting state correctly when props.defaultValue is changed', () => {
|
it('should setting state correctly when props.defaultValue is changed', () => {
|
||||||
|
|||||||
@ -21,8 +21,9 @@ class PaginationDataProvider extends Provider {
|
|||||||
isRemotePagination: PropTypes.func.isRequired
|
isRemotePagination: PropTypes.func.isRequired
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillReceiveProps(nextProps) {
|
// eslint-disable-next-line camelcase, react/sort-comp
|
||||||
super.componentWillReceiveProps(nextProps);
|
UNSAFE_componentWillReceiveProps(nextProps) {
|
||||||
|
super.UNSAFE_componentWillReceiveProps(nextProps);
|
||||||
const { currSizePerPage } = this;
|
const { currSizePerPage } = this;
|
||||||
const { custom, onPageChange } = nextProps.pagination.options;
|
const { custom, onPageChange } = nextProps.pagination.options;
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
/* eslint react/prop-types: 0 */
|
/* eslint react/prop-types: 0 */
|
||||||
|
/* eslint camelcase: 0 */
|
||||||
import React, { Component } from 'react';
|
import React, { Component } from 'react';
|
||||||
|
|
||||||
import pageResolver from './page-resolver';
|
import pageResolver from './page-resolver';
|
||||||
@ -12,7 +13,7 @@ export default WrappedComponent =>
|
|||||||
this.state = this.initialState();
|
this.state = this.initialState();
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillReceiveProps(nextProps) {
|
UNSAFE_componentWillReceiveProps(nextProps) {
|
||||||
const { dataSize, currSizePerPage } = nextProps;
|
const { dataSize, currSizePerPage } = nextProps;
|
||||||
if (currSizePerPage !== this.props.currSizePerPage || dataSize !== this.props.dataSize) {
|
if (currSizePerPage !== this.props.currSizePerPage || dataSize !== this.props.dataSize) {
|
||||||
const totalPages = this.calculateTotalPage(currSizePerPage, dataSize);
|
const totalPages = this.calculateTotalPage(currSizePerPage, dataSize);
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
/* eslint react/prop-types: 0 */
|
/* eslint react/prop-types: 0 */
|
||||||
/* eslint react/require-default-props: 0 */
|
/* eslint react/require-default-props: 0 */
|
||||||
/* eslint no-lonely-if: 0 */
|
/* eslint no-lonely-if: 0 */
|
||||||
|
/* eslint camelcase: 0 */
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import EventEmitter from 'events';
|
import EventEmitter from 'events';
|
||||||
import Const from './const';
|
import Const from './const';
|
||||||
@ -45,23 +46,6 @@ class StateProvider extends React.Component {
|
|||||||
this.dataChangeListener.on('filterChanged', this.handleDataSizeChange);
|
this.dataChangeListener.on('filterChanged', this.handleDataSizeChange);
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillReceiveProps(nextProps) {
|
|
||||||
const { custom } = nextProps.pagination.options;
|
|
||||||
|
|
||||||
// user should align the page when the page is not fit to the data size when remote enable
|
|
||||||
if (this.isRemotePagination() || custom) {
|
|
||||||
if (typeof nextProps.pagination.options.page !== 'undefined') {
|
|
||||||
this.currPage = nextProps.pagination.options.page;
|
|
||||||
}
|
|
||||||
if (typeof nextProps.pagination.options.sizePerPage !== 'undefined') {
|
|
||||||
this.currSizePerPage = nextProps.pagination.options.sizePerPage;
|
|
||||||
}
|
|
||||||
if (typeof nextProps.pagination.options.totalSize !== 'undefined') {
|
|
||||||
this.dataSize = nextProps.pagination.options.totalSize;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
getPaginationProps = () => {
|
getPaginationProps = () => {
|
||||||
const { pagination: { options }, bootstrap4 } = this.props;
|
const { pagination: { options }, bootstrap4 } = this.props;
|
||||||
const { currPage, currSizePerPage, dataSize } = this;
|
const { currPage, currSizePerPage, dataSize } = this;
|
||||||
@ -113,6 +97,23 @@ class StateProvider extends React.Component {
|
|||||||
|
|
||||||
getPaginationRemoteEmitter = () => this.remoteEmitter || this.props.remoteEmitter;
|
getPaginationRemoteEmitter = () => this.remoteEmitter || this.props.remoteEmitter;
|
||||||
|
|
||||||
|
UNSAFE_componentWillReceiveProps(nextProps) {
|
||||||
|
const { custom } = nextProps.pagination.options;
|
||||||
|
|
||||||
|
// user should align the page when the page is not fit to the data size when remote enable
|
||||||
|
if (this.isRemotePagination() || custom) {
|
||||||
|
if (typeof nextProps.pagination.options.page !== 'undefined') {
|
||||||
|
this.currPage = nextProps.pagination.options.page;
|
||||||
|
}
|
||||||
|
if (typeof nextProps.pagination.options.sizePerPage !== 'undefined') {
|
||||||
|
this.currSizePerPage = nextProps.pagination.options.sizePerPage;
|
||||||
|
}
|
||||||
|
if (typeof nextProps.pagination.options.totalSize !== 'undefined') {
|
||||||
|
this.dataSize = nextProps.pagination.options.totalSize;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
isRemotePagination = () => {
|
isRemotePagination = () => {
|
||||||
const e = {};
|
const e = {};
|
||||||
this.remoteEmitter.emit('isRemotePagination', e);
|
this.remoteEmitter.emit('isRemotePagination', e);
|
||||||
|
|||||||
@ -174,7 +174,7 @@ describe('PaginationDataContext', () => {
|
|||||||
data: [],
|
data: [],
|
||||||
pagination: { ...defaultPagination }
|
pagination: { ...defaultPagination }
|
||||||
};
|
};
|
||||||
instance.componentWillReceiveProps(nextProps);
|
instance.UNSAFE_componentWillReceiveProps(nextProps);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should reset currPage to first page', () => {
|
it('should reset currPage to first page', () => {
|
||||||
@ -195,7 +195,7 @@ describe('PaginationDataContext', () => {
|
|||||||
data: [],
|
data: [],
|
||||||
pagination: { ...defaultPagination, options: { onPageChange } }
|
pagination: { ...defaultPagination, options: { onPageChange } }
|
||||||
};
|
};
|
||||||
instance.componentWillReceiveProps(nextProps);
|
instance.UNSAFE_componentWillReceiveProps(nextProps);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should call options.onPageChange correctly', () => {
|
it('should call options.onPageChange correctly', () => {
|
||||||
|
|||||||
@ -164,13 +164,13 @@ describe('paginationHandler', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('should setting correct state.totalPages', () => {
|
it('should setting correct state.totalPages', () => {
|
||||||
instance.componentWillReceiveProps(nextProps);
|
instance.UNSAFE_componentWillReceiveProps(nextProps);
|
||||||
expect(instance.state.totalPages).toEqual(
|
expect(instance.state.totalPages).toEqual(
|
||||||
instance.calculateTotalPage(nextProps.currSizePerPage));
|
instance.calculateTotalPage(nextProps.currSizePerPage));
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should setting correct state.lastPage', () => {
|
it('should setting correct state.lastPage', () => {
|
||||||
instance.componentWillReceiveProps(nextProps);
|
instance.UNSAFE_componentWillReceiveProps(nextProps);
|
||||||
const totalPages = instance.calculateTotalPage(nextProps.currSizePerPage);
|
const totalPages = instance.calculateTotalPage(nextProps.currSizePerPage);
|
||||||
expect(instance.state.lastPage).toEqual(
|
expect(instance.state.lastPage).toEqual(
|
||||||
instance.calculateLastPage(totalPages));
|
instance.calculateLastPage(totalPages));
|
||||||
@ -186,13 +186,13 @@ describe('paginationHandler', () => {
|
|||||||
});
|
});
|
||||||
|
|
||||||
it('should setting correct state.totalPages', () => {
|
it('should setting correct state.totalPages', () => {
|
||||||
instance.componentWillReceiveProps(nextProps);
|
instance.UNSAFE_componentWillReceiveProps(nextProps);
|
||||||
expect(instance.state.totalPages).toEqual(
|
expect(instance.state.totalPages).toEqual(
|
||||||
instance.calculateTotalPage(nextProps.currSizePerPage, nextProps.dataSize));
|
instance.calculateTotalPage(nextProps.currSizePerPage, nextProps.dataSize));
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should setting correct state.lastPage', () => {
|
it('should setting correct state.lastPage', () => {
|
||||||
instance.componentWillReceiveProps(nextProps);
|
instance.UNSAFE_componentWillReceiveProps(nextProps);
|
||||||
const totalPages = instance.calculateTotalPage(
|
const totalPages = instance.calculateTotalPage(
|
||||||
nextProps.currSizePerPage, nextProps.dataSize);
|
nextProps.currSizePerPage, nextProps.dataSize);
|
||||||
expect(instance.state.lastPage).toEqual(
|
expect(instance.state.lastPage).toEqual(
|
||||||
|
|||||||
@ -156,7 +156,7 @@ describe('PaginationStateContext', () => {
|
|||||||
data,
|
data,
|
||||||
pagination: { ...defaultPagination, options: { page: 3, sizePerPage: 5, totalSize: 50 } }
|
pagination: { ...defaultPagination, options: { page: 3, sizePerPage: 5, totalSize: 50 } }
|
||||||
};
|
};
|
||||||
instance.componentWillReceiveProps(nextProps);
|
instance.UNSAFE_componentWillReceiveProps(nextProps);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should always reset currPage and currSizePerPage', () => {
|
it('should always reset currPage and currSizePerPage', () => {
|
||||||
@ -181,7 +181,7 @@ describe('PaginationStateContext', () => {
|
|||||||
options: { page: 3, sizePerPage: 5, custom: true, totalSize: 50 }
|
options: { page: 3, sizePerPage: 5, custom: true, totalSize: 50 }
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
instance.componentWillReceiveProps(nextProps);
|
instance.UNSAFE_componentWillReceiveProps(nextProps);
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should always reset currPage and currSizePerPage', () => {
|
it('should always reset currPage and currSizePerPage', () => {
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
/* eslint camelcase: 0 */
|
||||||
/* eslint no-return-assign: 0 */
|
/* eslint no-return-assign: 0 */
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
@ -34,10 +35,6 @@ class SearchBar extends React.Component {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillReceiveProps(nextProps) {
|
|
||||||
this.setState({ value: nextProps.searchText });
|
|
||||||
}
|
|
||||||
|
|
||||||
onChangeValue = (e) => {
|
onChangeValue = (e) => {
|
||||||
this.setState({ value: e.target.value });
|
this.setState({ value: e.target.value });
|
||||||
}
|
}
|
||||||
@ -50,6 +47,10 @@ class SearchBar extends React.Component {
|
|||||||
debounceCallback();
|
debounceCallback();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UNSAFE_componentWillReceiveProps(nextProps) {
|
||||||
|
this.setState({ value: nextProps.searchText });
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const {
|
const {
|
||||||
className,
|
className,
|
||||||
|
|||||||
@ -3,6 +3,7 @@
|
|||||||
/* eslint no-continue: 0 */
|
/* eslint no-continue: 0 */
|
||||||
/* eslint no-lonely-if: 0 */
|
/* eslint no-lonely-if: 0 */
|
||||||
/* eslint class-methods-use-this: 0 */
|
/* eslint class-methods-use-this: 0 */
|
||||||
|
/* eslint camelcase: 0 */
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
|
|
||||||
@ -35,7 +36,17 @@ export default (options = {
|
|||||||
this.state = { data: initialData };
|
this.state = { data: initialData };
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillReceiveProps(nextProps) {
|
getSearched() {
|
||||||
|
return this.state.data;
|
||||||
|
}
|
||||||
|
|
||||||
|
triggerListener(result) {
|
||||||
|
if (this.props.dataChangeListener) {
|
||||||
|
this.props.dataChangeListener.emit('filterChanged', result.length);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
UNSAFE_componentWillReceiveProps(nextProps) {
|
||||||
if (nextProps.searchText !== this.props.searchText) {
|
if (nextProps.searchText !== this.props.searchText) {
|
||||||
if (isRemoteSearch()) {
|
if (isRemoteSearch()) {
|
||||||
handleRemoteSearchChange(nextProps.searchText);
|
handleRemoteSearchChange(nextProps.searchText);
|
||||||
@ -59,16 +70,6 @@ export default (options = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
getSearched() {
|
|
||||||
return this.state.data;
|
|
||||||
}
|
|
||||||
|
|
||||||
triggerListener(result) {
|
|
||||||
if (this.props.dataChangeListener) {
|
|
||||||
this.props.dataChangeListener.emit('filterChanged', result.length);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
search(props) {
|
search(props) {
|
||||||
const { data, columns } = props;
|
const { data, columns } = props;
|
||||||
const searchText = props.searchText.toLowerCase();
|
const searchText = props.searchText.toLowerCase();
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
/* eslint camelcase: 0 */
|
||||||
/* eslint arrow-body-style: 0 */
|
/* eslint arrow-body-style: 0 */
|
||||||
|
|
||||||
import React, { Component } from 'react';
|
import React, { Component } from 'react';
|
||||||
@ -18,7 +19,7 @@ class BootstrapTable extends PropsBaseResolver(Component) {
|
|||||||
this.validateProps();
|
this.validateProps();
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillReceiveProps(nextProps) {
|
UNSAFE_componentWillReceiveProps(nextProps) {
|
||||||
if (nextProps.onDataSizeChange && !nextProps.pagination) {
|
if (nextProps.onDataSizeChange && !nextProps.pagination) {
|
||||||
if (nextProps.data.length !== this.props.data.length) {
|
if (nextProps.data.length !== this.props.data.length) {
|
||||||
nextProps.onDataSizeChange({ dataSize: nextProps.data.length });
|
nextProps.onDataSizeChange({ dataSize: nextProps.data.length });
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
/* eslint camelcase: 0 */
|
||||||
import React, { Component } from 'react';
|
import React, { Component } from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
|
|
||||||
@ -12,10 +13,6 @@ export default () => {
|
|||||||
|
|
||||||
state = { data: this.props.data };
|
state = { data: this.props.data };
|
||||||
|
|
||||||
componentWillReceiveProps(nextProps) {
|
|
||||||
this.setState(() => ({ data: nextProps.data }));
|
|
||||||
}
|
|
||||||
|
|
||||||
getData = (filterProps, searchProps, sortProps, paginationProps) => {
|
getData = (filterProps, searchProps, sortProps, paginationProps) => {
|
||||||
if (paginationProps) return paginationProps.data;
|
if (paginationProps) return paginationProps.data;
|
||||||
else if (sortProps) return sortProps.data;
|
else if (sortProps) return sortProps.data;
|
||||||
@ -24,6 +21,10 @@ export default () => {
|
|||||||
return this.props.data;
|
return this.props.data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UNSAFE_componentWillReceiveProps(nextProps) {
|
||||||
|
this.setState(() => ({ data: nextProps.data }));
|
||||||
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return (
|
return (
|
||||||
<DataContext.Provider
|
<DataContext.Provider
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
/* eslint camelcase: 0 */
|
||||||
/* eslint no-return-assign: 0 */
|
/* eslint no-return-assign: 0 */
|
||||||
/* eslint no-param-reassign: 0 */
|
/* eslint no-param-reassign: 0 */
|
||||||
/* eslint class-methods-use-this: 0 */
|
/* eslint class-methods-use-this: 0 */
|
||||||
@ -83,7 +84,7 @@ const withContext = Base =>
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillReceiveProps(nextProps) {
|
UNSAFE_componentWillReceiveProps(nextProps) {
|
||||||
if (!nextProps.pagination && this.props.pagination) {
|
if (!nextProps.pagination && this.props.pagination) {
|
||||||
this.PaginationContext = null;
|
this.PaginationContext = null;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
/* eslint camelcase: 0 */
|
||||||
/* eslint react/prop-types: 0 */
|
/* eslint react/prop-types: 0 */
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
@ -16,7 +17,11 @@ class RowExpandProvider extends React.Component {
|
|||||||
state = { expanded: this.props.expandRow.expanded || [],
|
state = { expanded: this.props.expandRow.expanded || [],
|
||||||
isClosing: this.props.expandRow.isClosing || [] };
|
isClosing: this.props.expandRow.isClosing || [] };
|
||||||
|
|
||||||
componentWillReceiveProps(nextProps) {
|
onClosed = (closedRow) => {
|
||||||
|
this.setState({ isClosing: this.state.isClosing.filter(value => value !== closedRow) });
|
||||||
|
};
|
||||||
|
|
||||||
|
UNSAFE_componentWillReceiveProps(nextProps) {
|
||||||
if (nextProps.expandRow) {
|
if (nextProps.expandRow) {
|
||||||
const nextExpanded = nextProps.expandRow.expanded || this.state.expanded;
|
const nextExpanded = nextProps.expandRow.expanded || this.state.expanded;
|
||||||
const isClosing = this.state.expanded.reduce((acc, cur) => {
|
const isClosing = this.state.expanded.reduce((acc, cur) => {
|
||||||
@ -36,10 +41,6 @@ class RowExpandProvider extends React.Component {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
onClosed = (closedRow) => {
|
|
||||||
this.setState({ isClosing: this.state.isClosing.filter(value => value !== closedRow) });
|
|
||||||
};
|
|
||||||
|
|
||||||
handleRowExpand = (rowKey, expanded, rowIndex, e) => {
|
handleRowExpand = (rowKey, expanded, rowIndex, e) => {
|
||||||
const { data, keyField, expandRow: { onExpand, onlyOneExpanding, nonExpandable } } = this.props;
|
const { data, keyField, expandRow: { onExpand, onlyOneExpanding, nonExpandable } } = this.props;
|
||||||
if (nonExpandable && _.contains(nonExpandable, rowKey)) {
|
if (nonExpandable && _.contains(nonExpandable, rowKey)) {
|
||||||
|
|||||||
@ -1,3 +1,4 @@
|
|||||||
|
/* eslint camelcase: 0 */
|
||||||
/* eslint react/prop-types: 0 */
|
/* eslint react/prop-types: 0 */
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import PropTypes from 'prop-types';
|
import PropTypes from 'prop-types';
|
||||||
@ -19,17 +20,17 @@ class SelectionProvider extends React.Component {
|
|||||||
this.selected = props.selectRow.selected || [];
|
this.selected = props.selectRow.selected || [];
|
||||||
}
|
}
|
||||||
|
|
||||||
componentWillReceiveProps(nextProps) {
|
|
||||||
if (nextProps.selectRow) {
|
|
||||||
this.selected = nextProps.selectRow.selected || this.selected;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// exposed API
|
// exposed API
|
||||||
getSelected() {
|
getSelected() {
|
||||||
return this.selected;
|
return this.selected;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
UNSAFE_componentWillReceiveProps(nextProps) {
|
||||||
|
if (nextProps.selectRow) {
|
||||||
|
this.selected = nextProps.selectRow.selected || this.selected;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
handleRowSelect = (rowKey, checked, rowIndex, e) => {
|
handleRowSelect = (rowKey, checked, rowIndex, e) => {
|
||||||
const { data, keyField, selectRow: { mode, onSelect } } = this.props;
|
const { data, keyField, selectRow: { mode, onSelect } } = this.props;
|
||||||
const { ROW_SELECT_SINGLE } = Const;
|
const { ROW_SELECT_SINGLE } = Const;
|
||||||
|
|||||||
@ -81,7 +81,7 @@ describe('DataContext', () => {
|
|||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
wrapper = shallow(shallowContext());
|
wrapper = shallow(shallowContext());
|
||||||
wrapper.instance().componentWillReceiveProps({
|
wrapper.instance().UNSAFE_componentWillReceiveProps({
|
||||||
data: newData
|
data: newData
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@ -99,7 +99,7 @@ describe('DataContext', () => {
|
|||||||
|
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
wrapper = shallow(shallowContext());
|
wrapper = shallow(shallowContext());
|
||||||
wrapper.instance().componentWillReceiveProps({
|
wrapper.instance().UNSAFE_componentWillReceiveProps({
|
||||||
selectRow: newSelectRow
|
selectRow: newSelectRow
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -115,7 +115,7 @@ describe('DataContext', () => {
|
|||||||
...defaultSelectRow,
|
...defaultSelectRow,
|
||||||
selected: defaultSelected
|
selected: defaultSelected
|
||||||
}));
|
}));
|
||||||
wrapper.instance().componentWillReceiveProps({
|
wrapper.instance().UNSAFE_componentWillReceiveProps({
|
||||||
selectRow: defaultSelectRow
|
selectRow: defaultSelectRow
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@ -128,7 +128,7 @@ describe('DataContext', () => {
|
|||||||
describe('if nextProps.selectRow is not existing', () => {
|
describe('if nextProps.selectRow is not existing', () => {
|
||||||
beforeEach(() => {
|
beforeEach(() => {
|
||||||
wrapper = shallow(shallowContext());
|
wrapper = shallow(shallowContext());
|
||||||
wrapper.instance().componentWillReceiveProps({});
|
wrapper.instance().UNSAFE_componentWillReceiveProps({});
|
||||||
});
|
});
|
||||||
|
|
||||||
it('should not set this.selected', () => {
|
it('should not set this.selected', () => {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user