UNPKG

@tanstack/vue-router

Version:

Modern and scalable routing for Vue applications

29 lines 1.21 kB
import * as Vue from 'vue'; import { isServer } from '@tanstack/router-core/isServer'; import { useStore } from '@tanstack/vue-store'; import { useRouter } from './useRouter'; export function useRouterState(opts) { const contextRouter = useRouter({ warn: opts?.router === undefined, }); const router = opts?.router || contextRouter; // Return a safe default if router is undefined if (!router || !router.stores.__store) { return Vue.ref(undefined); } // During SSR we render exactly once and do not need reactivity. // Avoid subscribing to the store on the server since the server store // implementation does not provide subscribe() semantics. // The expression must stay inlined in the `if` so bundlers fold the // browser-build constant `isServer = false` and drop this server block. if (isServer ?? router.isServer) { const state = router.stores.__store.get(); return Vue.ref(opts?.select ? opts.select(state) : state); } return useStore(router.stores.__store, (state) => { if (opts?.select) return opts.select(state); return state; }); } //# sourceMappingURL=useRouterState.jsx.map