Skip to content

Commit db1a5e4

Browse files
DataGrid - Fix incorrect position of the 'between' filter dropdown when columns are resized (T1303927) (#33086)
1 parent 5b32aa7 commit db1a5e4

2 files changed

Lines changed: 47 additions & 31 deletions

File tree

e2e/testcafe-devextreme/tests/dataGrid/common/filterRow/functional.ts

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,3 +305,49 @@ test('Lookup filter should not change to (All) after searching twice in another
305305
}
306306
},
307307
}));
308+
309+
test('DataGrid – `between` filter dropdown should be closed when columns are resized (T1303927)', async (t) => {
310+
// arrange
311+
const dataGrid = new DataGrid('#container');
312+
const filterCell = dataGrid.getFilterCell(0);
313+
314+
// assert
315+
await t.expect(dataGrid.isReady()).ok();
316+
317+
// act
318+
await t.click(filterCell.element);
319+
320+
// assert
321+
await t.expect(dataGrid.getFilterRangeOverlay().exists).ok('Filter range overlay is shown');
322+
323+
// act
324+
await dataGrid.resizeHeader(1, 50);
325+
326+
// assert
327+
await t.expect(dataGrid.getFilterRangeOverlay().exists).notOk('Filter range overlay is closed');
328+
329+
// act
330+
await t.click(filterCell.element);
331+
332+
// assert
333+
await t.expect(dataGrid.getFilterRangeOverlay().exists).ok('Filter range overlay is shown');
334+
335+
// act
336+
await dataGrid.resizeHeader(2, 50);
337+
338+
// assert
339+
await t.expect(dataGrid.getFilterRangeOverlay().exists).notOk('Filter range overlay is closed');
340+
}).before(async () => createWidget('dxDataGrid', {
341+
allowColumnResizing: true,
342+
filterRow: { visible: true },
343+
showBorders: true,
344+
columns: [{
345+
dataField: 'field1',
346+
dataType: 'number',
347+
selectedFilterOperation: 'between',
348+
}, {
349+
dataField: 'field2',
350+
}, {
351+
dataField: 'field3',
352+
}],
353+
}));

packages/devextreme/js/__internal/grids/grid_core/filter/m_filter_row.ts

Lines changed: 1 addition & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -897,38 +897,8 @@ const columnsResizer = (Base: ModuleType<ColumnsResizerViewController>) => class
897897
if (this.isResizing()) {
898898
// @ts-expect-error
899899
const overlayInstance = this._columnHeadersView.getFilterRangeOverlayInstance();
900-
901-
if (!overlayInstance || !this._targetPoint) {
902-
return;
903-
}
904-
905-
const cellIndex = overlayInstance.$element().closest('td').index();
906-
const { columnIndex: resizingColumnIndex } = this._targetPoint;
907-
908-
if (cellIndex === resizingColumnIndex || cellIndex === resizingColumnIndex + 1) {
909-
overlayInstance.$content().hide();
910-
}
911-
}
912-
}
913-
914-
protected _endResizing() {
915-
const that = this;
916-
let $cell;
917-
918-
if (that.isResizing()) {
919-
// @ts-expect-error
920-
const overlayInstance = that._columnHeadersView.getFilterRangeOverlayInstance();
921-
922-
if (overlayInstance) {
923-
$cell = overlayInstance.$element().closest('td');
924-
// @ts-expect-error
925-
that._columnHeadersView._updateFilterRangeOverlay({ width: getOuterWidth($cell, true) + CORRECT_FILTER_RANGE_OVERLAY_WIDTH });
926-
overlayInstance.$content().show();
927-
}
900+
overlayInstance?.hide();
928901
}
929-
930-
// @ts-expect-error
931-
super._endResizing.apply(that, arguments);
932902
}
933903
};
934904

0 commit comments

Comments
 (0)