@tanstack/vue-router
Version:
Modern and scalable routing for Vue applications
32 lines (31 loc) • 1.03 kB
JavaScript
import { RouterProvider } from "../RouterProvider.js";
import { HeadContent } from "../HeadContent.js";
import * as Vue from "vue";
import { hydrate } from "@tanstack/router-core/ssr/client";
//#region src/ssr/RouterClient.tsx
var hydrationPromise;
var 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;
});
});
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] });
};
}
});
//#endregion
export { RouterClient };
//# sourceMappingURL=RouterClient.js.map