Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor(react-grid): rename the *hiddenColumns getters and props #651

Merged
4 changes: 2 additions & 2 deletions packages/dx-grid-core/src/column-chooser/computeds.js
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
export const columnChooserItems = (columns, hiddenColumns) =>
columns.map(column => ({ column, hidden: hiddenColumns.indexOf(column.name) !== -1 }));
export const columnChooserItems = (columns, hiddenColumnNames) =>
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why this is not in the plugins directory?

columns.map(column => ({ column, hidden: hiddenColumnNames.indexOf(column.name) !== -1 }));
4 changes: 2 additions & 2 deletions packages/dx-grid-core/src/column-chooser/computeds.test.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,9 +4,9 @@ describe('ColumnChooser computeds', () => {
describe('#columnChooserItems', () => {
it('should return items correctly', () => {
const columns = [{ name: 'a' }, { name: 'b' }, { name: 'c' }];
const hiddenColumns = ['c', 'a'];
const hiddenColumnNames = ['c', 'a'];

expect(columnChooserItems(columns, hiddenColumns))
expect(columnChooserItems(columns, hiddenColumnNames))
.toEqual([
{ column: { name: 'a' }, hidden: true },
{ column: { name: 'b' }, hidden: false },
Expand Down
8 changes: 4 additions & 4 deletions packages/dx-grid-core/src/column-chooser/reducers.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
export const toggleColumn = (hiddenColumns, columnName) => (
hiddenColumns.indexOf(columnName) === -1
? [...hiddenColumns, columnName]
: hiddenColumns.filter(hiddenColumn => hiddenColumn !== columnName)
export const toggleColumn = (hiddenColumnNames, columnName) => (
hiddenColumnNames.indexOf(columnName) === -1
? [...hiddenColumnNames, columnName]
: hiddenColumnNames.filter(hiddenColumn => hiddenColumn !== columnName)
);
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { TABLE_DATA_TYPE } from './../table/constants';

export const visibleTableColumns = (tableColumns, hiddenColumns) =>
export const visibleTableColumns = (tableColumns, hiddenColumnNames) =>
tableColumns.filter(tableColumn =>
tableColumn.type !== TABLE_DATA_TYPE || hiddenColumns.indexOf(tableColumn.column.name) === -1);
tableColumn.type !== TABLE_DATA_TYPE ||
hiddenColumnNames.indexOf(tableColumn.column.name) === -1);
Original file line number Diff line number Diff line change
Expand Up @@ -10,9 +10,9 @@ describe('TableColumnVisibility computeds', () => {
{ type: TABLE_DATA_TYPE, column: { name: 'c' } },
{ type: TABLE_DATA_TYPE, column: { name: 'd' } },
];
const hiddenColumns = ['a', 'c', 'd'];
const hiddenColumnNames = ['a', 'c', 'd'];

expect(visibleTableColumns(tableColumns, hiddenColumns))
expect(visibleTableColumns(tableColumns, hiddenColumnNames))
.toEqual([{ type: TABLE_DATA_TYPE, column: { name: 'b' } }]);
});

Expand All @@ -22,9 +22,9 @@ describe('TableColumnVisibility computeds', () => {
{ type: TABLE_DATA_TYPE, column: { name: 'a' } },
{ type: TABLE_DATA_TYPE, column: { name: 'b' } },
];
const hiddenColumns = ['a'];
const hiddenColumnNames = ['a'];

expect(visibleTableColumns(tableColumns, hiddenColumns))
expect(visibleTableColumns(tableColumns, hiddenColumnNames))
.toEqual([{ key: 'editCommand' }, { type: TABLE_DATA_TYPE, column: { name: 'b' } }]);
});
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,17 +26,17 @@ export default class Demo extends React.PureComponent {
{ columnName: 'sex', width: 100 },
],
rows: generateRows({ length: 6 }),
hiddenColumns: ['sex', 'car'],
hiddenColumnNames: ['sex', 'car'],
};

this.hiddenColumnsChange = (hiddenColumns) => {
this.setState({ hiddenColumns });
this.hiddenColumnsChange = (hiddenColumnNames) => {
this.setState({ hiddenColumnNames });
};
}

render() {
const {
columns, rows, tableColumnExtensions, hiddenColumns,
columns, rows, tableColumnExtensions, hiddenColumnNames,
} = this.state;

return (
Expand All @@ -49,7 +49,7 @@ export default class Demo extends React.PureComponent {
/>
<TableHeaderRow />
<TableColumnVisibility
hiddenColumns={hiddenColumns}
hiddenColumnNames={hiddenColumnNames}
onHiddenColumnsChange={this.hiddenColumnsChange}
/>
<Toolbar />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,12 +23,12 @@ export default class Demo extends React.PureComponent {
{ name: 'car', title: 'Car' },
],
rows: generateRows({ length: 6 }),
defaultHiddenColumns: ['sex', 'car'],
defaultHiddenColumnNames: ['sex', 'car'],
};
}

render() {
const { columns, rows, defaultHiddenColumns } = this.state;
const { columns, rows, defaultHiddenColumnNames } = this.state;
return (
<Grid
rows={rows}
Expand All @@ -37,7 +37,7 @@ export default class Demo extends React.PureComponent {
<Table />
<TableHeaderRow />
<TableColumnVisibility
defaultHiddenColumns={defaultHiddenColumns}
defaultHiddenColumnNames={defaultHiddenColumnNames}
/>
<Toolbar />
<ColumnChooser />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ export default class Demo extends React.PureComponent {
/>
<TableSelection showSelectAll />
<TableColumnVisibility
defaultHiddenColumns={['customer']}
defaultHiddenColumnNames={['customer']}
/>
<Toolbar />
<GroupingPanel showSortingControls />
Expand Down
12 changes: 6 additions & 6 deletions packages/dx-react-demos/src/material-ui/column-chooser/basic.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -29,17 +29,17 @@ export default class Demo extends React.PureComponent {
{ columnName: 'sex', width: 100 },
],
rows: generateRows({ length: 6 }),
hiddenColumns: ['sex', 'car'],
hiddenColumnNames: ['sex', 'car'],
};

this.hiddenColumnsChange = (hiddenColumns) => {
this.setState({ hiddenColumns });
this.hiddenColumnsChange = (hiddenColumnNames) => {
this.setState({ hiddenColumnNames });
};
}

render() {
const {
columns, rows, hiddenColumns, tableColumnExtensions,
columns, rows, hiddenColumnNames, tableColumnExtensions,
} = this.state;
return (
<MUIGrid container>
Expand All @@ -54,7 +54,7 @@ export default class Demo extends React.PureComponent {
/>
<TableHeaderRow />
<TableColumnVisibility
hiddenColumns={hiddenColumns}
hiddenColumnNames={hiddenColumnNames}
/>
</Grid>
</Paper>
Expand All @@ -68,7 +68,7 @@ export default class Demo extends React.PureComponent {
</Toolbar>
<ColumnChooser
columns={columns}
hiddenColumns={hiddenColumns}
hiddenColumnNames={hiddenColumnNames}
onHiddenColumnsChange={this.hiddenColumnsChange}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe we also rename onHiddenColumnsChange to onHiddenColumnNamesChange?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It seems too long

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Let's leave it as is.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we introduce this complexity in naming guidelines? There is a simple rule. The onXXXChange spelling for an event and defaultXXX for a starting value.

/>
</Paper>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,16 +24,16 @@ export default class Demo extends React.PureComponent {
{ name: 'car', title: 'Car' },
],
rows: generateRows({ length: 6 }),
hiddenColumns: ['sex', 'car'],
hiddenColumnNames: ['sex', 'car'],
};

this.hiddenColumnsChange = (hiddenColumns) => {
this.setState({ hiddenColumns });
this.hiddenColumnsChange = (hiddenColumnNames) => {
this.setState({ hiddenColumnNames });
};
}

render() {
const { columns, rows, hiddenColumns } = this.state;
const { columns, rows, hiddenColumnNames } = this.state;
return (
<Paper>
<Grid
Expand All @@ -44,7 +44,7 @@ export default class Demo extends React.PureComponent {
<Toolbar />
<TableHeaderRow />
<TableColumnVisibility
hiddenColumns={hiddenColumns}
hiddenColumnNames={hiddenColumnNames}
onHiddenColumnsChange={this.hiddenColumnsChange}
/>
<ColumnChooser />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,12 +24,12 @@ export default class Demo extends React.PureComponent {
{ name: 'car', title: 'Car' },
],
rows: generateRows({ length: 6 }),
defaultHiddenColumns: ['sex', 'car'],
defaultHiddenColumnNames: ['sex', 'car'],
};
}

render() {
const { columns, rows, defaultHiddenColumns } = this.state;
const { columns, rows, defaultHiddenColumnNames } = this.state;
return (
<Paper>
<Grid
Expand All @@ -40,7 +40,7 @@ export default class Demo extends React.PureComponent {
<Toolbar />
<TableHeaderRow />
<TableColumnVisibility
defaultHiddenColumns={defaultHiddenColumns}
defaultHiddenColumnNames={defaultHiddenColumnNames}
/>
<ColumnChooser />
</Grid>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ export default class Demo extends React.PureComponent {

<TableGroupRow />
<TableColumnVisibility
defaultHiddenColumns={['customer']}
defaultHiddenColumnNames={['customer']}
/>
<Toolbar />
<GroupingPanel showSortingControls />
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ ColumnChooser.Overlay = Overlay;

ColumnChooser.propTypes = {
messages: PropTypes.shape({
hiddenColumns: PropTypes.string,
hiddenColumnNames: PropTypes.string,
}),
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ const defaultProps = {
};

describe('ToggleButton', () => {
it('should provide a hiddenColumns message text', () => {
it('should provide a correct message text', () => {
const tree = shallow((
<ToggleButton
{...defaultProps}
Expand Down
4 changes: 2 additions & 2 deletions packages/dx-react-grid/docs/guides/column-visibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ Import the plugins listed above to enable a user to hide or show columns at runt

### Uncontrolled Mode

In [uncontrolled mode](controlled-and-uncontrolled-modes.md#uncontrolled-mode), specify initially hidden columns via the `TableColumnVisibility` plugin's `defaultHiddenColumns` property.
In [uncontrolled mode](controlled-and-uncontrolled-modes.md#uncontrolled-mode), specify initially hidden columns via the `TableColumnVisibility` plugin's `defaultHiddenColumnNames` property.

.embedded-demo(column-chooser/uncontrolled)

### Controlled Mode

In [controlled mode](controlled-and-uncontrolled-modes.md#controlled-mode), pass the hidden columns to the `TableColumnVisibility` plugin's `hiddenColumns` property and handle the `onHiddenColumnsChange` event to control column visibility externally.
In [controlled mode](controlled-and-uncontrolled-modes.md#controlled-mode), pass the hidden columns to the `TableColumnVisibility` plugin's `hiddenColumnNames` property and handle the `onHiddenColumnsChange` event to control column visibility externally.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

... pass the hidden column names to the ... hiddenColumnNames property ?


.embedded-demo(column-chooser/controlled)
2 changes: 1 addition & 1 deletion packages/dx-react-grid/docs/reference/column-chooser.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,7 +104,7 @@ If you specify additional properties, they are added to a component's root eleme
Name | Plugin | Type | Description
-----|--------|------|------------
columns | Getter | Array&lt;[Column](grid.md#column)&gt; | Grid columns.
hiddenColumns | Getter | Array&lt;[Column](grid.md#column)&gt; | Columns to be hidden.
hiddenColumnNames | Getter | Array&lt;string&gt; | Names of columns to be hidden.
toggleColumnVisibility | Action | ({ columnName: string }) => void | Toggles a column's visibility.
toolbarContent | Template | Object? | A template that renders toolbar content.

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,9 @@ A plugin that manages Grid columns' visibility.

Name | Type | Default | Description
-----|------|---------|------------
hiddenColumns | Array&lt;string&gt; | [] | Hidden column names.
defaultHiddenColumns | Array&lt;string&gt; | [] | Names of initially hidden columns in uncontrolled mode.
onHiddenColumnsChange | (hiddenColumns: Array&lt;string&gt;) => void | | Handles hidden columns adding or removing.
hiddenColumnNames | Array&lt;string&gt; | [] | Hidden column names.
defaultHiddenColumnNames | Array&lt;string&gt; | [] | Names of initially hidden columns in uncontrolled mode.
onHiddenColumnsChange | (hiddenColumnNames: Array&lt;string&gt;) => void | | Handles hidden columns adding or removing.
emptyMessageComponent | ElementType&lt;[EmptyMessageProps](#emptymessageprops)&gt; | | A component that renders a message that is displayed when all columns are hidden.
messages | object | | An object that specifies [localization messages](#localization-messages).

Expand Down Expand Up @@ -58,5 +58,5 @@ table | Template | Object? | A template that renders a table.
Name | Plugin | Type | Description
-----|--------|------|------------
tableColumns | Getter | Array&lt;[TableColumn](table.md#tablecolumn)&gt; | Visible table columns.
hiddenColumns | Getter | Array&lt;[TableColumn](table.md#tablecolumn)&gt; | Hidden table columns.
hiddenColumnNames | Getter | Array&lt;string&gt; | Hidden table column names.
toggleVisibility | Action | ({ columnName: string }) => void | Toggles a column's visibility.
4 changes: 2 additions & 2 deletions packages/dx-react-grid/src/plugins/column-chooser.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ export class ColumnChooser extends React.PureComponent {
<Template name="toolbarContent">
<TemplatePlaceholder />
<TemplateConnector>
{({ columns, hiddenColumns }, { toggleColumnVisibility }) => (
{({ columns, hiddenColumnNames }, { toggleColumnVisibility }) => (
<React.Fragment>
<ToggleButton
buttonRef={this.buttonRef}
Expand All @@ -63,7 +63,7 @@ export class ColumnChooser extends React.PureComponent {
onHide={this.handleHide}
>
<Container>
{columnChooserItems(columns, hiddenColumns)
{columnChooserItems(columns, hiddenColumnNames)
.map(item => (
<Item
key={item.column.name}
Expand Down
4 changes: 2 additions & 2 deletions packages/dx-react-grid/src/plugins/column-chooser.test.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ const defaultDeps = {
{ name: 'b' },
{ name: 'c' },
],
hiddenColumns: ['a'],
hiddenColumnNames: ['a'],
},
action: {
toggleVisibility: () => { },
Expand Down Expand Up @@ -117,6 +117,6 @@ describe('ColumnChooser', () => {
expect(columnChooserItems)
.toHaveBeenCalledTimes(1);
expect(columnChooserItems)
.toHaveBeenCalledWith(defaultDeps.getter.columns, defaultDeps.getter.hiddenColumns);
.toHaveBeenCalledWith(defaultDeps.getter.columns, defaultDeps.getter.hiddenColumnNames);
});
});
Loading