Some checks failed
CI / go (push) Waiting to run
CI / docker (push) Waiting to run
CI / lint-go (push) Waiting to run
CI / lint-docs (push) Waiting to run
CI / check-paperclip (push) Waiting to run
Deploy static site / Deploy to GitHub Pages (push) Has been cancelled
Deploy static site / Deploy via Docker to hatch.surf (push) Has been cancelled
Resolved conflicts by taking GitHub versions for: - .dockerignore, .gitignore, Dockerfile, README.md, docker-compose.yml Kept deploy.sh updated to: - Pull from GitHub (primary source) - Push to Gitea (push-mirror) - Build from site/ directory (GitHub structure) Co-Authored-By: Paperclip <noreply@paperclip.ing>
43 lines
1.8 KiB
TypeScript
43 lines
1.8 KiB
TypeScript
/**
|
|
* Navigation lock for the Instant Navigation Testing API.
|
|
*
|
|
* Manages the in-memory lock (a promise) that gates dynamic data writes
|
|
* during instant navigation captures, and owns all cookie state
|
|
* transitions (pending → captured-MPA, pending → captured-SPA).
|
|
*
|
|
* External actors (Playwright, devtools) set [0] to start a lock scope
|
|
* and delete the cookie to end one. Next.js writes captured values.
|
|
* The CookieStore handler distinguishes them by value: pending = external,
|
|
* captured = self-write (ignored).
|
|
*/
|
|
import type { FlightRouterState } from '../../../shared/lib/app-router-types';
|
|
/**
|
|
* Sets up the cookie-based lock. Handles the initial page load state and
|
|
* registers a CookieStore listener for runtime changes.
|
|
*
|
|
* Called once during page initialization from app-globals.ts.
|
|
*/
|
|
export declare function startListeningForInstantNavigationCookie(): void;
|
|
/**
|
|
* Transitions the cookie from pending to captured-SPA. Called when a
|
|
* client-side navigation is captured by the lock.
|
|
*
|
|
* @param fromTree - The flight router state of the from-route
|
|
* @param toTree - The flight router state of the to-route (null if not yet known)
|
|
*/
|
|
export declare function transitionToCapturedSPA(fromTree: FlightRouterState, toTree: FlightRouterState | null): void;
|
|
/**
|
|
* Updates the captured-SPA cookie with the resolved route trees.
|
|
* Called after the prefetch resolves and the target route tree is known.
|
|
*/
|
|
export declare function updateCapturedSPAToTree(fromTree: FlightRouterState, toTree: FlightRouterState): void;
|
|
/**
|
|
* Returns true if the navigation lock is currently active.
|
|
*/
|
|
export declare function isNavigationLocked(): boolean;
|
|
/**
|
|
* Waits for the navigation lock to be released, if it's currently held.
|
|
* No-op if the lock is not acquired.
|
|
*/
|
|
export declare function waitForNavigationLockIfActive(): Promise<void>;
|