next
Version:
The React Framework
26 lines (25 loc) • 1.58 kB
JavaScript
import { completeHardNavigation, navigate as navigateUsingSegmentCache } from '../../segment-cache/navigation';
import { getStaleTimeMs } from '../../segment-cache/cache';
import { FreshnessPolicy } from '../ppr-navigations';
// These values are set by `define-env-plugin` (based on `nextConfig.experimental.staleTimes`)
// and default to 5 minutes (static) / 0 seconds (dynamic)
export const DYNAMIC_STALETIME_MS = Number(process.env.__NEXT_CLIENT_ROUTER_DYNAMIC_STALETIME) * 1000;
export const STATIC_STALETIME_MS = getStaleTimeMs(Number(process.env.__NEXT_CLIENT_ROUTER_STATIC_STALETIME));
export function navigateReducer(state, action) {
const { url, isExternalUrl, navigateType, scrollBehavior } = action;
if (isExternalUrl) {
return completeHardNavigation(state, url, navigateType);
}
// Handles case where `<meta http-equiv="refresh">` tag is present,
// which will trigger an MPA navigation.
if (document.getElementById('__next-page-redirect')) {
return completeHardNavigation(state, url, navigateType);
}
// Temporary glue code between the router reducer and the new navigation
// implementation. Eventually we'll rewrite the router reducer to a
// state machine.
const currentUrl = new URL(state.canonicalUrl, location.origin);
const currentRenderedSearch = state.renderedSearch;
return navigateUsingSegmentCache(state, url, currentUrl, currentRenderedSearch, state.cache, state.tree, state.nextUrl, FreshnessPolicy.Default, scrollBehavior, navigateType);
}
//# sourceMappingURL=navigate-reducer.js.map