Skip to content

Commit 3f2ca72

Browse files
committed
fix(ui5-view-settings-dialog): fix selection
1 parent 8a6837f commit 3f2ca72

File tree

2 files changed

+15
-13
lines changed

2 files changed

+15
-13
lines changed

packages/fiori/src/ViewSettingsDialog.hbs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
<div class="ui5-vsd-sort">
6060
<ui5-list
6161
selection-mode="SingleStart"
62-
@ui5-item-click="{{_onSortOrderChange}}"
62+
@ui5-selection-change="{{_onSortOrderChange}}"
6363
sort-order
6464
accessible-name-ref="{{_id}}-label">
6565
<ui5-li-group header-text="{{_sortOrderLabel}}">
@@ -72,7 +72,7 @@
7272
</ui5-list>
7373
<ui5-list
7474
selection-mode="SingleStart"
75-
@ui5-item-click={{_onSortByChange}}
75+
@ui5-selection-change={{_onSortByChange}}
7676
sort-by>
7777
<ui5-li-group header-text="{{_sortByLabel}}">
7878
{{#each _currentSettings.sortBy}}
@@ -90,7 +90,7 @@
9090
<ui5-list
9191
accessible-name-ref="{{_id}}-label"
9292
selection-mode="Multiple"
93-
@ui5-item-click="{{_handleFilterValueItemClick}}"
93+
@ui5-selection-change="{{_handleFilterValueItemClick}}"
9494
>
9595
{{#each _currentSettings.filters}}
9696
{{#if this.selected}}

packages/fiori/src/ViewSettingsDialog.ts

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import Button from "@ui5/webcomponents/dist/Button.js";
1313
import Label from "@ui5/webcomponents/dist/Label.js";
1414
import ListItemGroup from "@ui5/webcomponents/dist/ListItemGroup.js";
1515
import List from "@ui5/webcomponents/dist/List.js";
16-
import type { ListItemClickEventDetail } from "@ui5/webcomponents/dist/List.js";
16+
import type { ListItemClickEventDetail, ListSelectionChangeEventDetail } from "@ui5/webcomponents/dist/List.js";
1717
import ListItemStandard from "@ui5/webcomponents/dist/ListItemStandard.js";
1818
import Title from "@ui5/webcomponents/dist/Title.js";
1919
import SegmentedButton from "@ui5/webcomponents/dist/SegmentedButton.js";
@@ -553,20 +553,22 @@ class ViewSettingsDialog extends UI5Element {
553553
this._currentMode = ViewSettingsDialogMode[mode];
554554
}
555555

556-
_handleFilterValueItemClick(e: CustomEvent<ListItemClickEventDetail>) {
556+
_handleFilterValueItemClick(e: CustomEvent<ListSelectionChangeEventDetail>) {
557+
const itemText = e.detail.targetItem.innerText;
558+
557559
// Update the component state
558560
this._currentSettings.filters = this._currentSettings.filters.map(filter => {
559561
if (filter.selected) {
560562
filter.filterOptions.forEach(option => {
561-
if (option.text === e.detail.item.innerText) {
563+
if (option.text === itemText) {
562564
option.selected = !option.selected;
563565
}
564566
});
565567
}
566568
return filter;
567569
});
568570

569-
this._setSelectedProp(e);
571+
this._setSelectedProp(itemText);
570572

571573
this._currentSettings = JSON.parse(JSON.stringify(this._currentSettings));
572574
}
@@ -576,10 +578,10 @@ class ViewSettingsDialog extends UI5Element {
576578
* @param e
577579
* @private
578580
*/
579-
_setSelectedProp(e: CustomEvent<ListItemClickEventDetail>) {
581+
_setSelectedProp(itemText: string) {
580582
this.filterItems.forEach(filterItem => {
581583
filterItem.values.forEach(option => {
582-
if (option.text === e.detail.item.innerText) {
584+
if (option.text === itemText) {
583585
option.selected = !option.selected;
584586
}
585587
});
@@ -706,10 +708,10 @@ class ViewSettingsDialog extends UI5Element {
706708
/**
707709
* Stores `Sort Order` list as recently used control and its selected item in current state.
708710
*/
709-
_onSortOrderChange(e: CustomEvent<ListItemClickEventDetail>) {
711+
_onSortOrderChange(e: CustomEvent<ListSelectionChangeEventDetail>) {
710712
this._recentlyFocused = this._sortOrder!;
711713
this._currentSettings.sortOrder = this.initSortOrderItems.map(item => {
712-
item.selected = item.text === e.detail.item.innerText;
714+
item.selected = item.text === e.detail.targetItem.innerText;
713715
return item;
714716
});
715717

@@ -720,8 +722,8 @@ class ViewSettingsDialog extends UI5Element {
720722
/**
721723
* Stores `Sort By` list as recently used control and its selected item in current state.
722724
*/
723-
_onSortByChange(e: CustomEvent<ListItemClickEventDetail>) {
724-
const selectedItemIndex = Number(e.detail.item.getAttribute("data-ui5-external-action-item-index"));
725+
_onSortByChange(e: CustomEvent<ListSelectionChangeEventDetail>) {
726+
const selectedItemIndex = Number(e.detail.targetItem.getAttribute("data-ui5-external-action-item-index"));
725727
this._recentlyFocused = this._sortBy!;
726728
this._currentSettings.sortBy = this.initSortByItems.map((item, index) => {
727729
item.selected = index === selectedItemIndex;

0 commit comments

Comments
 (0)