UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

34 lines (33 loc) 1.32 kB
require("./_virtual/_rolldown/runtime.cjs"); const require_useRouter = require("./useRouter.cjs"); let _tanstack_router_core_isServer = require("@tanstack/router-core/isServer"); let _tanstack_solid_store = require("@tanstack/solid-store"); //#region src/useRouterState.tsx function deepEqual(a, b) { if (Object.is(a, b)) return true; if (typeof a !== "object" || a === null || typeof b !== "object" || b === null) return false; const keysA = Object.keys(a); const keysB = Object.keys(b); if (keysA.length !== keysB.length) return false; for (const key of keysA) { if (!Object.prototype.hasOwnProperty.call(b, key)) return false; if (!deepEqual(a[key], b[key])) return false; } return true; } function useRouterState(opts) { const contextRouter = require_useRouter.useRouter({ warn: opts?.router === void 0 }); const router = opts?.router || contextRouter; if (_tanstack_router_core_isServer.isServer ?? router.isServer) { const state = router.state; const selected = opts?.select ? opts.select(state) : state; return (() => selected); } return (0, _tanstack_solid_store.useStore)(router.__store, (state) => { if (opts?.select) return opts.select(state); return state; }, { equal: deepEqual }); } //#endregion exports.useRouterState = useRouterState; //# sourceMappingURL=useRouterState.cjs.map