diff --git a/core/src/components/modal/modal.tsx b/core/src/components/modal/modal.tsx index f494eb5946..720023a018 100644 --- a/core/src/components/modal/modal.tsx +++ b/core/src/components/modal/modal.tsx @@ -402,8 +402,16 @@ export class Modal implements ComponentInterface, OverlayInterface { destroyTriggerInteraction(); } + if (trigger === undefined) { + return; + } + const triggerEl = trigger !== undefined ? document.getElementById(trigger) : null; if (!triggerEl) { + printIonWarning( + `A trigger element with the ID "${trigger}" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on ion-modal.`, + this.el + ); return; } diff --git a/core/src/components/popover/popover.tsx b/core/src/components/popover/popover.tsx index 9b3ff6a332..633f640502 100644 --- a/core/src/components/popover/popover.tsx +++ b/core/src/components/popover/popover.tsx @@ -1,5 +1,6 @@ import type { ComponentInterface, EventEmitter } from '@stencil/core'; import { Component, Element, Event, Host, Method, Prop, State, Watch, h } from '@stencil/core'; +import { printIonWarning } from '@utils/logging'; import { getIonMode } from '../../global/ionic-global'; import type { @@ -620,8 +621,16 @@ export class Popover implements ComponentInterface, PopoverInterface { destroyTriggerInteraction(); } + if (trigger === undefined) { + return; + } + const triggerEl = (this.triggerEl = trigger !== undefined ? document.getElementById(trigger) : null); if (!triggerEl) { + printIonWarning( + `A trigger element with the ID "${trigger}" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on ion-popover.`, + this.el + ); return; }