diff --git a/.changeset/silver-penguins-juggle.md b/.changeset/silver-penguins-juggle.md new file mode 100644 index 000000000..700867271 --- /dev/null +++ b/.changeset/silver-penguins-juggle.md @@ -0,0 +1,5 @@ +--- +'@lion/overlays': patch +--- + +Add a guard for content wrapper containing the content node before appending to the renderTarget. This prevents unhandled rejection. diff --git a/packages/overlays/src/OverlayController.js b/packages/overlays/src/OverlayController.js index 81ffd4caa..18a6a8650 100644 --- a/packages/overlays/src/OverlayController.js +++ b/packages/overlays/src/OverlayController.js @@ -298,7 +298,8 @@ export class OverlayController { this._renderTarget.appendChild(this.contentNode); } else { const isInsideRenderTarget = this._renderTarget === this._contentWrapperNode.parentNode; - if (!isInsideRenderTarget) { + const nodeContainsTarget = this._contentWrapperNode.contains(this._renderTarget); + if (!isInsideRenderTarget && !nodeContainsTarget) { // contentWrapperNode becomes the direct (non projected) parent of contentNode this._renderTarget.appendChild(this._contentWrapperNode); }