next
Version:
The React Framework
73 lines (72 loc) • 2.56 kB
TypeScript
import type { FocusAndScrollRef, PrefetchKind } from '../../client/components/router-reducer/router-reducer-types';
import type { Params } from '../../server/request/params';
import type { FlightRouterState, FlightSegmentPath, CacheNode, LoadingModuleData } from './app-router-types';
import React from 'react';
export interface NavigateOptions {
scroll?: boolean;
/**
* Transition types to apply when navigating. These types are passed to
* [`React.addTransitionType`](https://react.dev/reference/react/addTransitionType)
* inside the navigation transition, enabling
* [`<ViewTransition>`](https://react.dev/reference/react/ViewTransition) components
* to apply different animations based on the type of navigation.
*/
transitionTypes?: string[];
}
export interface PrefetchOptions {
kind: PrefetchKind;
onInvalidate?: () => void;
}
export interface AppRouterInstance {
/**
* Navigate to the previous history entry.
*/
back(): void;
/**
* Navigate to the next history entry.
*/
forward(): void;
/**
* Refresh the current page.
*/
refresh(): void;
/**
* Navigate to the provided href.
* Pushes a new history entry.
*/
push(href: string, options?: NavigateOptions): void;
/**
* Navigate to the provided href.
* Replaces the current history entry.
*/
replace(href: string, options?: NavigateOptions): void;
/**
* Prefetch the provided href.
*/
prefetch(href: string, options?: PrefetchOptions): void;
/**
* Perform a gesture navigation using prefetched data.
* Only available when experimental.gestureTransition is enabled.
* @experimental
*/
experimental_gesturePush?(href: string, options?: NavigateOptions): void;
}
export declare const AppRouterContext: React.Context<AppRouterInstance | null>;
export declare const LayoutRouterContext: React.Context<{
parentTree: FlightRouterState;
parentCacheNode: CacheNode;
parentSegmentPath: FlightSegmentPath | null;
parentParams: Params;
parentLoadingData: LoadingModuleData | null;
debugNameContext: string;
url: string;
isActive: boolean;
} | null>;
export declare const GlobalLayoutRouterContext: React.Context<{
tree: FlightRouterState;
focusAndScrollRef: FocusAndScrollRef;
nextUrl: string | null;
previousNextUrl: string | null;
}>;
export declare const TemplateContext: React.Context<React.ReactNode>;
export declare const MissingSlotContext: React.Context<Set<string>>;