Next.js website for Rocky Mountain Vending company featuring: - Product catalog with Stripe integration - Service areas and parts pages - Admin dashboard with Clerk authentication - SEO optimized pages with JSON-LD structured data Co-authored-by: Cursor <cursoragent@cursor.com>
1 line
No EOL
34 KiB
Text
1 line
No EOL
34 KiB
Text
{"version":3,"sources":["../../../src/client/components/app-router.tsx"],"sourcesContent":["import React, {\n useEffect,\n useMemo,\n startTransition,\n useInsertionEffect,\n useDeferredValue,\n} from 'react'\nimport {\n AppRouterContext,\n LayoutRouterContext,\n GlobalLayoutRouterContext,\n} from '../../shared/lib/app-router-context.shared-runtime'\nimport type { CacheNode } from '../../shared/lib/app-router-types'\nimport { ACTION_RESTORE } from './router-reducer/router-reducer-types'\nimport type {\n AppHistoryState,\n AppRouterState,\n} from './router-reducer/router-reducer-types'\nimport { createHrefFromUrl } from './router-reducer/create-href-from-url'\nimport {\n SearchParamsContext,\n PathnameContext,\n PathParamsContext,\n NavigationPromisesContext,\n type NavigationPromises,\n} from '../../shared/lib/hooks-client-context.shared-runtime'\nimport { dispatchAppRouterAction, useActionQueue } from './use-action-queue'\nimport { AppRouterAnnouncer } from './app-router-announcer'\nimport { RedirectBoundary } from './redirect-boundary'\nimport { findHeadInCache } from './router-reducer/reducers/find-head-in-cache'\nimport { unresolvedThenable } from './unresolved-thenable'\nimport { removeBasePath } from '../remove-base-path'\nimport { hasBasePath } from '../has-base-path'\nimport { getSelectedParams } from './router-reducer/compute-changed-path'\nimport { useNavFailureHandler } from './nav-failure-handler'\nimport {\n dispatchTraverseAction,\n publicAppRouterInstance,\n type AppRouterActionQueue,\n type GlobalErrorState,\n} from './app-router-instance'\nimport { getRedirectTypeFromError, getURLFromRedirectError } from './redirect'\nimport { isRedirectError, RedirectType } from './redirect-error'\nimport { pingVisibleLinks } from './links'\nimport RootErrorBoundary from './errors/root-error-boundary'\nimport DefaultGlobalError from './builtin/global-error'\nimport { RootLayoutBoundary } from '../../lib/framework/boundary-components'\nimport type { StaticIndicatorState } from '../dev/hot-reloader/app/hot-reloader-app'\n\nconst globalMutable: {\n pendingMpaPath?: string\n} = {}\n\nfunction HistoryUpdater({\n appRouterState,\n}: {\n appRouterState: AppRouterState\n}) {\n useInsertionEffect(() => {\n if (process.env.__NEXT_APP_NAV_FAIL_HANDLING) {\n // clear pending URL as navigation is no longer\n // in flight\n window.next.__pendingUrl = undefined\n }\n\n const { tree, pushRef, canonicalUrl, renderedSearch } = appRouterState\n\n const appHistoryState: AppHistoryState = {\n tree,\n renderedSearch,\n }\n\n const historyState = {\n ...(pushRef.preserveCustomHistoryState ? window.history.state : {}),\n // Identifier is shortened intentionally.\n // __NA is used to identify if the history entry can be handled by the app-router.\n // __N is used to identify if the history entry can be handled by the old router.\n __NA: true,\n __PRIVATE_NEXTJS_INTERNALS_TREE: appHistoryState,\n }\n if (\n pushRef.pendingPush &&\n // Skip pushing an additional history entry if the canonicalUrl is the same as the current url.\n // This mirrors the browser behavior for normal navigation.\n createHrefFromUrl(new URL(window.location.href)) !== canonicalUrl\n ) {\n // This intentionally mutates React state, pushRef is overwritten to ensure additional push/replace calls do not trigger an additional history entry.\n pushRef.pendingPush = false\n window.history.pushState(historyState, '', canonicalUrl)\n } else {\n window.history.replaceState(historyState, '', canonicalUrl)\n }\n }, [appRouterState])\n\n useEffect(() => {\n // The Next-Url and the base tree may affect the result of a prefetch\n // task. Re-prefetch all visible links with the updated values. In most\n // cases, this will not result in any new network requests, only if\n // the prefetch result actually varies on one of these inputs.\n if (process.env.__NEXT_CLIENT_SEGMENT_CACHE) {\n pingVisibleLinks(appRouterState.nextUrl, appRouterState.tree)\n }\n }, [appRouterState.nextUrl, appRouterState.tree])\n\n return null\n}\n\nexport function createEmptyCacheNode(): CacheNode {\n return {\n lazyData: null,\n rsc: null,\n prefetchRsc: null,\n head: null,\n prefetchHead: null,\n parallelRoutes: new Map(),\n loading: null,\n navigatedAt: -1,\n }\n}\n\nfunction copyNextJsInternalHistoryState(data: any) {\n if (data == null) data = {}\n const currentState = window.history.state\n const __NA = currentState?.__NA\n if (__NA) {\n data.__NA = __NA\n }\n const __PRIVATE_NEXTJS_INTERNALS_TREE =\n currentState?.__PRIVATE_NEXTJS_INTERNALS_TREE\n if (__PRIVATE_NEXTJS_INTERNALS_TREE) {\n data.__PRIVATE_NEXTJS_INTERNALS_TREE = __PRIVATE_NEXTJS_INTERNALS_TREE\n }\n\n return data\n}\n\nfunction Head({\n headCacheNode,\n}: {\n headCacheNode: CacheNode | null\n}): React.ReactNode {\n // If this segment has a `prefetchHead`, it's the statically prefetched data.\n // We should use that on initial render instead of `head`. Then we'll switch\n // to `head` when the dynamic response streams in.\n const head = headCacheNode !== null ? headCacheNode.head : null\n const prefetchHead =\n headCacheNode !== null ? headCacheNode.prefetchHead : null\n\n // If no prefetch data is available, then we go straight to rendering `head`.\n const resolvedPrefetchRsc = prefetchHead !== null ? prefetchHead : head\n\n // We use `useDeferredValue` to handle switching between the prefetched and\n // final values. The second argument is returned on initial render, then it\n // re-renders with the first argument.\n return useDeferredValue(head, resolvedPrefetchRsc)\n}\n\n/**\n * The global router that wraps the application components.\n */\nfunction Router({\n actionQueue,\n globalError,\n webSocket,\n staticIndicatorState,\n}: {\n actionQueue: AppRouterActionQueue\n globalError: GlobalErrorState\n webSocket: WebSocket | undefined\n staticIndicatorState: StaticIndicatorState | undefined\n}) {\n const state = useActionQueue(actionQueue)\n const { canonicalUrl } = state\n // Add memoized pathname/query for useSearchParams and usePathname.\n const { searchParams, pathname } = useMemo(() => {\n const url = new URL(\n canonicalUrl,\n typeof window === 'undefined' ? 'http://n' : window.location.href\n )\n\n return {\n // This is turned into a readonly class in `useSearchParams`\n searchParams: url.searchParams,\n pathname: hasBasePath(url.pathname)\n ? removeBasePath(url.pathname)\n : url.pathname,\n }\n }, [canonicalUrl])\n\n if (process.env.NODE_ENV !== 'production') {\n const { cache, tree } = state\n\n // This hook is in a conditional but that is ok because `process.env.NODE_ENV` never changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useEffect(() => {\n // Add `window.nd` for debugging purposes.\n // This is not meant for use in applications as concurrent rendering will affect the cache/tree/router.\n // @ts-ignore this is for debugging\n window.nd = {\n router: publicAppRouterInstance,\n cache,\n tree,\n }\n }, [cache, tree])\n }\n\n useEffect(() => {\n // If the app is restored from bfcache, it's possible that\n // pushRef.mpaNavigation is true, which would mean that any re-render of this component\n // would trigger the mpa navigation logic again from the lines below.\n // This will restore the router to the initial state in the event that the app is restored from bfcache.\n function handlePageShow(event: PageTransitionEvent) {\n if (\n !event.persisted ||\n !window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE\n ) {\n return\n }\n\n // Clear the pendingMpaPath value so that a subsequent MPA navigation to the same URL can be triggered.\n // This is necessary because if the browser restored from bfcache, the pendingMpaPath would still be set to the value\n // of the last MPA navigation.\n globalMutable.pendingMpaPath = undefined\n\n dispatchAppRouterAction({\n type: ACTION_RESTORE,\n url: new URL(window.location.href),\n historyState: window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE,\n })\n }\n\n window.addEventListener('pageshow', handlePageShow)\n\n return () => {\n window.removeEventListener('pageshow', handlePageShow)\n }\n }, [])\n\n useEffect(() => {\n // Ensure that any redirect errors that bubble up outside of the RedirectBoundary\n // are caught and handled by the router.\n function handleUnhandledRedirect(\n event: ErrorEvent | PromiseRejectionEvent\n ) {\n const error = 'reason' in event ? event.reason : event.error\n if (isRedirectError(error)) {\n event.preventDefault()\n const url = getURLFromRedirectError(error)\n const redirectType = getRedirectTypeFromError(error)\n // TODO: This should access the router methods directly, rather than\n // go through the public interface.\n if (redirectType === RedirectType.push) {\n publicAppRouterInstance.push(url, {})\n } else {\n publicAppRouterInstance.replace(url, {})\n }\n }\n }\n window.addEventListener('error', handleUnhandledRedirect)\n window.addEventListener('unhandledrejection', handleUnhandledRedirect)\n\n return () => {\n window.removeEventListener('error', handleUnhandledRedirect)\n window.removeEventListener('unhandledrejection', handleUnhandledRedirect)\n }\n }, [])\n\n // When mpaNavigation flag is set do a hard navigation to the new url.\n // Infinitely suspend because we don't actually want to rerender any child\n // components with the new URL and any entangled state updates shouldn't\n // commit either (eg: useTransition isPending should stay true until the page\n // unloads).\n //\n // This is a side effect in render. Don't try this at home, kids. It's\n // probably safe because we know this is a singleton component and it's never\n // in <Offscreen>. At least I hope so. (It will run twice in dev strict mode,\n // but that's... fine?)\n const { pushRef } = state\n if (pushRef.mpaNavigation) {\n // if there's a re-render, we don't want to trigger another redirect if one is already in flight to the same URL\n if (globalMutable.pendingMpaPath !== canonicalUrl) {\n const location = window.location\n if (pushRef.pendingPush) {\n location.assign(canonicalUrl)\n } else {\n location.replace(canonicalUrl)\n }\n\n globalMutable.pendingMpaPath = canonicalUrl\n }\n // TODO-APP: Should we listen to navigateerror here to catch failed\n // navigations somehow? And should we call window.stop() if a SPA navigation\n // should interrupt an MPA one?\n // NOTE: This is intentionally using `throw` instead of `use` because we're\n // inside an externally mutable condition (pushRef.mpaNavigation), which\n // violates the rules of hooks.\n throw unresolvedThenable\n }\n\n useEffect(() => {\n const originalPushState = window.history.pushState.bind(window.history)\n const originalReplaceState = window.history.replaceState.bind(\n window.history\n )\n\n // Ensure the canonical URL in the Next.js Router is updated when the URL is changed so that `usePathname` and `useSearchParams` hold the pushed values.\n const applyUrlFromHistoryPushReplace = (\n url: string | URL | null | undefined\n ) => {\n const href = window.location.href\n const appHistoryState: AppHistoryState | undefined =\n window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE\n\n startTransition(() => {\n dispatchAppRouterAction({\n type: ACTION_RESTORE,\n url: new URL(url ?? href, href),\n historyState: appHistoryState,\n })\n })\n }\n\n /**\n * Patch pushState to ensure external changes to the history are reflected in the Next.js Router.\n * Ensures Next.js internal history state is copied to the new history entry.\n * Ensures usePathname and useSearchParams hold the newly provided url.\n */\n window.history.pushState = function pushState(\n data: any,\n _unused: string,\n url?: string | URL | null\n ): void {\n // Avoid a loop when Next.js internals trigger pushState/replaceState\n if (data?.__NA || data?._N) {\n return originalPushState(data, _unused, url)\n }\n\n data = copyNextJsInternalHistoryState(data)\n\n if (url) {\n applyUrlFromHistoryPushReplace(url)\n }\n\n return originalPushState(data, _unused, url)\n }\n\n /**\n * Patch replaceState to ensure external changes to the history are reflected in the Next.js Router.\n * Ensures Next.js internal history state is copied to the new history entry.\n * Ensures usePathname and useSearchParams hold the newly provided url.\n */\n window.history.replaceState = function replaceState(\n data: any,\n _unused: string,\n url?: string | URL | null\n ): void {\n // Avoid a loop when Next.js internals trigger pushState/replaceState\n if (data?.__NA || data?._N) {\n return originalReplaceState(data, _unused, url)\n }\n data = copyNextJsInternalHistoryState(data)\n\n if (url) {\n applyUrlFromHistoryPushReplace(url)\n }\n return originalReplaceState(data, _unused, url)\n }\n\n /**\n * Handle popstate event, this is used to handle back/forward in the browser.\n * By default dispatches ACTION_RESTORE, however if the history entry was not pushed/replaced by app-router it will reload the page.\n * That case can happen when the old router injected the history entry.\n */\n const onPopState = (event: PopStateEvent) => {\n if (!event.state) {\n // TODO-APP: this case only happens when pushState/replaceState was called outside of Next.js. It should probably reload the page in this case.\n return\n }\n\n // This case happens when the history entry was pushed by the `pages` router.\n if (!event.state.__NA) {\n window.location.reload()\n return\n }\n\n // TODO-APP: Ideally the back button should not use startTransition as it should apply the updates synchronously\n // Without startTransition works if the cache is there for this path\n startTransition(() => {\n dispatchTraverseAction(\n window.location.href,\n event.state.__PRIVATE_NEXTJS_INTERNALS_TREE\n )\n })\n }\n\n // Register popstate event to call onPopstate.\n window.addEventListener('popstate', onPopState)\n return () => {\n window.history.pushState = originalPushState\n window.history.replaceState = originalReplaceState\n window.removeEventListener('popstate', onPopState)\n }\n }, [])\n\n const { cache, tree, nextUrl, focusAndScrollRef, previousNextUrl } = state\n\n const matchingHead = useMemo(() => {\n return findHeadInCache(cache, tree[1])\n }, [cache, tree])\n\n // Add memoized pathParams for useParams.\n const pathParams = useMemo(() => {\n return getSelectedParams(tree)\n }, [tree])\n\n // Create instrumented promises for navigation hooks (dev-only)\n // These are specially instrumented promises to show in the Suspense DevTools\n // Promises are cached outside of render to survive suspense retries.\n let instrumentedNavigationPromises: NavigationPromises | null = null\n if (process.env.NODE_ENV !== 'production') {\n const { createRootNavigationPromises } =\n require('./navigation-devtools') as typeof import('./navigation-devtools')\n\n instrumentedNavigationPromises = createRootNavigationPromises(\n tree,\n pathname,\n searchParams,\n pathParams\n )\n }\n\n const layoutRouterContext = useMemo(() => {\n return {\n parentTree: tree,\n parentCacheNode: cache,\n parentSegmentPath: null,\n parentParams: {},\n // This is the <Activity> \"name\" that shows up in the Suspense DevTools.\n // It represents the root of the app.\n debugNameContext: '/',\n // Root node always has `url`\n // Provided in AppTreeContext to ensure it can be overwritten in layout-router\n url: canonicalUrl,\n // Root segment is always active\n isActive: true,\n }\n }, [tree, cache, canonicalUrl])\n\n const globalLayoutRouterContext = useMemo(() => {\n return {\n tree,\n focusAndScrollRef,\n nextUrl,\n previousNextUrl,\n }\n }, [tree, focusAndScrollRef, nextUrl, previousNextUrl])\n\n let head\n if (matchingHead !== null) {\n // The head is wrapped in an extra component so we can use\n // `useDeferredValue` to swap between the prefetched and final versions of\n // the head. (This is what LayoutRouter does for segment data, too.)\n //\n // The `key` is used to remount the component whenever the head moves to\n // a different segment.\n const [headCacheNode, headKey, headKeyWithoutSearchParams] = matchingHead\n\n head = (\n <Head\n key={\n // Necessary for PPR: omit search params from the key to match prerendered keys\n typeof window === 'undefined' ? headKeyWithoutSearchParams : headKey\n }\n headCacheNode={headCacheNode}\n />\n )\n } else {\n head = null\n }\n\n let content = (\n <RedirectBoundary>\n {head}\n {/* RootLayoutBoundary enables detection of Suspense boundaries around the root layout.\n When users wrap their layout in <Suspense>, this creates the component stack pattern\n \"Suspense -> RootLayoutBoundary\" which dynamic-rendering.ts uses to allow dynamic rendering. */}\n <RootLayoutBoundary>{cache.rsc}</RootLayoutBoundary>\n <AppRouterAnnouncer tree={tree} />\n </RedirectBoundary>\n )\n\n if (process.env.NODE_ENV !== 'production') {\n // In development, we apply few error boundaries and hot-reloader:\n // - DevRootHTTPAccessFallbackBoundary: avoid using navigation API like notFound() in root layout\n // - HotReloader:\n // - hot-reload the app when the code changes\n // - render dev overlay\n // - catch runtime errors and display global-error when necessary\n if (typeof window !== 'undefined') {\n const { DevRootHTTPAccessFallbackBoundary } =\n require('./dev-root-http-access-fallback-boundary') as typeof import('./dev-root-http-access-fallback-boundary')\n content = (\n <DevRootHTTPAccessFallbackBoundary>\n {content}\n </DevRootHTTPAccessFallbackBoundary>\n )\n }\n const HotReloader: typeof import('../dev/hot-reloader/app/hot-reloader-app').default =\n (\n require('../dev/hot-reloader/app/hot-reloader-app') as typeof import('../dev/hot-reloader/app/hot-reloader-app')\n ).default\n\n content = (\n <HotReloader\n globalError={globalError}\n webSocket={webSocket}\n staticIndicatorState={staticIndicatorState}\n >\n {content}\n </HotReloader>\n )\n } else {\n content = (\n <RootErrorBoundary\n errorComponent={globalError[0]}\n errorStyles={globalError[1]}\n >\n {content}\n </RootErrorBoundary>\n )\n }\n\n return (\n <>\n <HistoryUpdater appRouterState={state} />\n <RuntimeStyles />\n <NavigationPromisesContext.Provider\n value={instrumentedNavigationPromises}\n >\n <PathParamsContext.Provider value={pathParams}>\n <PathnameContext.Provider value={pathname}>\n <SearchParamsContext.Provider value={searchParams}>\n <GlobalLayoutRouterContext.Provider\n value={globalLayoutRouterContext}\n >\n {/* TODO: We should be able to remove this context. useRouter\n should import from app-router-instance instead. It's only\n necessary because useRouter is shared between Pages and\n App Router. We should fork that module, then remove this\n context provider. */}\n <AppRouterContext.Provider value={publicAppRouterInstance}>\n <LayoutRouterContext.Provider value={layoutRouterContext}>\n {content}\n </LayoutRouterContext.Provider>\n </AppRouterContext.Provider>\n </GlobalLayoutRouterContext.Provider>\n </SearchParamsContext.Provider>\n </PathnameContext.Provider>\n </PathParamsContext.Provider>\n </NavigationPromisesContext.Provider>\n </>\n )\n}\n\nexport default function AppRouter({\n actionQueue,\n globalErrorState,\n webSocket,\n staticIndicatorState,\n}: {\n actionQueue: AppRouterActionQueue\n globalErrorState: GlobalErrorState\n webSocket?: WebSocket\n staticIndicatorState?: StaticIndicatorState\n}) {\n useNavFailureHandler()\n\n const router = (\n <Router\n actionQueue={actionQueue}\n globalError={globalErrorState}\n webSocket={webSocket}\n staticIndicatorState={staticIndicatorState}\n />\n )\n\n // At the very top level, use the default GlobalError component as the final fallback.\n // When the app router itself fails, which means the framework itself fails, we show the default error.\n return (\n <RootErrorBoundary errorComponent={DefaultGlobalError}>\n {router}\n </RootErrorBoundary>\n )\n}\n\nconst runtimeStyles = new Set<string>()\nlet runtimeStyleChanged = new Set<() => void>()\n\nglobalThis._N_E_STYLE_LOAD = function (href: string) {\n let len = runtimeStyles.size\n runtimeStyles.add(href)\n if (runtimeStyles.size !== len) {\n runtimeStyleChanged.forEach((cb) => cb())\n }\n // TODO figure out how to get a promise here\n // But maybe it's not necessary as react would block rendering until it's loaded\n return Promise.resolve()\n}\n\nfunction RuntimeStyles() {\n const [, forceUpdate] = React.useState(0)\n const renderedStylesSize = runtimeStyles.size\n useEffect(() => {\n const changed = () => forceUpdate((c) => c + 1)\n runtimeStyleChanged.add(changed)\n if (renderedStylesSize !== runtimeStyles.size) {\n changed()\n }\n return () => {\n runtimeStyleChanged.delete(changed)\n }\n }, [renderedStylesSize, forceUpdate])\n\n const dplId = process.env.NEXT_DEPLOYMENT_ID\n ? `?dpl=${process.env.NEXT_DEPLOYMENT_ID}`\n : ''\n return [...runtimeStyles].map((href, i) => (\n <link\n key={i}\n rel=\"stylesheet\"\n href={`${href}${dplId}`}\n // @ts-ignore\n precedence=\"next\"\n // TODO figure out crossOrigin and nonce\n // crossOrigin={TODO}\n // nonce={TODO}\n />\n ))\n}\n"],"names":["createEmptyCacheNode","AppRouter","globalMutable","HistoryUpdater","appRouterState","useInsertionEffect","process","env","__NEXT_APP_NAV_FAIL_HANDLING","window","next","__pendingUrl","undefined","tree","pushRef","canonicalUrl","renderedSearch","appHistoryState","historyState","preserveCustomHistoryState","history","state","__NA","__PRIVATE_NEXTJS_INTERNALS_TREE","pendingPush","createHrefFromUrl","URL","location","href","pushState","replaceState","useEffect","__NEXT_CLIENT_SEGMENT_CACHE","pingVisibleLinks","nextUrl","lazyData","rsc","prefetchRsc","head","prefetchHead","parallelRoutes","Map","loading","navigatedAt","copyNextJsInternalHistoryState","data","currentState","Head","headCacheNode","resolvedPrefetchRsc","useDeferredValue","Router","actionQueue","globalError","webSocket","staticIndicatorState","useActionQueue","searchParams","pathname","useMemo","url","hasBasePath","removeBasePath","NODE_ENV","cache","nd","router","publicAppRouterInstance","handlePageShow","event","persisted","pendingMpaPath","dispatchAppRouterAction","type","ACTION_RESTORE","addEventListener","removeEventListener","handleUnhandledRedirect","error","reason","isRedirectError","preventDefault","getURLFromRedirectError","redirectType","getRedirectTypeFromError","RedirectType","push","replace","mpaNavigation","assign","unresolvedThenable","originalPushState","bind","originalReplaceState","applyUrlFromHistoryPushReplace","startTransition","_unused","_N","onPopState","reload","dispatchTraverseAction","focusAndScrollRef","previousNextUrl","matchingHead","findHeadInCache","pathParams","getSelectedParams","instrumentedNavigationPromises","createRootNavigationPromises","require","layoutRouterContext","parentTree","parentCacheNode","parentSegmentPath","parentParams","debugNameContext","isActive","globalLayoutRouterContext","headKey","headKeyWithoutSearchParams","content","RedirectBoundary","RootLayoutBoundary","AppRouterAnnouncer","DevRootHTTPAccessFallbackBoundary","HotReloader","default","RootErrorBoundary","errorComponent","errorStyles","RuntimeStyles","NavigationPromisesContext","Provider","value","PathParamsContext","PathnameContext","SearchParamsContext","GlobalLayoutRouterContext","AppRouterContext","LayoutRouterContext","globalErrorState","useNavFailureHandler","DefaultGlobalError","runtimeStyles","Set","runtimeStyleChanged","globalThis","_N_E_STYLE_LOAD","len","size","add","forEach","cb","Promise","resolve","forceUpdate","React","useState","renderedStylesSize","changed","c","delete","dplId","NEXT_DEPLOYMENT_ID","map","i","link","rel","precedence"],"mappings":"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","ignoreList":[0]} |