Skip to content

Commit bcd1394

Browse files
authored
DataGrid - The between filter dropdown sticks to the viewport edge during horizontal scrolling (T1280071) (#30145)
1 parent 41855ff commit bcd1394

File tree

4 files changed

+39
-2
lines changed

4 files changed

+39
-2
lines changed
4.06 KB
Loading

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

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,3 +225,38 @@ test('DataGrid - NVDA reads filter menu items as "Search box 1 of 8" (T1290386)'
225225
visible: true,
226226
},
227227
}));
228+
229+
test('DataGrid - The `between` filter dropdown sticks to the viewport edge during horizontal scrolling (T1280071)', async (t) => {
230+
const { takeScreenshot, compareResults } = createScreenshotsComparer(t);
231+
const dataGrid = new DataGrid('#container');
232+
const filterEditor = dataGrid.getFilterEditor(0, FilterTextBox);
233+
234+
await dataGrid.isReady();
235+
236+
await t.debug();
237+
await t
238+
.click(filterEditor.menuButton)
239+
.click(filterEditor.menu.getItemByText('Between'));
240+
241+
await dataGrid.scrollBy({ x: 999 });
242+
await t
243+
.expect(await takeScreenshot('filter-row-filter-range-hide-on-scroll.png', dataGrid.element))
244+
.ok()
245+
.expect(compareResults.isValid())
246+
.ok(compareResults.errorMessages());
247+
}).before(async () => createWidget('dxDataGrid', {
248+
dataSource: [
249+
{ ID: 1, Text: 'Item 1' },
250+
{ ID: 2, Text: '' },
251+
{ ID: 3, Text: 'Item 3' },
252+
],
253+
keyExpr: 'ID',
254+
filterRow: {
255+
visible: true,
256+
},
257+
scrolling: {
258+
useNative: true,
259+
},
260+
columnWidth: 400,
261+
width: 500,
262+
}));

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,8 @@ const columnHeadersView = (Base: ModuleType<ColumnHeadersView>) => class ColumnH
300300
showTitle: false,
301301
focusStateEnabled: false,
302302
hideOnOutsideClick: true,
303+
hideOnParentScroll: true,
304+
_hideOnParentScrollTarget: $overlay,
303305
wrapperAttr: { class: filterRangeOverlayClass },
304306
animation: false,
305307
position: {

packages/devextreme/testing/tests/DevExpress.ui.widgets.dataGrid/filterRow.tests.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1599,7 +1599,6 @@ QUnit.module('Filter Row with real dataController and columnsController', {
15991599
assert.equal($('.dx-viewport').children('.dx-datagrid-filter-range-overlay').length, 0, 'no overlay wrapper');
16001600
});
16011601

1602-
// T619045
16031602
QUnit.test('Overlay of between operation does not hide after scroll event', function(assert) {
16041603
// arrange
16051604
const that = this;
@@ -1632,7 +1631,8 @@ QUnit.module('Filter Row with real dataController and columnsController', {
16321631
$('.dx-viewport').find('.dx-filter-range-content').trigger('scroll');
16331632

16341633
// assert
1635-
assert.equal($('.dx-viewport').children('.dx-datagrid-filter-range-overlay').length, 1, 'has overlay wrapper');
1634+
// T1280071
1635+
assert.equal($('.dx-viewport').children('.dx-datagrid-filter-range-overlay').length, 0, 'overlay wrapper is removed');
16361636
});
16371637

16381638
// T428602

0 commit comments

Comments
 (0)