Skip to content

Commit 259598f

Browse files
authored
TreeView: focus treeview element in selectAllEnabled and items empty (T1294524) (DevExpress#30904)
1 parent 2d109d2 commit 259598f

File tree

3 files changed

+17
-4
lines changed

3 files changed

+17
-4
lines changed

packages/devextreme/js/__internal/ui/tree_view/m_tree_view.base.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1638,9 +1638,10 @@ class TreeViewBase extends HierarchicalCollectionWidget<TreeViewBaseProperties>
16381638
}
16391639
}
16401640

1641-
focus() {
1642-
if (this._selectAllEnabled()) {
1643-
// @ts-expect-error
1641+
focus(): void {
1642+
const { items = [] } = this.option();
1643+
if (this._selectAllEnabled() && items.length) {
1644+
// @ts-expect-error ts-error
16441645
eventsEngine.trigger(this._$selectAllItem, 'focus');
16451646
return;
16461647
}

packages/devextreme/js/__internal/ui/tree_view/m_tree_view.search.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@ const TreeViewSearch = TreeViewBase.inherit(searchBoxMixin).inherit({
9393
_itemContainer(isSearchMode, selectAllEnabled) {
9494
selectAllEnabled ??= this._selectAllEnabled();
9595

96-
if (selectAllEnabled) {
96+
const { items = [] } = this.option();
97+
if (selectAllEnabled && items.length) {
9798
return this._getNodeContainer();
9899
}
99100

packages/devextreme/testing/tests/DevExpress.ui.widgets/treeViewParts/focusing.js

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,17 @@ QUnit.test('select all item should be focused on treeview focus', function(asser
300300
assert.ok($selectAllItem.hasClass(FOCUSED_STATE_CLASS));
301301
});
302302

303+
QUnit.testInActiveWindow('Treeview container should be focused on empty treeview focus (T1294524)', function(assert) {
304+
const $treeView = initTree({
305+
showCheckBoxesMode: 'selectAll',
306+
focusStateEnabled: true,
307+
});
308+
309+
$treeView.dxTreeView('focus');
310+
311+
assert.strictEqual($treeView.hasClass(FOCUSED_STATE_CLASS), true, 'treeview is focused');
312+
});
313+
303314
QUnit.test('SelectAll checkbox should be checked with space key', function(assert) {
304315
if(!isDesktopDevice()) {
305316
assert.ok(true, 'only on desktops');

0 commit comments

Comments
 (0)