@tanstack/solid-router
Version:
Modern and scalable routing for Solid applications
27 lines (26 loc) • 1.14 kB
JavaScript
const require_runtime = require("./_virtual/_rolldown/runtime.cjs");
const require_useRouter = require("./useRouter.cjs");
let _tanstack_router_core = require("@tanstack/router-core");
let solid_js = require("solid-js");
solid_js = require_runtime.__toESM(solid_js);
let _tanstack_router_core_isServer = require("@tanstack/router-core/isServer");
//#region src/useRouterState.tsx
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.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_js.createMemo((prev) => {
const res = select(router.stores.__store.state);
if (prev === void 0) return res;
return (0, _tanstack_router_core.replaceEqualDeep)(prev, res);
});
}
//#endregion
exports.useRouterState = useRouterState;
//# sourceMappingURL=useRouterState.cjs.map