mirror of
https://github.com/ionic-team/ionic-framework.git
synced 2025-08-18 03:00:58 +08:00
fix(angular, react, vue): overlays no longer throw errors when used inside tests (#24681)
resolves #24549, resolves #24590
This commit is contained in:
@ -12,7 +12,8 @@ interface OverlayBase extends HTMLElement {
|
||||
|
||||
export function useController<OptionsType, OverlayType extends OverlayBase>(
|
||||
displayName: string,
|
||||
controller: { create: (options: OptionsType) => Promise<OverlayType> }
|
||||
controller: { create: (options: OptionsType) => Promise<OverlayType> },
|
||||
defineCustomElement: () => void
|
||||
) {
|
||||
const overlayRef = useRef<OverlayType>();
|
||||
const didDismissEventName = useMemo(() => `on${displayName}DidDismiss`, [displayName]);
|
||||
@ -20,11 +21,14 @@ export function useController<OptionsType, OverlayType extends OverlayBase>(
|
||||
const willDismissEventName = useMemo(() => `on${displayName}WillDismiss`, [displayName]);
|
||||
const willPresentEventName = useMemo(() => `on${displayName}WillPresent`, [displayName]);
|
||||
|
||||
defineCustomElement();
|
||||
|
||||
const present = useCallback(
|
||||
async (options: OptionsType & HookOverlayOptions) => {
|
||||
if (overlayRef.current) {
|
||||
return;
|
||||
}
|
||||
|
||||
const { onDidDismiss, onWillDismiss, onDidPresent, onWillPresent, ...rest } = options;
|
||||
|
||||
const handleDismiss = (event: CustomEvent<OverlayEventDetail<any>>) => {
|
||||
|
Reference in New Issue
Block a user