Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
ada3d47
chore(popups): test opening only after rendering
TeodorTaushanov May 12, 2025
f4cf2f5
Merge remote-tracking branch 'origin/main' into popup_initial_focus
TeodorTaushanov May 13, 2025
981441b
chore(popups): check closing, add sample and tests
TeodorTaushanov May 13, 2025
6295b59
chore(popups): fix hidePopover
TeodorTaushanov May 13, 2025
f5ad853
Merge remote-tracking branch 'origin/main' into popup_initial_focus
TeodorTaushanov May 29, 2025
8e4b40b
fix: check for attribute
TeodorTaushanov May 29, 2025
54f0340
chore: add comments
TeodorTaushanov May 29, 2025
1f6b316
Merge remote-tracking branch 'origin/main' into popup_initial_focus
TeodorTaushanov May 29, 2025
86518bf
Merge remote-tracking branch 'origin/main' into popup_initial_focus
TeodorTaushanov May 30, 2025
a801eca
Merge remote-tracking branch 'origin/main' into popup_initial_focus
TeodorTaushanov May 30, 2025
0dc8fca
Merge remote-tracking branch 'origin/main' into popup_initial_focus
TeodorTaushanov Jun 4, 2025
9370594
fix: check if the Popup is added to the document
TeodorTaushanov Jun 4, 2025
077a61a
Merge remote-tracking branch 'origin/main' into popup_initial_focus
TeodorTaushanov Jun 4, 2025
f825b4b
Merge remote-tracking branch 'origin/main' into popup_initial_focus
TeodorTaushanov Jun 5, 2025
05cbdd8
Merge remote-tracking branch 'origin/main' into popup_initial_focus
TeodorTaushanov Jun 6, 2025
a790df8
Merge remote-tracking branch 'origin/main' into popup_initial_focus
TeodorTaushanov Jun 9, 2025
3217f33
fix: add isEnteredInDom property
TeodorTaushanov Jun 9, 2025
208b69c
Merge remote-tracking branch 'origin/main' into popup_initial_focus
TeodorTaushanov Aug 20, 2025
decb84e
chore: resolve merge conflicts
TeodorTaushanov Aug 20, 2025
dac77ac
Merge remote-tracking branch 'origin/main' into popup_initial_focus
TeodorTaushanov May 27, 2026
ead574b
chore: resolve merge conflicts
TeodorTaushanov May 27, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
41 changes: 41 additions & 0 deletions packages/main/cypress/specs/Dialog.cy.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -1790,4 +1790,45 @@ describe("Native drag-and-drop in draggable dialogs", () => {
expect(preventDefaultCalled).to.be.true;
});
});

it("initial focus", () => {
cy.mount(
<>
<Dialog id="dialogId"
headerText="Dialog Header"
open>
<div>
<input id="innerInput" />
</div>
</Dialog>
</>
);

cy.get("#dialogId")
.should("be.visible");

cy.get("#innerInput")
.should("be.focused");
});

it("initial focus prevented", () => {
cy.mount(
<>
<Dialog id="dialogId"
headerText="Dialog Header"
open
preventInitialFocus>
<div>
<input id="innerInput" />
</div>
</Dialog>
</>
);

cy.get("#dialogId")
.should("be.visible");

cy.get("#innerInput")
.should("not.be.focused");
});
});
6 changes: 5 additions & 1 deletion packages/main/src/Popup.ts
Original file line number Diff line number Diff line change
Expand Up @@ -253,6 +253,7 @@ abstract class Popup extends UI5Element {
_focusedElementBeforeOpen?: HTMLElement | null;
_opened = false;
_open = false;
_isEnteredInDom = false;
_resizeHandlerRegistered = false;

constructor() {
Expand Down Expand Up @@ -290,6 +291,7 @@ abstract class Popup extends UI5Element {
}

this.tabIndex = -1;
this._isEnteredInDom = true;

this.handleOpenOnEnterDOM();

Expand All @@ -310,6 +312,8 @@ abstract class Popup extends UI5Element {
this._removeOpenedPopup();
}

this._isEnteredInDom = false;

this._deregisterResizeHandler();
this._detachBrowserEvents();
deregisterUI5Element(this);
Expand Down Expand Up @@ -341,7 +345,7 @@ abstract class Popup extends UI5Element {
}

async openPopup() {
if (this._opened) {
if (!this._isEnteredInDom && this._opened) {
return;
}

Expand Down
40 changes: 40 additions & 0 deletions packages/main/test/pages/DialogInitiallyOpenPreventFocus.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">

<title>Dialog</title>

<script data-ui5-config type="application/json">
{
"language": "EN"
}
</script>

<script>
// delete Document.prototype.adoptedStyleSheets
</script>


<script src="%VITE_BUNDLE_PATH%" type="module"></script>
<script>
function init() {
document.body.insertAdjacentHTML("beforeend",
`<ui5-dialog id="dialogOpen"
header-text="Dialog Header"
open
prevent-initial-focus>
<div>
<input>
</div>
</ui5-dialog>`);
}
</script>
</head>

<body onload="init()">
</body>

</html>
Loading