Skip to content

Commit db56cad

Browse files
refactor(react-grid): rename the expandedRows Getter and dependent properties (#653)
BREAKING CHANGES: The following RowDetailState plugin's properties have been renamed to improve the API consistency: - `expandedRows` => `expandedRowIds` - `defaultExpandedRows` => `defaultExpandedRowIds` - `onExpandedRowsChange` => `onExpandedRowIdsChange` The `expandedRows` getter has been renamed to `expandedRowIds`.
1 parent c56ff88 commit db56cad

File tree

21 files changed

+145
-145
lines changed

21 files changed

+145
-145
lines changed

packages/dx-grid-core/src/plugins/table-row-detail/computeds.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import { TABLE_DETAIL_TYPE } from './constants';
22
import { TABLE_DATA_TYPE } from '../table/constants';
33

4-
export const tableRowsWithExpandedDetail = (tableRows, expandedRows, rowHeight) => {
4+
export const tableRowsWithExpandedDetail = (tableRows, expandedRowIds, rowHeight) => {
55
let result = tableRows;
6-
expandedRows
6+
expandedRowIds
77
.forEach((expandedRowId) => {
88
const rowIndex = result.findIndex(tableRow =>
99
tableRow.type === TABLE_DATA_TYPE && tableRow.rowId === expandedRowId);

packages/dx-grid-core/src/plugins/table-row-detail/computeds.test.js

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -11,9 +11,9 @@ describe('TableRowDetail Plugin computeds', () => {
1111
{ type: 'data', rowId: 1, row: 'row1' },
1212
{ type: 'data', rowId: 2, row: 'row2' },
1313
];
14-
const expandedRows = [2];
14+
const expandedRowIds = [2];
1515

16-
const rowsWithDetails = tableRowsWithExpandedDetail(tableRows, expandedRows, 100);
16+
const rowsWithDetails = tableRowsWithExpandedDetail(tableRows, expandedRowIds, 100);
1717
expect(rowsWithDetails).toEqual([
1818
{ type: 'data', rowId: 1, row: 'row1' },
1919
{ type: 'data', rowId: 2, row: 'row2' },
@@ -30,9 +30,9 @@ describe('TableRowDetail Plugin computeds', () => {
3030

3131
it('can\'t expand not data', () => {
3232
const tableRows = [{ type: 'data', rowId: 1, row: 'row1' }, { type: 'undefined', rowId: 2, row: 'row2' }];
33-
const expandedRows = [2];
33+
const expandedRowIds = [2];
3434

35-
const rowsWithDetails = tableRowsWithExpandedDetail(tableRows, expandedRows, 100);
35+
const rowsWithDetails = tableRowsWithExpandedDetail(tableRows, expandedRowIds, 100);
3636
expect(rowsWithDetails).toEqual([
3737
{ type: 'data', rowId: 1, row: 'row1' },
3838
{ type: 'undefined', rowId: 2, row: 'row2' },
@@ -41,9 +41,9 @@ describe('TableRowDetail Plugin computeds', () => {
4141

4242
it('can expand several rows', () => {
4343
const tableRows = [{ type: 'data', rowId: 1, row: 'row1' }, { type: 'data', rowId: 2, row: 'row2' }];
44-
const expandedRows = [1, 2];
44+
const expandedRowIds = [1, 2];
4545

46-
const rowsWithDetails = tableRowsWithExpandedDetail(tableRows, expandedRows, 100);
46+
const rowsWithDetails = tableRowsWithExpandedDetail(tableRows, expandedRowIds, 100);
4747
expect(rowsWithDetails).toEqual([
4848
{ type: 'data', rowId: 1, row: 'row1' },
4949
{
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { TABLE_DETAIL_TYPE } from './constants';
22
import { TABLE_DATA_TYPE } from '../table/constants';
33

4-
export const isDetailRowExpanded = (expandedRows, rowId) => expandedRows.indexOf(rowId) > -1;
4+
export const isDetailRowExpanded = (expandedRowIds, rowId) => expandedRowIds.indexOf(rowId) > -1;
55
export const isDetailToggleTableCell = (tableRow, tableColumn) =>
66
tableColumn.type === TABLE_DETAIL_TYPE && tableRow.type === TABLE_DATA_TYPE;
77
export const isDetailTableRow = tableRow => tableRow.type === TABLE_DETAIL_TYPE;

packages/dx-grid-core/src/plugins/table-row-detail/helpers.test.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@ import {
99
describe('TableRowDetail Plugin helpers', () => {
1010
describe('#isDetailRowExpanded', () => {
1111
it('should work', () => {
12-
const expandedRows = [1];
12+
const expandedRowIds = [1];
1313

14-
expect(isDetailRowExpanded(expandedRows, 1)).toBeTruthy();
15-
expect(isDetailRowExpanded(expandedRows, 2)).toBeFalsy();
14+
expect(isDetailRowExpanded(expandedRowIds, 1)).toBeTruthy();
15+
expect(isDetailRowExpanded(expandedRowIds, 2)).toBeFalsy();
1616
});
1717
});
1818

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
export const toggleDetailRowExpanded = (prevExpanded, { rowId, state }) => {
2-
const expandedRows = prevExpanded.slice();
3-
const expandedIndex = expandedRows.indexOf(rowId);
2+
const expandedRowIds = prevExpanded.slice();
3+
const expandedIndex = expandedRowIds.indexOf(rowId);
44
const rowState = state !== undefined ? state : expandedIndex === -1;
55

66
if (expandedIndex > -1 && !rowState) {
7-
expandedRows.splice(expandedIndex, 1);
7+
expandedRowIds.splice(expandedIndex, 1);
88
} else if (expandedIndex === -1 && rowState) {
9-
expandedRows.push(rowId);
9+
expandedRowIds.push(rowId);
1010
}
1111

12-
return expandedRows;
12+
return expandedRowIds;
1313
};

packages/dx-grid-core/src/plugins/table-row-detail/reducers.test.js

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -5,41 +5,41 @@ import {
55
describe('TableRowDetail Plugin reducers', () => {
66
describe('#toggleDetailRowExpanded', () => {
77
it('can expand row by toggling', () => {
8-
const expandedRows = [];
8+
const expandedRowIds = [];
99
const payload = { rowId: 1 };
10-
const nextExpandedRows = toggleDetailRowExpanded(expandedRows, payload);
10+
const nextExpandedRowIds = toggleDetailRowExpanded(expandedRowIds, payload);
1111

12-
expect(nextExpandedRows).toEqual([1]);
12+
expect(nextExpandedRowIds).toEqual([1]);
1313
});
1414

1515
it('can collapse row by toggling', () => {
16-
const expandedRows = [1];
16+
const expandedRowIds = [1];
1717
const payload = { rowId: 1 };
18-
const nextExpandedRows = toggleDetailRowExpanded(expandedRows, payload);
18+
const nextExpandedRowIds = toggleDetailRowExpanded(expandedRowIds, payload);
1919

20-
expect(nextExpandedRows).toEqual([]);
20+
expect(nextExpandedRowIds).toEqual([]);
2121
});
2222

2323
it('does not collapse if state is true', () => {
24-
const expandedRows = [1];
24+
const expandedRowIds = [1];
2525
const payload = { rowId: 1, state: true };
2626

27-
let nextExpandedRows = toggleDetailRowExpanded(expandedRows, payload);
28-
expect(nextExpandedRows).toEqual([1]);
27+
let nextExpandedRowIds = toggleDetailRowExpanded(expandedRowIds, payload);
28+
expect(nextExpandedRowIds).toEqual([1]);
2929

30-
nextExpandedRows = toggleDetailRowExpanded(expandedRows, payload);
31-
expect(nextExpandedRows).toEqual([1]);
30+
nextExpandedRowIds = toggleDetailRowExpanded(expandedRowIds, payload);
31+
expect(nextExpandedRowIds).toEqual([1]);
3232
});
3333

3434
it('doesn not expand if state is false', () => {
35-
const expandedRows = [];
35+
const expandedRowIds = [];
3636
const payload = { rowId: 1, state: false };
3737

38-
let nextExpandedRows = toggleDetailRowExpanded(expandedRows, payload);
39-
expect(nextExpandedRows).toEqual([]);
38+
let nextExpandedRowIds = toggleDetailRowExpanded(expandedRowIds, payload);
39+
expect(nextExpandedRowIds).toEqual([]);
4040

41-
nextExpandedRows = toggleDetailRowExpanded(expandedRows, payload);
42-
expect(nextExpandedRows).toEqual([]);
41+
nextExpandedRowIds = toggleDetailRowExpanded(expandedRowIds, payload);
42+
expect(nextExpandedRowIds).toEqual([]);
4343
});
4444
});
4545
});

packages/dx-react-demos/src/bootstrap3/detail-row/detail-row-controlled.jsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -34,22 +34,22 @@ export default class Demo extends React.PureComponent {
3434
{ name: 'car', title: 'Car' },
3535
],
3636
rows: generateRows({ length: 7 }),
37-
expandedRows: [2, 5],
37+
expandedRowIds: [2, 5],
3838
};
3939

40-
this.changeExpandedDetails = expandedRows => this.setState({ expandedRows });
40+
this.changeExpandedDetails = expandedRowIds => this.setState({ expandedRowIds });
4141
}
4242
render() {
43-
const { rows, columns, expandedRows } = this.state;
43+
const { rows, columns, expandedRowIds } = this.state;
4444

4545
return (
4646
<Grid
4747
rows={rows}
4848
columns={columns}
4949
>
5050
<RowDetailState
51-
expandedRows={expandedRows}
52-
onExpandedRowsChange={this.changeExpandedDetails}
51+
expandedRowIds={expandedRowIds}
52+
onExpandedRowIdsChange={this.changeExpandedDetails}
5353
/>
5454
<Table />
5555
<TableHeaderRow />

packages/dx-react-demos/src/bootstrap3/detail-row/simple-detail-row.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ export default class Demo extends React.PureComponent {
4545
columns={columns}
4646
>
4747
<RowDetailState
48-
defaultExpandedRows={[2, 5]}
48+
defaultExpandedRowIds={[2, 5]}
4949
/>
5050
<Table />
5151
<TableHeaderRow />

packages/dx-react-demos/src/bootstrap3/featured-redux-integration/demo.jsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ const GridContainer = ({
7171
onSortingChange,
7272
selection,
7373
onSelectionChange,
74-
expandedRows,
75-
onExpandedRowsChange,
74+
expandedRowIds,
75+
onExpandedRowIdsChange,
7676
grouping,
7777
onGroupingChange,
7878
expandedGroups,
@@ -114,8 +114,8 @@ const GridContainer = ({
114114
onPageSizeChange={onPageSizeChange}
115115
/>
116116
<RowDetailState
117-
expandedRows={expandedRows}
118-
onExpandedRowsChange={onExpandedRowsChange}
117+
expandedRowIds={expandedRowIds}
118+
onExpandedRowIdsChange={onExpandedRowIdsChange}
119119
/>
120120
<SelectionState
121121
selection={selection}
@@ -164,8 +164,8 @@ GridContainer.propTypes = {
164164
onSortingChange: PropTypes.func.isRequired,
165165
selection: PropTypes.array.isRequired,
166166
onSelectionChange: PropTypes.func.isRequired,
167-
expandedRows: PropTypes.array.isRequired,
168-
onExpandedRowsChange: PropTypes.func.isRequired,
167+
expandedRowIds: PropTypes.array.isRequired,
168+
onExpandedRowIdsChange: PropTypes.func.isRequired,
169169
grouping: PropTypes.array.isRequired,
170170
onGroupingChange: PropTypes.func.isRequired,
171171
expandedGroups: PropTypes.array.isRequired,
@@ -199,7 +199,7 @@ const gridInitialState = {
199199
grouping: [],
200200
expandedGroups: [],
201201
selection: [],
202-
expandedRows: [1],
202+
expandedRowIds: [1],
203203
filters: [],
204204
currentPage: 0,
205205
pageSize: 10,
@@ -240,7 +240,7 @@ const mapStateToProps = state => state;
240240
const mapDispatchToProps = dispatch => ({
241241
onSortingChange: sorting => dispatch(createGridAction('sorting', sorting)),
242242
onSelectionChange: selection => dispatch(createGridAction('selection', selection)),
243-
onExpandedRowsChange: expandedRows => dispatch(createGridAction('expandedRows', expandedRows)),
243+
onExpandedRowIdsChange: expandedRowIds => dispatch(createGridAction('expandedRowIds', expandedRowIds)),
244244
onGroupingChange: grouping => dispatch(createGridAction('grouping', grouping)),
245245
onExpandedGroupsChange: expandedGroups => dispatch(createGridAction('expandedGroups', expandedGroups)),
246246
onFiltersChange: filters => dispatch(createGridAction('filters', filters)),

packages/dx-react-demos/src/bootstrap3/featured-theming/demo.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ export default class Demo extends React.PureComponent {
174174
defaultPageSize={10}
175175
/>
176176
<RowDetailState
177-
defaultExpandedRows={[2]}
177+
defaultExpandedRowIds={[2]}
178178
/>
179179
<SelectionState
180180
defaultSelection={[1, 3, 18]}

packages/dx-react-demos/src/material-ui/detail-row/detail-row-controlled.jsx

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,13 @@ export default class Demo extends React.PureComponent {
3535
{ name: 'car', title: 'Car' },
3636
],
3737
rows: generateRows({ length: 7 }),
38-
expandedRows: [2, 5],
38+
expandedRowIds: [2, 5],
3939
};
4040

41-
this.changeExpandedDetails = expandedRows => this.setState({ expandedRows });
41+
this.changeExpandedDetails = expandedRowIds => this.setState({ expandedRowIds });
4242
}
4343
render() {
44-
const { rows, columns, expandedRows } = this.state;
44+
const { rows, columns, expandedRowIds } = this.state;
4545

4646
return (
4747
<Paper>
@@ -50,8 +50,8 @@ export default class Demo extends React.PureComponent {
5050
columns={columns}
5151
>
5252
<RowDetailState
53-
expandedRows={expandedRows}
54-
onExpandedRowsChange={this.changeExpandedDetails}
53+
expandedRowIds={expandedRowIds}
54+
onExpandedRowIdsChange={this.changeExpandedDetails}
5555
/>
5656
<Table />
5757
<TableHeaderRow />

packages/dx-react-demos/src/material-ui/detail-row/simple-detail-row.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ export default class Demo extends React.PureComponent {
4747
columns={columns}
4848
>
4949
<RowDetailState
50-
defaultExpandedRows={[2, 5]}
50+
defaultExpandedRowIds={[2, 5]}
5151
/>
5252
<Table />
5353
<TableHeaderRow />

packages/dx-react-demos/src/material-ui/featured-redux-integration/demo.jsx

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,8 @@ const GridContainer = ({
8383
onSortingChange,
8484
selection,
8585
onSelectionChange,
86-
expandedRows,
87-
onExpandedRowsChange,
86+
expandedRowIds,
87+
onExpandedRowIdsChange,
8888
grouping,
8989
onGroupingChange,
9090
expandedGroups,
@@ -127,8 +127,8 @@ const GridContainer = ({
127127
onPageSizeChange={onPageSizeChange}
128128
/>
129129
<RowDetailState
130-
expandedRows={expandedRows}
131-
onExpandedRowsChange={onExpandedRowsChange}
130+
expandedRowIds={expandedRowIds}
131+
onExpandedRowIdsChange={onExpandedRowIdsChange}
132132
/>
133133
<SelectionState
134134
selection={selection}
@@ -177,8 +177,8 @@ GridContainer.propTypes = {
177177
onSortingChange: PropTypes.func.isRequired,
178178
selection: PropTypes.array.isRequired,
179179
onSelectionChange: PropTypes.func.isRequired,
180-
expandedRows: PropTypes.array.isRequired,
181-
onExpandedRowsChange: PropTypes.func.isRequired,
180+
expandedRowIds: PropTypes.array.isRequired,
181+
onExpandedRowIdsChange: PropTypes.func.isRequired,
182182
grouping: PropTypes.array.isRequired,
183183
onGroupingChange: PropTypes.func.isRequired,
184184
expandedGroups: PropTypes.array.isRequired,
@@ -212,7 +212,7 @@ const gridInitialState = {
212212
grouping: [],
213213
expandedGroups: [],
214214
selection: [],
215-
expandedRows: [1],
215+
expandedRowIds: [1],
216216
filters: [],
217217
currentPage: 0,
218218
pageSize: 10,
@@ -253,7 +253,7 @@ const mapStateToProps = state => state;
253253
const mapDispatchToProps = dispatch => ({
254254
onSortingChange: sorting => dispatch(createGridAction('sorting', sorting)),
255255
onSelectionChange: selection => dispatch(createGridAction('selection', selection)),
256-
onExpandedRowsChange: expandedRows => dispatch(createGridAction('expandedRows', expandedRows)),
256+
onExpandedRowIdsChange: expandedRowIds => dispatch(createGridAction('expandedRowIds', expandedRowIds)),
257257
onGroupingChange: grouping => dispatch(createGridAction('grouping', grouping)),
258258
onExpandedGroupsChange: expandedGroups => dispatch(createGridAction('expandedGroups', expandedGroups)),
259259
onFiltersChange: filters => dispatch(createGridAction('filters', filters)),

packages/dx-react-demos/src/material-ui/featured-theming/demo.jsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ export default class Demo extends React.PureComponent {
201201
defaultPageSize={10}
202202
/>
203203
<RowDetailState
204-
defaultExpandedRows={[2]}
204+
defaultExpandedRowIds={[2]}
205205
/>
206206
<SelectionState
207207
defaultSelection={[1, 3, 18]}

packages/dx-react-grid/docs/guides/detail-row.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,12 @@ Add the required plugins listed above to the Grid and specify the detail row tem
1717

1818
## Uncontrolled Mode
1919

20-
In the [uncontrolled mode](controlled-and-uncontrolled-modes.md), you can specify the initially expanded detail rows using the `RowDetailState` plugin's `defaultExpandedRows` property.
20+
In the [uncontrolled mode](controlled-and-uncontrolled-modes.md), you can specify the initially expanded detail rows using the `RowDetailState` plugin's `defaultExpandedRowIds` property.
2121

2222
.embedded-demo(detail-row/simple-detail-row)
2323

2424
## Controlled Mode
2525

26-
In the [controlled mode](controlled-and-uncontrolled-modes.md), pass an array of the expanded row IDs to the `RowDetailState` plugin's `expandedRows` property and handle the `onExpandedRowsChange` event to control the detail rows' expanded state externally.
26+
In the [controlled mode](controlled-and-uncontrolled-modes.md), pass an array of the expanded row IDs to the `RowDetailState` plugin's `expandedRowIds` property and handle the `onExpandedRowIdsChange` event to control the detail rows' expanded state externally.
2727

2828
.embedded-demo(detail-row/detail-row-controlled)

packages/dx-react-grid/docs/reference/row-detail-state.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,9 +12,9 @@ none
1212

1313
Name | Type | Default | Description
1414
-----|------|---------|------------
15-
expandedRows | Array&lt;number &#124; string&gt; | | Specifies expanded rows.
16-
defaultExpandedRows | Array&lt;number &#124; string&gt; | | Specifies initially expanded rows in the uncontrolled mode.
17-
onExpandedRowsChange | (expandedRows: Array&lt;number &#124; string&gt;) => void | | Handles expanded rows changes.
15+
expandedRowIds | Array&lt;number &#124; string&gt; | | IDs of the rows being expanded.
16+
defaultExpandedRowIds | Array&lt;number &#124; string&gt; | | IDs of the rows initially expanded in the uncontrolled mode.
17+
onExpandedRowIdsChange | (expandedRowIds: Array&lt;number &#124; string&gt;) => void | | Handles expanded rows changes.
1818

1919
## Plugin Developer Reference
2020

@@ -27,4 +27,4 @@ none
2727
Name | Plugin | Type | Description
2828
-----|--------|------|------------
2929
toggleDetailRowExpanded | Action | ({ rowId }) => void | Expands/collapses the specified row.
30-
expandedRows | Getter | Array&lt;number &#124; string&gt; | Currently expanded rows.
30+
expandedRowIds | Getter | Array&lt;number &#124; string&gt; | Currently expanded rows.

packages/dx-react-grid/docs/reference/table-row-detail.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,7 @@ Name | Plugin | Type | Description
8383
-----|--------|------|------------
8484
tableColumns | Getter | Array&lt;[TableColumn](table.md#tablecolumn)&gt; | Table columns.
8585
tableBodyRows | Getter | Array&lt;[TableRow](table.md#tablerow)&gt; | Body rows to be rendered.
86-
expandedRows | Getter | Array&lt;number &#124; string&gt; | Expanded rows.
86+
expandedRowIds | Getter | Array&lt;number &#124; string&gt; | Expanded rows IDs.
8787
toggleDetailRowExpanded | Action | ({ rowId }) => void | Expands/collapses the specified row.
8888
tableCell | Template | [TableCellProps](table.md#tablecellprops) | A template that renders a table cell.
8989
tableRow | Template | [TableRowProps](table.md#tablerowprops) | A template that renders a table row.

0 commit comments

Comments
 (0)