import type { ModalOptions } from '@ionic/core/components'; import { modalController } from '@ionic/core/components'; import { defineCustomElement } from '@ionic/core/components/ion-modal.js'; import { useCallback } from 'react'; import type { ReactComponentOrElement } from '../models/ReactComponentOrElement'; import type { HookOverlayOptions } from './HookOverlayOptions'; import { useOverlay } from './useOverlay'; /** * A hook for presenting/dismissing an IonModal component * @param component The component that the modal will show. Can be a React Component, a functional component, or a JSX Element * @param componentProps The props that will be passed to the component, if required * @returns Returns the present and dismiss methods in an array */ export function useIonModal(component: JSX.Element, componentProps?: any): UseIonModalResult; export function useIonModal
(component: React.ComponentClass
| React.FC
): UseIonModalResult; export function useIonModal
>( component: React.ComponentClass
| React.FC
): UseIonModalResult; export function useIonModal
(component: React.ComponentClass
| React.FC
, componentProps: P): UseIonModalResult;
export function useIonModal(component: ReactComponentOrElement, componentProps?: any): UseIonModalResult {
const controller = useOverlay