UNPKG

one

Version:

One is a new React Framework that makes Vite serve both native and web.

1 lines 33.7 kB
{"version":3,"names":["createNavigatorFactory","React","Suspense","createElement","memo","useContext","useEffect","useState","SafeAreaProvider","ServerContextScript","checkSkewAndReload","getClientMatchesSnapshot","handleSkewError","isChunkLoadError","getPageExport","EmptyRoute","NamedSlot","RouteErrorView","Try","DevHead","getServerContext","useServerContext","filterRootHTML","Route","RouteParamsContext","SuspenseFallbackContext","useRouteNode","SpaShellContext","sortRoutesWithInitial","Fragment","jsx","jsxs","hasMetaCharset","children","process","env","NODE_ENV","checkElement","child","isValidElement","type","props","childProps","Array","isArray","some","Screen","Group","cachedInlineCSSElements","document","querySelectorAll","elements","forEach","el","i","tagName","push","id","dangerouslySetInnerHTML","__html","innerHTML","href","getAttribute","rel","SSR_SAFE_METRICS","frame","x","y","width","height","insets","top","left","right","bottom","RootLayoutRenderer","LayoutComponent","layoutProps","forwardedRef","setHmrKey","handler","k","window","addEventListener","removeEventListener","bodyProps","head","htmlProps","headChildren","headProps","serverContext","finalChildren","console","warn","cssContents","length","cssInlineCount","map","content","css","file","suppressHydrationWarning","initialMetrics","lang","getSortedChildren","order","initialRouteName","options","sort","route","entries","ordered","name","redirect","initialParams","listeners","options2","getId","matchIndex","findIndex","match","splice","Error","filter","Boolean","onlyMatching","useSortedScreens","node","useMemo","value","routeName","normalized","replace","protectedScreens","has","routeToScreen","fromImport","ErrorBoundary","SuspenseFallback","component","default","forwardRef","ref","catch","exported","Object","keys","RouteSuspenseFallback","Component","params","qualifiedStore","WeakMap","getRouteMatchesForProps","serverMatches","matches","VITE_ENVIRONMENT","clientMatches","getQualifiedRouteComponent","get","ScreenComponent","isSpaShell","InheritedSuspenseFallback","segment","layoutRenderMode","res","loadRoute","LayoutSuspenseFallback","find","match2","routeId","contextKey","loaderDataProps","loaderData","DEBUG","groupCollapsed","key","info","groupEnd","slotProps","slots","size","slotName","layoutContextKey","rendered","RouteErrorBoundary","providedSuspenseFallback","Provider","wrapSuspense","fallback","ONE_SUSPEND_ROUTES","globalThis","__ONE_DISABLE_SUSPENSE_ROUTES__","QualifiedRoute","navigation","displayName","Memoized","set","createGetIdForRoute","include","Map","dynamic","segments","values","join","deep","args","staticOptions","generated","getNavOptions","staticResult","dynamicResult","output","tabBarButton","drawerItemStyle","display","getComponent","ROUTE_ERROR_BOUNDARY_INITIAL_STATE","hasError","error","errorInfo","constructor","state","getDerivedStateFromError","componentDidCatch","message","stack","componentStack","setState","ONE_SKEW_PROTECTION","clearError","render","onRetry","bind"],"sources":["useScreens.mjs"],"sourcesContent":["import { createNavigatorFactory } from \"@react-navigation/core\";\nimport React, { Suspense, createElement, memo, useContext, useEffect, useState } from \"react\";\nimport { SafeAreaProvider } from \"react-native-safe-area-context\";\nimport { ServerContextScript } from \"../server/ServerContextScript\";\nimport { checkSkewAndReload } from \"../skewProtection\";\nimport { getClientMatchesSnapshot } from \"../useMatches\";\nimport { handleSkewError, isChunkLoadError } from \"../utils/dynamicImport\";\nimport { getPageExport } from \"../utils/getPageExport\";\nimport { EmptyRoute } from \"../views/EmptyRoute\";\nimport { NamedSlot } from \"../views/Navigator\";\nimport { RouteErrorView } from \"../views/RouteErrorView\";\nimport { Try } from \"../views/Try\";\nimport { DevHead } from \"../vite/DevHead\";\nimport { getServerContext, useServerContext } from \"../vite/one-server-only\";\nimport { filterRootHTML } from \"./filterRootHTML\";\nimport { Route, RouteParamsContext, SuspenseFallbackContext, useRouteNode } from \"./Route\";\nimport { SpaShellContext } from \"./SpaShellContext\";\nimport { sortRoutesWithInitial } from \"./sortRoutes\";\nimport { Fragment, jsx, jsxs } from \"react/jsx-runtime\";\n\nfunction hasMetaCharset(children) {\n\tif (process.env.NODE_ENV === \"development\") {\n\t\tif (!children) return false;\n\t\tconst checkElement = (child) => {\n\t\t\tif (!React.isValidElement(child)) return false;\n\t\t\tif (child.type === \"meta\") {\n\t\t\t\tconst props = child.props;\n\t\t\t\tif (\"charSet\" in props || \"charset\" in props) return true;\n\t\t\t}\n\t\t\tconst childProps = child.props;\n\t\t\tif (childProps.children) return hasMetaCharset(childProps.children);\n\t\t\treturn false;\n\t\t};\n\t\tif (Array.isArray(children)) return children.some(checkElement);\n\t\treturn checkElement(children);\n\t}\n\treturn true;\n}\nconst { Screen, Group } = createNavigatorFactory({})();\nconst cachedInlineCSSElements = typeof document !== \"undefined\" && typeof document.querySelectorAll === \"function\" ? (() => {\n\tconst elements = [];\n\tdocument.querySelectorAll(\"style[id^=\\\"__one_css_\\\"], link[rel=\\\"stylesheet\\\"][data-one-css]\").forEach((el, i) => {\n\t\tif (el.tagName === \"STYLE\") elements.push(/* @__PURE__ */ jsx(\"style\", {\n\t\t\tid: el.id,\n\t\t\tdangerouslySetInnerHTML: { __html: el.innerHTML }\n\t\t}, `inline-css-${i}`));\n\t\telse {\n\t\t\tconst href = el.getAttribute(\"href\");\n\t\t\telements.push(/* @__PURE__ */ jsx(\"link\", {\n\t\t\t\trel: \"stylesheet\",\n\t\t\t\thref,\n\t\t\t\t\"data-one-css\": \"\"\n\t\t\t}, href));\n\t\t}\n\t});\n\treturn elements;\n})() : [];\nconst SSR_SAFE_METRICS = {\n\tframe: {\n\t\tx: 0,\n\t\ty: 0,\n\t\twidth: 0,\n\t\theight: 0\n\t},\n\tinsets: {\n\t\ttop: 0,\n\t\tleft: 0,\n\t\tright: 0,\n\t\tbottom: 0\n\t}\n};\nfunction RootLayoutRenderer({ LayoutComponent, layoutProps, forwardedRef }) {\n\tif (process.env.NODE_ENV === \"development\" && true) {\n\t\tconst [, setHmrKey] = useState(0);\n\t\tuseEffect(() => {\n\t\t\tconst handler = () => setHmrKey((k) => k + 1);\n\t\t\twindow.addEventListener(\"one-hmr-update\", handler);\n\t\t\treturn () => window.removeEventListener(\"one-hmr-update\", handler);\n\t\t}, []);\n\t}\n\tconst { children, bodyProps, head, htmlProps } = filterRootHTML(LayoutComponent(layoutProps, forwardedRef));\n\tconst { children: headChildren, ...headProps } = head?.props || {};\n\tconst serverContext = useServerContext();\n\tlet finalChildren = children;\n\tif (process.env.NODE_ENV === \"development\") {\n\t\tif (!hasMetaCharset(headChildren)) console.warn(`[one] Missing <meta charSet=\"utf-8\" /> in your root _layout.tsx <head>. This can cause React hydration issues due to encoding mismatch. Add it as the first element in your <head> tag.`);\n\t}\n\tfinalChildren = /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsxs(\"head\", {\n\t\t...headProps,\n\t\tchildren: [\n\t\t\t/* @__PURE__ */ jsx(DevHead, {}),\n\t\t\t/* @__PURE__ */ jsx(\"script\", { dangerouslySetInnerHTML: { __html: `globalThis['global'] = globalThis` } }),\n\t\t\tserverContext?.cssContents?.length || serverContext?.cssInlineCount ? serverContext?.cssContents ? serverContext.cssContents.map((content, i) => content ? /* @__PURE__ */ jsx(\"style\", {\n\t\t\t\tid: `__one_css_${i}`,\n\t\t\t\tdangerouslySetInnerHTML: { __html: content }\n\t\t\t}, `inline-css-${i}`) : serverContext.css?.[i] ? /* @__PURE__ */ jsx(\"link\", {\n\t\t\t\trel: \"stylesheet\",\n\t\t\t\thref: serverContext.css[i]\n\t\t\t}, serverContext.css[i]) : null) : cachedInlineCSSElements : serverContext?.css?.map((file) => /* @__PURE__ */ jsx(\"link\", {\n\t\t\t\trel: \"stylesheet\",\n\t\t\t\thref: file\n\t\t\t}, file)),\n\t\t\t/* @__PURE__ */ jsx(ServerContextScript, {}),\n\t\t\theadChildren\n\t\t]\n\t}, \"head\"), /* @__PURE__ */ jsx(\"body\", {\n\t\tsuppressHydrationWarning: true,\n\t\t...bodyProps,\n\t\tchildren: /* @__PURE__ */ jsx(SafeAreaProvider, {\n\t\t\tinitialMetrics: SSR_SAFE_METRICS,\n\t\t\tchildren: finalChildren\n\t\t})\n\t}, \"body\")] });\n\treturn /* @__PURE__ */ jsx(\"html\", {\n\t\tsuppressHydrationWarning: true,\n\t\tlang: \"en-US\",\n\t\t...htmlProps,\n\t\tchildren: finalChildren\n\t});\n}\nfunction getSortedChildren(children, order, initialRouteName, options) {\n\tif (!order?.length) return children.sort(sortRoutesWithInitial(initialRouteName)).map((route) => ({\n\t\troute,\n\t\tprops: {}\n\t}));\n\tconst entries = [...children];\n\tconst ordered = order.map(({ name, redirect, initialParams, listeners, options: options2, getId }) => {\n\t\tif (!entries.length) {\n\t\t\tconsole.warn(`[Layout children]: Too many screens defined. Route \"${name}\" is extraneous.`);\n\t\t\treturn null;\n\t\t}\n\t\tconst matchIndex = entries.findIndex((child) => child.route === name);\n\t\tif (matchIndex === -1) {\n\t\t\tconsole.warn(`[Layout children]: No route named \"${name}\" exists in nested children:`, children.map(({ route }) => route));\n\t\t\treturn null;\n\t\t}\n\t\tconst match = entries[matchIndex];\n\t\tentries.splice(matchIndex, 1);\n\t\tif (redirect) {\n\t\t\tif (typeof redirect === \"string\") throw new Error(`Redirecting to a specific route is not supported yet.`);\n\t\t\treturn null;\n\t\t}\n\t\treturn {\n\t\t\troute: match,\n\t\t\tprops: {\n\t\t\t\tinitialParams,\n\t\t\t\tlisteners,\n\t\t\t\toptions: options2,\n\t\t\t\tgetId\n\t\t\t}\n\t\t};\n\t}).filter(Boolean);\n\tif (!options?.onlyMatching) ordered.push(...entries.sort(sortRoutesWithInitial(initialRouteName)).map((route) => ({\n\t\troute,\n\t\tprops: {}\n\t})));\n\treturn ordered;\n}\nfunction useSortedScreens(order, options) {\n\tconst node = useRouteNode();\n\treturn React.useMemo(() => {\n\t\treturn (node?.children?.length ? getSortedChildren(node.children, order, node.initialRouteName, options) : []).filter((value) => {\n\t\t\tconst routeName = value.route.route;\n\t\t\tconst normalized = routeName.replace(/\\/index$/, \"\");\n\t\t\treturn !(options?.protectedScreens?.has(routeName) || options?.protectedScreens?.has(normalized));\n\t\t}).map((value) => routeToScreen(value.route, value.props));\n\t}, [\n\t\tnode?.children,\n\t\tnode?.initialRouteName,\n\t\torder,\n\t\toptions?.protectedScreens\n\t]);\n}\nfunction fromImport({ ErrorBoundary, SuspenseFallback, ...component }) {\n\tif (ErrorBoundary) return {\n\t\tdefault: React.forwardRef((props, ref) => {\n\t\t\treturn /* @__PURE__ */ jsx(Try, {\n\t\t\t\tcatch: ErrorBoundary,\n\t\t\t\tchildren: React.createElement(getPageExport(component) || EmptyRoute, {\n\t\t\t\t\t...props,\n\t\t\t\t\tref\n\t\t\t\t})\n\t\t\t});\n\t\t}),\n\t\tSuspenseFallback\n\t};\n\tif (process.env.NODE_ENV !== \"production\") {\n\t\tconst exported = getPageExport(component);\n\t\tif (exported && typeof exported === \"object\" && Object.keys(exported).length === 0) return {\n\t\t\tdefault: EmptyRoute,\n\t\t\tSuspenseFallback\n\t\t};\n\t}\n\treturn {\n\t\tdefault: getPageExport(component),\n\t\tSuspenseFallback\n\t};\n}\nfunction RouteSuspenseFallback({ component: Component, route }) {\n\tconst params = useContext(RouteParamsContext);\n\treturn Component ? /* @__PURE__ */ jsx(Component, {\n\t\troute,\n\t\tparams: params ?? {}\n\t}) : null;\n}\nconst qualifiedStore = /* @__PURE__ */ new WeakMap();\nfunction getRouteMatchesForProps() {\n\tconst serverMatches = getServerContext()?.matches ?? [];\n\tif (process.env.VITE_ENVIRONMENT === \"ssr\") return serverMatches;\n\tconst clientMatches = getClientMatchesSnapshot();\n\treturn clientMatches.length ? clientMatches : serverMatches;\n}\nfunction getQualifiedRouteComponent(value) {\n\tif (value && qualifiedStore.has(value)) return qualifiedStore.get(value);\n\tconst ScreenComponent = React.forwardRef((props, ref) => {\n\t\tif (process.env.NODE_ENV === \"development\" && true) {\n\t\t\tconst [, setHmrKey] = useState(0);\n\t\t\tuseEffect(() => {\n\t\t\t\tconst handler = () => setHmrKey((k) => k + 1);\n\t\t\t\twindow.addEventListener(\"one-hmr-update\", handler);\n\t\t\t\treturn () => window.removeEventListener(\"one-hmr-update\", handler);\n\t\t\t}, []);\n\t\t}\n\t\tif (process.env.NODE_ENV === \"development\" && false);\n\t\tconst isSpaShell = useContext(SpaShellContext);\n\t\tconst InheritedSuspenseFallback = useContext(SuspenseFallbackContext);\n\t\tconst matches = getRouteMatchesForProps();\n\t\tif (isSpaShell && props.segment !== \"\") {\n\t\t\tif (!(value.children?.length && (value.layoutRenderMode === \"ssg\" || value.layoutRenderMode === \"ssr\"))) return /* @__PURE__ */ jsx(\"div\", { \"data-one-spa-content\": \"\" });\n\t\t}\n\t\tconst res = fromImport(value.loadRoute());\n\t\tconst Component = getPageExport(res);\n\t\tconst LayoutSuspenseFallback = value.type === \"layout\" ? res.SuspenseFallback : void 0;\n\t\tconst match = matches.find((match2) => match2.routeId === value.contextKey) || (!value.children?.length ? matches[matches.length - 1] : void 0);\n\t\tconst loaderDataProps = match && \"loaderData\" in match ? { loaderData: match.loaderData } : {};\n\t\tif (process.env.NODE_ENV === \"development\" && process.env.DEBUG === \"one\") {\n\t\t\tconsole.groupCollapsed(`Render ${props.key} ${props.segment}`);\n\t\t\tconsole.info(`value`, value);\n\t\t\tconsole.info(`Component`, Component);\n\t\t\tconsole.groupEnd();\n\t\t}\n\t\tconst slotProps = {};\n\t\tif (value.slots && value.slots.size > 0) for (const [slotName] of value.slots) slotProps[slotName] = /* @__PURE__ */ jsx(NamedSlot, {\n\t\t\tname: slotName,\n\t\t\tlayoutContextKey: value.contextKey\n\t\t});\n\t\tlet rendered;\n\t\tif (props.segment === \"\") rendered = /* @__PURE__ */ jsx(RootLayoutRenderer, {\n\t\t\tLayoutComponent: Component,\n\t\t\tlayoutProps: {\n\t\t\t\t...props,\n\t\t\t\t...slotProps,\n\t\t\t\t...loaderDataProps\n\t\t\t},\n\t\t\tforwardedRef: ref\n\t\t});\n\t\telse rendered = /* @__PURE__ */ jsx(RouteErrorBoundary, {\n\t\t\trouteName: value.route,\n\t\t\tchildren: /* @__PURE__ */ jsx(Component, {\n\t\t\t\t...props,\n\t\t\t\t...slotProps,\n\t\t\t\t...loaderDataProps,\n\t\t\t\tref\n\t\t\t})\n\t\t});\n\t\tif (value.type !== \"layout\") return rendered;\n\t\tconst providedSuspenseFallback = LayoutSuspenseFallback ?? InheritedSuspenseFallback;\n\t\treturn /* @__PURE__ */ jsx(SuspenseFallbackContext.Provider, {\n\t\t\tvalue: providedSuspenseFallback,\n\t\t\tchildren: LayoutSuspenseFallback ? wrapSuspense(rendered, LayoutSuspenseFallback) : rendered\n\t\t});\n\t});\n\tconst wrapSuspense = (children, SuspenseFallback) => {\n\t\tconst fallback = /* @__PURE__ */ jsx(RouteSuspenseFallback, {\n\t\t\tcomponent: SuspenseFallback,\n\t\t\troute: value.contextKey\n\t\t});\n\t\tif (process.env.ONE_SUSPEND_ROUTES === \"1\" && globalThis.__ONE_DISABLE_SUSPENSE_ROUTES__ !== true) return /* @__PURE__ */ jsx(Suspense, {\n\t\t\tfallback,\n\t\t\tchildren\n\t\t});\n\t\treturn children;\n\t};\n\tconst QualifiedRoute = React.forwardRef(({ route, navigation, ...props }, ref) => {\n\t\tconst InheritedSuspenseFallback = useContext(SuspenseFallbackContext);\n\t\treturn /* @__PURE__ */ jsx(Route, {\n\t\t\troute,\n\t\t\tnode: value,\n\t\t\tchildren: /* @__PURE__ */ jsx(Fragment, { children: wrapSuspense(/* @__PURE__ */ jsx(ScreenComponent, {\n\t\t\t\t...props,\n\t\t\t\tref,\n\t\t\t\tsegment: value.route\n\t\t\t}), InheritedSuspenseFallback) })\n\t\t});\n\t});\n\tQualifiedRoute.displayName = `Route(${value.route})`;\n\tconst Memoized = memo(QualifiedRoute);\n\tqualifiedStore.set(value, Memoized);\n\treturn Memoized;\n}\nfunction createGetIdForRoute(route) {\n\tconst include = /* @__PURE__ */ new Map();\n\tif (route.dynamic) for (const segment of route.dynamic) include.set(segment.name, segment);\n\treturn ({ params = {} } = {}) => {\n\t\tconst segments = [];\n\t\tfor (const dynamic of include.values()) {\n\t\t\tconst value = params?.[dynamic.name];\n\t\t\tif (Array.isArray(value) && value.length > 0) segments.push(value.join(\"/\"));\n\t\t\telse if (value && !Array.isArray(value)) segments.push(value);\n\t\t\telse if (dynamic.deep) segments.push(`[...${dynamic.name}]`);\n\t\t\telse segments.push(`[${dynamic.name}]`);\n\t\t}\n\t\treturn segments.join(\"/\") ?? route.contextKey;\n\t};\n}\nfunction routeToScreen(route, { options, ...props } = {}) {\n\treturn /* @__PURE__ */ createElement(Screen, {\n\t\tgetId: createGetIdForRoute(route),\n\t\t...props,\n\t\tname: route.route,\n\t\tkey: route.route,\n\t\toptions: (args) => {\n\t\t\tconst staticOptions = route.generated ? route.loadRoute()?.getNavOptions : null;\n\t\t\tconst staticResult = typeof staticOptions === \"function\" ? staticOptions(args) : staticOptions;\n\t\t\tconst dynamicResult = typeof options === \"function\" ? options?.(args) : options;\n\t\t\tconst output = {\n\t\t\t\t...staticResult,\n\t\t\t\t...dynamicResult\n\t\t\t};\n\t\t\tif (route.generated) {\n\t\t\t\toutput.tabBarButton = () => null;\n\t\t\t\toutput.drawerItemStyle = {\n\t\t\t\t\theight: 0,\n\t\t\t\t\tdisplay: \"none\"\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn output;\n\t\t},\n\t\tgetComponent: () => {\n\t\t\treturn getQualifiedRouteComponent(route);\n\t\t}\n\t});\n}\nconst ROUTE_ERROR_BOUNDARY_INITIAL_STATE = {\n\thasError: false,\n\terror: null,\n\terrorInfo: null\n};\nvar RouteErrorBoundary = class extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = ROUTE_ERROR_BOUNDARY_INITIAL_STATE;\n\t}\n\tstatic getDerivedStateFromError(error) {\n\t\treturn {\n\t\t\thasError: true,\n\t\t\terror\n\t\t};\n\t}\n\tcomponentDidCatch(error, errorInfo) {\n\t\tconsole.error(`Error occurred while running route \"${this.props.routeName}\": ${error instanceof Error ? error.message : error}\n\n${error.stack}\n\nComponent Stack:\n${errorInfo.componentStack}`);\n\t\tthis.setState({ errorInfo });\n\t\tif (process.env.NODE_ENV === \"production\" && process.env.ONE_SKEW_PROTECTION !== \"false\") if (isChunkLoadError(error)) handleSkewError();\n\t\telse checkSkewAndReload();\n\t}\n\tclearError() {\n\t\tthis.setState(ROUTE_ERROR_BOUNDARY_INITIAL_STATE);\n\t}\n\trender() {\n\t\tif (this.state.hasError) {\n\t\t\tconst { error, errorInfo } = this.state;\n\t\t\treturn /* @__PURE__ */ jsx(RouteErrorView, {\n\t\t\t\trouteName: this.props.routeName,\n\t\t\t\terror,\n\t\t\t\terrorInfo,\n\t\t\t\tonRetry: this.clearError.bind(this)\n\t\t\t});\n\t\t}\n\t\treturn this.props.children;\n\t}\n};\n\nexport { Group, Screen, createGetIdForRoute, getQualifiedRouteComponent, useSortedScreens };"],"mappings":"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","ignoreList":[]}