diff --git a/src/actions/action.ts b/src/actions/action.ts index 3f4c8badf9..3f5680af97 100644 --- a/src/actions/action.ts +++ b/src/actions/action.ts @@ -386,14 +386,18 @@ export class Action extends BaseAction implements IAction, ILocalizableOwner { this.markerIconName = "icon-next_16x16"; this.component = "sv-list-item-group"; this.items = [...items]; - const { innerPopupModel, listModel }: { innerPopupModel: PopupModel, listModel: ListModel } = + const { popupModel, listModel }: { popupModel: PopupModel, listModel: ListModel } = createPopupModelWithListModel( - { items: items, onSelectionChanged: onSelectionChanged }, + { items: items, onSelectionChanged: onSelectionChanged, searchEnabled: false }, { horizontalPosition: "right", showPointer: false } ); - innerPopupModel.cssClass = "sv-popup-inner"; - listModel.searchEnabled = false; - this.popupModel = innerPopupModel; + popupModel.cssClass = "sv-popup-inner"; + this.popupModel = popupModel; + const originalAction = this.action; + this.action = (context?: any, isUserAction?: boolean) => { + if (!!originalAction) originalAction(context, isUserAction); + this.hidePopup(); + }; } location?: string; diff --git a/src/list.ts b/src/list.ts index 0bbec92325..68d6a65087 100644 --- a/src/list.ts +++ b/src/list.ts @@ -170,15 +170,12 @@ export class ListModel extends ActionContainer public onItemHover = (itemValue: T): void => { this.actions.forEach(action => { if (action === itemValue && !!itemValue.popupModel) { - itemValue.popupModel.isVisible = true; + itemValue.showPopup(); this.addScrollEventListener(() => { - itemValue.popupModel.isVisible = false; + itemValue.hidePopup(); }); - // itemValue.popupModel.isFocusedContent = !isUserAction || listModel.showFilter; - // itemValue.popupModel.toggleVisibility(); - // listModel.scrollToSelectedItem(); } else if (!!action.popupModel && action.popupModel.isVisible) { - action.popupModel.isVisible = false; + itemValue.hidePopup(); } }); }