UNPKG

@grafana/faro-react

Version:

Faro package that enables easier integration in projects built with React.

69 lines (68 loc) 2.62 kB
import type { ReactElement, ReactNode } from 'react'; import type { ReactRouterLocation } from '../types'; interface IndexRouteObjectV6DataRouter { caseSensitive?: boolean; children?: undefined; element?: React.ReactNode | null; index: true; path?: string; } export interface NonIndexRouteObjectV6DataRouter { caseSensitive?: boolean; children?: RouteObjectV6DataRouter[]; element?: React.ReactNode | null; index?: false; path?: string; } export type RouteObjectV6DataRouter = IndexRouteObjectV6DataRouter | NonIndexRouteObjectV6DataRouter; export interface ReactRouterV6BaseRouteObject { action?: (...args: any[]) => any; caseSensitive?: boolean; hasErrorBoundary?: boolean; handle?: any; id?: string; loader?: (...args: any[]) => any; path?: string; shouldRevalidate?: (...args: any[]) => any; } export type ReactRouterV6RouteObject = ReactRouterV6BaseRouteObject & ({ children?: undefined; index: true; } | { children?: ReactRouterV6RouteObject[]; index?: false; }); export interface ReactRouterV6RoutesProps { children?: ReactNode; location?: Partial<ReactRouterLocation> | string; routesComponent?: ReactRouterV6RoutesShape; } export type ReactRouterV6Params<Key extends string = string> = { readonly [key in Key]: string | undefined; }; export interface ReactRouterV6RouteMatch<ParamKey extends string = string> { params: ReactRouterV6Params<ParamKey>; pathname: string; pathnameBase: string; route: ReactRouterV6RouteObject; } export type ReactRouterV6CreateRoutesFromChildren = (children: ReactNode) => ReactRouterV6RouteObject[] | RouteObjectV6DataRouter[]; export type ReactRouterV6MatchRoutes = (routes: ReactRouterV6RouteObject[], location: Partial<ReactRouterLocation> | string, basename?: string | undefined) => ReactRouterV6RouteMatch[] | null; export type ReactRouterV6RoutesShape = (props: ReactRouterV6RoutesProps) => ReactElement | null; export type ReactRouterV6UseLocation = () => ReactRouterLocation; export type ReactRouterV6UseNavigationType = () => 'POP' | 'PUSH' | 'REPLACE'; export interface ReactRouterV6Dependencies { createRoutesFromChildren: ReactRouterV6CreateRoutesFromChildren; matchRoutes: ReactRouterV6MatchRoutes; Routes: ReactRouterV6RoutesShape; useLocation: ReactRouterV6UseLocation; useNavigationType: ReactRouterV6UseNavigationType; } export interface ReactRouterV6DataRouterDependencies { matchRoutes: ReactRouterV6MatchRoutes; } export type EventRouteTransitionAttributes = { fromRoute?: string; fromUrl?: string; }; export {};