import { JSX as LocalJSX } from '@ionic/core'; import React from 'react'; import { NavContext } from '../contexts/NavContext'; import OutletPageManager from '../routing/OutletPageManager'; import { IonicReactProps } from './IonicReactProps'; import { IonRouterOutletInner } from './inner-proxies'; import { createForwardRef } from './utils'; type Props = LocalJSX.IonRouterOutlet & { basePath?: string; ref?: React.Ref; ionPage?: boolean; }; interface InternalProps extends Props { forwardedRef?: React.ForwardedRef; } interface InternalState {} class IonRouterOutletContainer extends React.Component { context!: React.ContextType; constructor(props: InternalProps) { super(props); } render() { const StackManager = this.context.getStackManager(); const { children, forwardedRef, ...props } = this.props; return this.context.hasIonicRouter() ? ( props.ionPage ? ( {children} ) : ( {children} ) ) : ( {this.props.children} ); } static get contextType() { return NavContext; } } export const IonRouterOutlet = createForwardRef< Props & IonicReactProps, HTMLIonRouterOutletElement >(IonRouterOutletContainer, 'IonRouterOutlet');