UNPKG

@bgscore/react-router

Version:

Automatic React Router generator for Vite with TypeScript support

38 lines (37 loc) 1.34 kB
import type { Location, NavigateFunction, NavigateOptions, To, Navigation, UIMatch } from "react-router-dom"; import { Metadata } from "./metadata"; import { NestedKeyOf } from "./types"; export interface QueryProps { [key: string]: string | string[] | QueryProps | undefined | number | null; } export type QueryData<Data = unknown> = { [key: string]: NestedKeyOf<Data>; }; export interface PushOptions<Data = unknown> extends NavigateOptions { query?: QueryProps; queryData?: QueryData<Data>; data?: Data; preserveQuery?: boolean; replaceSameName?: boolean; } export type RouterPush<DataDefault = unknown> = <Data = DataDefault>(url: To, options?: PushOptions<Data>) => void; export interface Router<Query = QueryProps, Data = Query, Meta = Data> { push: RouterPush<Data>; pathname: string; query: Query; location: Location; navigate: NavigateFunction; goBack: (defaultUrl: string) => void; metadata: Metadata<Meta>; data: Data; navigation: Navigation; error: unknown; loading: boolean; matches: UIMatch<unknown, unknown>[]; id: string; } export declare function useRouter<Data = QueryProps, Meta = Data>(): Router<Data, Meta>; export * from './metadata'; export { default as useMetadata } from "./use-metadata"; export default useRouter; export * from "./Link";