Skip to content

Commit

Permalink
fix(ui5-popover): fix opener reference
Browse files Browse the repository at this point in the history
  • Loading branch information
ilhan007 committed Jan 9, 2025
1 parent 4e88b82 commit f7dd1df
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
4 changes: 4 additions & 0 deletions packages/base/src/UI5Element.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1080,6 +1080,10 @@ abstract class UI5Element extends HTMLElement {
return true;
}

get isUI5AbstractElement(): boolean {
return !(this.constructor as typeof UI5Element)._needsShadowDOM();
}

get classes(): ClassMap {
return {};
}
Expand Down
14 changes: 7 additions & 7 deletions packages/main/src/Popover.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import { instanceOfUI5Element } from "@ui5/webcomponents-base/dist/UI5Element.js";
import type UI5Element from "@ui5/webcomponents-base/dist/UI5Element.js";
import customElement from "@ui5/webcomponents-base/dist/decorators/customElement.js";
import property from "@ui5/webcomponents-base/dist/decorators/property.js";
Expand All @@ -7,7 +8,6 @@ import { getClosedPopupParent } from "@ui5/webcomponents-base/dist/util/PopupUti
import clamp from "@ui5/webcomponents-base/dist/util/clamp.js";
import getEffectiveScrollbarStyle from "@ui5/webcomponents-base/dist/util/getEffectiveScrollbarStyle.js";
import DOMReferenceConverter from "@ui5/webcomponents-base/dist/converters/DOMReference.js";

import { renderFinished } from "@ui5/webcomponents-base/dist/Render.js";
import Popup from "./Popup.js";
import PopoverPlacement from "./types/PopoverPlacement.js";
Expand Down Expand Up @@ -300,7 +300,7 @@ class Popover extends Popup {
}

if (opener instanceof HTMLElement) {
return this._isUI5Element(opener) ? opener.getFocusDomRef() : opener;
return this._isUI5AbstractElement(opener) ? opener.getFocusDomRef() : opener;
}

let rootNode = this.getRootNode();
Expand All @@ -315,8 +315,8 @@ class Popover extends Popup {
openerHTMLElement = document.getElementById(opener);
}

if (openerHTMLElement && this._isUI5Element(openerHTMLElement)) {
return openerHTMLElement.getFocusDomRef() || openerHTMLElement;
if (openerHTMLElement) {
return this._isUI5AbstractElement(openerHTMLElement) ? openerHTMLElement.getFocusDomRef() : openerHTMLElement;
}

return openerHTMLElement;
Expand Down Expand Up @@ -379,7 +379,7 @@ class Popover extends Popup {

const opener = this.getOpenerHTMLElement(this.opener);

if (opener && this._isUI5Element(opener) && !opener.getDomRef()) {
if (opener && instanceOfUI5Element(opener) && !opener.getDomRef()) {
return;
}

Expand Down Expand Up @@ -487,8 +487,8 @@ class Popover extends Popup {
});
}

_isUI5Element(el: HTMLElement): el is UI5Element {
return "isUI5Element" in el;
_isUI5AbstractElement(el: HTMLElement): el is UI5Element {
return instanceOfUI5Element(el) && el.isUI5AbstractElement;
}

get arrowDOM() {
Expand Down

0 comments on commit f7dd1df

Please sign in to comment.