Skip to content

Commit defdf82

Browse files
Merge branch '25_2' into 25_2_update_angular19
2 parents b7937d9 + 43845b9 commit defdf82

File tree

2 files changed

+23
-3
lines changed

2 files changed

+23
-3
lines changed

packages/devextreme/js/__internal/ui/m_drop_down_button.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -700,16 +700,18 @@ class DropDownButton extends Widget<DropDownButtonProperties> {
700700
}
701701

702702
_updateItemCollection(optionName): void {
703-
const selectedItemKey = this.option('selectedItemKey');
703+
const { selectedItemKey, useSelectMode } = this.option();
704704
this._setListOption('selectedItem', null);
705705
// @ts-expect-error ts-error
706706
this._setWidgetOption('_list', [optionName]);
707707

708708
if (isDefined(selectedItemKey)) {
709709
this._loadSelectedItem()
710710
.done((selectedItem) => {
711-
this._setListOption('selectedItemKeys', [selectedItemKey]);
712-
this._setListOption('selectedItem', selectedItem);
711+
if (useSelectMode) {
712+
this._setListOption('selectedItemKeys', [selectedItemKey]);
713+
this._setListOption('selectedItem', selectedItem);
714+
}
713715
// eslint-disable-next-line @typescript-eslint/no-unused-vars
714716
}).fail((error) => {
715717
this._setListOption('selectedItemKeys', []);

packages/devextreme/testing/tests/DevExpress.ui.widgets/dropDownButton.tests.js

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,8 @@ const DROP_DOWN_EDITOR_OVERLAY_CLASS = 'dx-dropdowneditor-overlay';
3232
const CUSTOM_CLASS = 'custom-class';
3333
const LIST_CLASS = 'dx-list';
3434
const LIST_ITEMS_CLASS = 'dx-list-items';
35+
const LIST_ITEM_CLASS = 'dx-list-item';
36+
const LIST_ITEM_SELECTED_CLASS = 'dx-list-item-selected';
3537

3638
const OVERLAY_CONTENT_LABEL = 'Dropdown';
3739

@@ -1256,6 +1258,22 @@ QUnit.module('list integration', {}, () => {
12561258

12571259
assert.deepEqual(list.option('selectedItemKeys'), [0], 'List has correct selection');
12581260
});
1261+
1262+
QUnit.test('list items should not have selected class from ddb selectedItemKey after set items at runtime (T1314783)', function(assert) {
1263+
const dropDownButton = new DropDownButton($('#dropDownButton'), {
1264+
items: ['item1'],
1265+
useSelectMode: false,
1266+
opened: true,
1267+
selectedItemKey: 'item1',
1268+
});
1269+
const list = getList(dropDownButton);
1270+
1271+
dropDownButton.option('items', ['item1']);
1272+
const $listItems = list.itemElements();
1273+
1274+
assert.strictEqual($listItems.length, 1, 'there is one list item');
1275+
assert.strictEqual($listItems.hasClass(LIST_ITEM_SELECTED_CLASS), false, 'item does not have selected class');
1276+
});
12591277
});
12601278

12611279
QUnit.module('common use cases', {

0 commit comments

Comments
 (0)