/** * © 2023 WavePlay */ import { createElement } from 'react' import hoistNonReactStatics from 'hoist-non-react-statics' import { usePilot } from '../core/use-pilot' import type { ComponentType } from 'react' import type { Pilot } from '../core/pilot' interface InjectedProps { router: Pilot } export function withRouter

( WrappedComponent: ComponentType

, area?: string ): ComponentType

{ const ComponentWithRouter = (props: P) => { const router = usePilot(area) return createElement(WrappedComponent, { ...(props as P), router }) } return hoistNonReactStatics(ComponentWithRouter, WrappedComponent) }