UNPKG

@tanstack/vue-router

Version:

Modern and scalable routing for Vue applications

28 lines 1.09 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. const _isServer = isServer ?? router.isServer; if (_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