cellog/ion-router

View on GitHub
src/Context.ts

Summary

Maintainability
A
1 hr
Test Coverage
import * as react from 'react'
import { Dispatch, AnyAction, Store } from 'redux'
import { IonRouterState } from './reducer'
import { FullStateWithRouter } from './selectors'
import { IonRouterOptions } from './storeEnhancer'
import { DeclareRoute } from './enhancers'

export interface RouterContext {
  dispatch: Dispatch<any>
  routes: IonRouterState['routes']['routes']
  addRoute: <
    ReduxState extends FullStateWithRouter,
    Params extends { [key: string]: string },
    ParamsState extends { [key: string]: any },
    Action extends { type: string; [key: string]: any }
  >(
    route: DeclareRoute<ReduxState, Params, ParamsState, Action>
  ) => void
  store: Store<FullStateWithRouter, AnyAction> & IonRouterOptions
}

export const Context = react.createContext<RouterContext | null>(null)

export default Context