rwsdk
Version:
Build fast, server-driven webapps on Cloudflare with SSR, RSC, and realtime
26 lines (25 loc) • 956 B
TypeScript
export declare const HISTORY_STATE_SCROLL_KEY = "__rwsdk_scroll_key";
export type ScrollPosition = {
x: number;
y: number;
};
export type PendingScroll = ScrollPosition & {
behavior: ScrollBehavior;
};
export interface NavigationHistoryState extends Record<string, unknown> {
path?: string;
scrollX?: number;
scrollY?: number;
[HISTORY_STATE_SCROLL_KEY]?: string;
}
export interface ScrollRestorationController {
initialize(): void;
recordCurrentPosition(x: number, y: number): void;
flushCurrentPositionToHistoryState(x?: number, y?: number): void;
pushEntry(href: string, url: URL, initialPosition: ScrollPosition): void;
replaceEntry(href: string, url: URL, initialPosition: ScrollPosition): void;
restorePopStateScroll(): void;
setPendingScroll(pendingScroll: PendingScroll): void;
applyPendingScroll(): void;
}
export declare function createScrollRestoration(): ScrollRestorationController;