UNPKG

@tanstack/vue-router

Version:

Modern and scalable routing for Vue applications

48 lines 1.42 kB
import * as Vue from 'vue'; import { hydrate } from '@tanstack/router-core/ssr/client'; import { HeadContent } from '../HeadContent'; import { RouterProvider } from '../RouterProvider'; let hydrationPromise; export const RouterClient = Vue.defineComponent({ name: 'RouterClient', props: { router: { type: Object, required: true, }, }, setup(props) { const isHydrated = Vue.ref(false); if (!hydrationPromise) { if (!props.router.stores.matchesId.get().length) { hydrationPromise = hydrate(props.router); } else { hydrationPromise = Promise.resolve(); } } Vue.onMounted(() => { hydrationPromise.then(() => { isHydrated.value = true; }); }); // For SSR, we're already hydrated if (typeof window === 'undefined') { isHydrated.value = true; } return () => { if (!isHydrated.value) { return null; } return Vue.h(RouterProvider, { router: props.router, }, { innerWrap: (innerProps) => [ Vue.h(HeadContent), innerProps.children, ], }); }; }, }); //# sourceMappingURL=RouterClient.jsx.map