nextjs-router-events
Version:
A router events alternative for Next.js 13+ with app directory with the ability to prevent user navigation.
23 lines (22 loc) • 909 B
TypeScript
export type HistoryURL = string | URL | null | undefined;
export type RouteChangeStartEvent = CustomEvent<{
targetUrl: string;
}>;
export type RouteChangeEndEvent = CustomEvent<{
targetUrl: HistoryURL;
}>;
export type ForceAnchorClickEvent = MouseEvent & {
isForceAnchorClickEvent: true;
};
declare global {
interface WindowEventMap {
beforeRouteChangeEvent: RouteChangeStartEvent;
routeChangeConfirmationEvent: RouteChangeStartEvent;
routeChangeStartEvent: RouteChangeStartEvent;
routeChangeEndEvent: RouteChangeEndEvent;
}
}
export declare const triggerRouteChangeStartEvent: (targetUrl: string) => void;
export declare const triggerRouteChangeEndEvent: (targetUrl: HistoryURL) => void;
export declare const triggerBeforeRouteChangeEvent: (targetUrl: string) => void;
export declare const triggerRouteChangeConfirmationEvent: (targetUrl: string) => void;