UNPKG

@tanstack/solid-router

Version:

Modern and scalable routing for Solid applications

25 lines (24 loc) 894 B
import { useRouter } from "./useRouter.js"; import { replaceEqualDeep } from "@tanstack/router-core"; import * as Solid from "solid-js"; import { isServer } from "@tanstack/router-core/isServer"; //#region src/useRouterState.tsx function useRouterState(opts) { const contextRouter = useRouter({ warn: opts?.router === void 0 }); const router = opts?.router || contextRouter; if (isServer ?? router.isServer) { const state = router.stores.__store.state; const selected = opts?.select ? opts.select(state) : state; return (() => selected); } if (!opts?.select) return (() => router.stores.__store.state); const select = opts.select; return Solid.createMemo((prev) => { const res = select(router.stores.__store.state); if (prev === void 0) return res; return replaceEqualDeep(prev, res); }); } //#endregion export { useRouterState }; //# sourceMappingURL=useRouterState.js.map