@tanstack/vue-router
Version:
Modern and scalable routing for Vue applications
28 lines • 1.09 kB
JSX
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