Skip to content

Commit

Permalink
refactor(react-grid): rename the setColumnFilter action to changeColu…
Browse files Browse the repository at this point in the history
…mnFilter (#659)

BREAKING CHANGES:

The FilteringState plugin's `setColumnFilter` action has been renamed to `changeColumnFilter`.
  • Loading branch information
kvet committed Jan 11, 2018
1 parent 1285a14 commit eec6c41
Show file tree
Hide file tree
Showing 8 changed files with 38 additions and 38 deletions.
@@ -1,4 +1,4 @@
export const setColumnFilter = (filters, { columnName, config }) => {
export const changeColumnFilter = (filters, { columnName, config }) => {
const filterIndex = filters.findIndex(f => f.columnName === columnName);
const nextState = filters.slice();

Expand Down
@@ -1,30 +1,30 @@
import {
setColumnFilter,
changeColumnFilter,
} from './reducers';

describe('SortingState reducers', () => {
describe('#setColumnFilter', () => {
describe('FilteringState reducers', () => {
describe('#changeColumnFilter', () => {
it('can set column filter', () => {
const filters = [];
const payload = { columnName: 'column', config: { value: 'value' } };

const nextFilters = setColumnFilter(filters, payload);
const nextFilters = changeColumnFilter(filters, payload);
expect(nextFilters).toEqual([{ columnName: 'column', value: 'value' }]);
});

it('can change column filter', () => {
const filters = [{ columnName: 'column', value: 'value' }];
const payload = { columnName: 'column', config: { value: 'new value' } };

const nextFilters = setColumnFilter(filters, payload);
const nextFilters = changeColumnFilter(filters, payload);
expect(nextFilters).toEqual([{ columnName: 'column', value: 'new value' }]);
});

it('can add column filter', () => {
const filters = [{ columnName: 'column1', value: 'value' }];
const payload = { columnName: 'column2', config: { value: 'new value' } };

const nextFilters = setColumnFilter(filters, payload);
const nextFilters = changeColumnFilter(filters, payload);
expect(nextFilters).toEqual([
{ columnName: 'column1', value: 'value' },
{ columnName: 'column2', value: 'new value' },
Expand All @@ -35,7 +35,7 @@ describe('SortingState reducers', () => {
const filters = [{ columnName: 'column', value: 'value' }];
const payload = { columnName: 'column', config: null };

const nextFilters = setColumnFilter(filters, payload);
const nextFilters = changeColumnFilter(filters, payload);
expect(nextFilters).toEqual([]);
});
});
Expand Down
2 changes: 1 addition & 1 deletion packages/dx-react-grid/docs/reference/filtering-state.md
Expand Up @@ -40,4 +40,4 @@ none
Name | Plugin | Type | Description
-----|--------|------|------------
filters | Getter | Array<[Filter](#filter)> | The currently applied filters.
setColumnFilter | Action | ({ columnName: string, config: Object }) => void | Adds, changes or removes a filter. Pass `null` to the `config` argument to remove the filter associated with the specified column.
changeColumnFilter | Action | ({ columnName: string, config: Object }) => void | Adds, changes or removes a filter. Pass `null` to the `config` argument to remove the filter associated with the specified column.
2 changes: 1 addition & 1 deletion packages/dx-react-grid/docs/reference/table-filter-row.md
Expand Up @@ -59,7 +59,7 @@ Name | Plugin | Type | Description
-----|--------|------|------------
tableHeaderRows | Getter | Array<[TableRow](table.md#tablerow)> | Header rows to be rendered.
filters | Getter | Array<[Filter](filtering-state.md#filter)> | The filtering options.
setColumnFilter | Action | ({ columnName: string, config: Object }) => void | Changes a column filter or clears it if config is null.
changeColumnFilter | Action | ({ columnName: string, config: Object }) => void | Changes a column filter or clears it if config is null.
tableCell | Template | [TableCellProps](table.md#tablecellprops) | A template that renders a table cell.
tableRow | Template | [TableRowProps](table.md#tablerowprops) | A template that renders a table row.

Expand Down
8 changes: 4 additions & 4 deletions packages/dx-react-grid/src/plugins/filtering-state.jsx
@@ -1,7 +1,7 @@
import React from 'react';
import PropTypes from 'prop-types';
import { Getter, Action, PluginContainer } from '@devexpress/dx-react-core';
import { setColumnFilter } from '@devexpress/dx-grid-core';
import { changeColumnFilter } from '@devexpress/dx-grid-core';
import { createStateHelper } from '../utils/state-helper';

export class FilteringState extends React.PureComponent {
Expand All @@ -13,8 +13,8 @@ export class FilteringState extends React.PureComponent {
};
const stateHelper = createStateHelper(this);

this.setColumnFilter = stateHelper.applyFieldReducer
.bind(stateHelper, 'filters', setColumnFilter);
this.changeColumnFilter = stateHelper.applyFieldReducer
.bind(stateHelper, 'filters', changeColumnFilter);
}
getState() {
return {
Expand All @@ -37,7 +37,7 @@ export class FilteringState extends React.PureComponent {
pluginName="FilteringState"
>
<Getter name="filters" value={filters} />
<Action name="setColumnFilter" action={this.setColumnFilter} />
<Action name="changeColumnFilter" action={this.changeColumnFilter} />
</PluginContainer>
);
}
Expand Down
42 changes: 21 additions & 21 deletions packages/dx-react-grid/src/plugins/filtering-state.test.jsx
Expand Up @@ -2,12 +2,12 @@ import React from 'react';
import { mount } from 'enzyme';
import { setupConsole } from '@devexpress/dx-testing';
import { PluginHost } from '@devexpress/dx-react-core';
import { setColumnFilter } from '@devexpress/dx-grid-core';
import { changeColumnFilter } from '@devexpress/dx-grid-core';
import { pluginDepsToComponents, getComputedState, executeComputedAction } from './test-utils';
import { FilteringState } from './filtering-state';

jest.mock('@devexpress/dx-grid-core', () => ({
setColumnFilter: jest.fn(),
changeColumnFilter: jest.fn(),
}));

const defaultDeps = {
Expand All @@ -27,7 +27,7 @@ describe('FilteringState', () => {
});

beforeEach(() => {
setColumnFilter.mockImplementation(() => []);
changeColumnFilter.mockImplementation(() => []);
});
afterEach(() => {
jest.resetAllMocks();
Expand Down Expand Up @@ -65,7 +65,7 @@ describe('FilteringState', () => {
.toBe(filters);
});

it('should fire the "onFiltersChange" callback and should change filters in uncontrolled mode after the "setColumnFilter" action is fired', () => {
it('should fire the "onFiltersChange" callback and should change filters in uncontrolled mode after the "changeColumnFilter" action is fired', () => {
const defaultFilters = [{ columnName: 'a', value: 'a' }];
const newFilters = [{ columnName: 'b', value: 'a' }];

Expand All @@ -81,10 +81,10 @@ describe('FilteringState', () => {
));

const payload = {};
setColumnFilter.mockReturnValue(newFilters);
executeComputedAction(tree, actions => actions.setColumnFilter(payload));
changeColumnFilter.mockReturnValue(newFilters);
executeComputedAction(tree, actions => actions.changeColumnFilter(payload));

expect(setColumnFilter)
expect(changeColumnFilter)
.toBeCalledWith(defaultFilters, payload);

expect(getComputedState(tree).filters)
Expand All @@ -94,7 +94,7 @@ describe('FilteringState', () => {
.toBeCalledWith(newFilters);
});

it('should fire the "onFiltersChange" callback and should change filters in controlled mode after the "setColumnFilter" action is fired', () => {
it('should fire the "onFiltersChange" callback and should change filters in controlled mode after the "changeColumnFilter" action is fired', () => {
const filters = [{ columnName: 'a', value: 'a' }];
const newFilters = [{ columnName: 'b', value: 'a' }];

Expand All @@ -110,10 +110,10 @@ describe('FilteringState', () => {
));

const payload = {};
setColumnFilter.mockReturnValue(newFilters);
executeComputedAction(tree, actions => actions.setColumnFilter(payload));
changeColumnFilter.mockReturnValue(newFilters);
executeComputedAction(tree, actions => actions.changeColumnFilter(payload));

expect(setColumnFilter)
expect(changeColumnFilter)
.toBeCalledWith(filters, payload);

expect(getComputedState(tree).filters)
Expand Down Expand Up @@ -141,14 +141,14 @@ describe('FilteringState', () => {
</PluginHost>
));

setColumnFilter.mockReturnValueOnce(transitionalFilters);
setColumnFilter.mockReturnValueOnce(newFilters);
changeColumnFilter.mockReturnValueOnce(transitionalFilters);
changeColumnFilter.mockReturnValueOnce(newFilters);
executeComputedAction(tree, (actions) => {
actions.setColumnFilter(payload);
actions.setColumnFilter(payload);
actions.changeColumnFilter(payload);
actions.changeColumnFilter(payload);
});

expect(setColumnFilter)
expect(changeColumnFilter)
.lastCalledWith(transitionalFilters, payload);

expect(filtersChange)
Expand All @@ -172,14 +172,14 @@ describe('FilteringState', () => {
</PluginHost>
));

setColumnFilter.mockReturnValueOnce(transitionalFilters);
setColumnFilter.mockReturnValueOnce(newFilters);
changeColumnFilter.mockReturnValueOnce(transitionalFilters);
changeColumnFilter.mockReturnValueOnce(newFilters);
executeComputedAction(tree, (actions) => {
actions.setColumnFilter(payload);
actions.setColumnFilter(payload);
actions.changeColumnFilter(payload);
actions.changeColumnFilter(payload);
});

expect(setColumnFilter)
expect(changeColumnFilter)
.lastCalledWith(transitionalFilters, payload);

expect(filtersChange)
Expand Down
4 changes: 2 additions & 2 deletions packages/dx-react-grid/src/plugins/table-filter-row.jsx
Expand Up @@ -43,10 +43,10 @@ export class TableFilterRow extends React.PureComponent {
>
{params => (
<TemplateConnector>
{({ filters }, { setColumnFilter }) => {
{({ filters }, { changeColumnFilter }) => {
const { name: columnName } = params.tableColumn.column;
const filter = getColumnFilterConfig(filters, columnName);
const onFilter = config => setColumnFilter({ columnName, config });
const onFilter = config => changeColumnFilter({ columnName, config });
return (
<TemplatePlaceholder
name="valueEditor"
Expand Down
Expand Up @@ -26,7 +26,7 @@ const defaultDeps = {
filters: [{ columnName: 'a', value: 'b' }],
},
action: {
setColumnFilter: jest.fn(),
changeColumnFilter: jest.fn(),
},
template: {
tableCell: {
Expand Down

0 comments on commit eec6c41

Please sign in to comment.