@bgscore/react-router
Version:
Automatic React Router generator for Vite with TypeScript support
38 lines (37 loc) • 1.34 kB
TypeScript
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";