Skip to content

Commit 8f5484f

Browse files
fix: do not throw on closing popover when target is not set (#9942) (#9947)
Co-authored-by: Serhii Kulykov <iamkulykov@gmail.com>
1 parent 48690d6 commit 8f5484f

File tree

2 files changed

+16
-1
lines changed

2 files changed

+16
-1
lines changed

packages/popover/src/vaadin-popover.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -950,7 +950,7 @@ class Popover extends PopoverPositionMixin(
950950
}
951951

952952
// Restore pointer-events set when opening on hover.
953-
if (this.modal && this.target.style.pointerEvents) {
953+
if (this.modal && this.target && this.target.style.pointerEvents) {
954954
this.target.style.pointerEvents = '';
955955
}
956956

packages/popover/test/basic.test.js

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,21 @@ describe('popover', () => {
149149

150150
expect(document.activeElement).to.not.equal(target);
151151
});
152+
153+
it('should not throw when target is removed', async () => {
154+
popover.modal = true;
155+
156+
// Clear target
157+
popover.target = null;
158+
await nextUpdate(popover);
159+
160+
popover.opened = true;
161+
await oneEvent(overlay, 'vaadin-overlay-open');
162+
163+
// No error should be thrown
164+
popover.opened = false;
165+
await oneEvent(popover, 'closed');
166+
});
152167
});
153168

154169
describe('for', () => {

0 commit comments

Comments
 (0)