fix(modal, popover): warn if trigger element was not found (#26650)

This commit is contained in:
Liam DeBeasi
2023-01-20 15:04:16 -05:00
committed by GitHub
parent 6b16a0c020
commit 1115203120
2 changed files with 17 additions and 0 deletions

View File

@ -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;
}

View File

@ -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;
}