UNPKG

one

Version:

One is a React framework for web, iOS, and Android apps.

1 lines • 6.35 kB
{"version":3,"file":"hooks.js","names":[],"sources":["esm/hooks.js"],"sourcesContent":["import React, { createContext, useContext } from \"react\";\nimport { isNative } from \"./constants\";\nimport { router } from \"./router/imperative-api\";\nimport { RouteParamsContext, useRouteNode } from \"./router/Route\";\nimport { mergeDynamicParams } from \"./router/params\";\nimport {\n getPathnameWithRecoveredDynamicSegment,\n normalizeRoutePathname\n} from \"./router/path\";\nimport { RouteInfoContext } from \"./router/RouteInfoContext\";\nimport { navigationRef, useStoreRootState, useStoreRouteInfo } from \"./router/router\";\nimport { getServerContext } from \"./vite/one-server-only\";\nfunction useRootNavigationState() {\n return useStoreRootState();\n}\nfunction useRouteInfo() {\n const routeInfoFromContext = useContext(RouteInfoContext);\n const routeInfoFromRootState = useStoreRouteInfo();\n const routeNode = useRouteNode();\n if (routeNode?.type === \"layout\") {\n return routeInfoFromRootState;\n }\n return routeInfoFromContext || routeInfoFromRootState;\n}\nfunction useNavigationContainerRef() {\n return navigationRef;\n}\nconst FrozeContext = createContext(false);\nfunction useRouter() {\n return router;\n}\nfunction useUnstableGlobalHref() {\n return useRouteInfo().unstable_globalHref;\n}\nfunction useSegments() {\n return useRouteInfo().segments;\n}\nfunction usePathname() {\n const routeInfoPathname = useRouteInfo().pathname;\n if (import.meta.env.SSR) {\n try {\n const ctx = getServerContext();\n if (ctx?.loaderProps?.path) {\n return normalizeRoutePathname(ctx.loaderProps.path);\n }\n } catch {\n }\n }\n return getPathnameWithRecoveredDynamicSegment(routeInfoPathname);\n}\nfunction useActiveParams() {\n return useRouteInfo().params;\n}\nconst useLocalSearchParams = useParams;\nconst useGlobalSearchParams = useActiveParams;\nfunction useParams() {\n const contextParams = React.useContext(RouteParamsContext) ?? {};\n const routeNode = useRouteNode();\n const routeInfoParams = useRouteInfo().params;\n const params = React.useMemo(\n () => isNative ? contextParams : mergeDynamicParams(contextParams, routeNode?.dynamic, routeInfoParams),\n [contextParams, routeInfoParams, routeNode]\n );\n return React.useMemo(() => {\n return Object.fromEntries(\n Object.entries(params).filter(([_, value]) => value !== void 0).map(([key, value]) => {\n if (Array.isArray(value)) {\n return [\n key,\n value.map((v) => {\n try {\n return decodeURIComponent(v);\n } catch {\n return v;\n }\n })\n ];\n }\n try {\n return [key, decodeURIComponent(value)];\n } catch {\n return [key, value];\n }\n })\n );\n }, [params]);\n}\nclass ReadOnlyURLSearchParams extends URLSearchParams {\n set(_name, _value) {\n throw new Error(\"useSearchParams returns a read-only URLSearchParams object\");\n }\n append(_name, _value) {\n throw new Error(\"useSearchParams returns a read-only URLSearchParams object\");\n }\n delete(_name, _value) {\n throw new Error(\"useSearchParams returns a read-only URLSearchParams object\");\n }\n}\nfunction useSearchParams({ global = false } = {}) {\n const globalRef = React.useRef(global);\n if (process.env.NODE_ENV !== \"production\") {\n if (global !== globalRef.current) {\n console.warn(\"useSearchParams: the 'global' option cannot change between renders\");\n }\n }\n const params = global ? useActiveParams() : useParams();\n return React.useMemo(() => {\n const entries = Object.entries(params).flatMap(([key, value]) => {\n if (value === void 0) return [];\n return Array.isArray(value) ? value.map((v) => [key, String(v)]) : [[key, String(value)]];\n });\n return new ReadOnlyURLSearchParams(entries);\n }, [params]);\n}\nexport {\n FrozeContext,\n useActiveParams,\n useGlobalSearchParams,\n useLocalSearchParams,\n useNavigationContainerRef,\n useParams,\n usePathname,\n useRootNavigationState,\n useRouteInfo,\n useRouter,\n useSearchParams,\n useSegments,\n useUnstableGlobalHref\n};\n//# sourceMappingURL=hooks.js.map\n"],"mappings":"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"}