@snipsonian/redux-first-router
Version:
Redux-first-router snippets
26 lines (20 loc) • 1.02 kB
text/typescript
import { RouteObject } from 'redux-first-router';
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export type TVirtualPageConfig<AppState = any> = string | TVirtualPageConfigPart<AppState>[];
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export type TVirtualPageConfigPart<AppState = any> = string | TVirtualPagePartSelector<AppState>;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export type TVirtualPagePartSelector<AppState = any> = (state: AppState) => string;
// eslint-disable-next-line @typescript-eslint/no-explicit-any
export interface IBaseRoute<Page = any, Template = any, AppState = any> extends RouteObject {
page: Page;
pageProps?: object;
template: Template;
templateProps?: object;
virtualPage?: TVirtualPageConfig<AppState>;
allowAnonymousAccess?: boolean; // default false
groups?: string[]; // to group related routes
}
export interface IBaseRoutes<Route extends IBaseRoute = IBaseRoute> {
[key: string]: Route;
}