UNPKG

@tanstack/vue-router

Version:

Modern and scalable routing for Vue applications

53 lines (52 loc) 1.32 kB
import { provideRouter } from "./routerContext.js"; import { Matches } from "./Matches.js"; import * as Vue from "vue"; //#region src/RouterProvider.tsx var RouterContextProvider = Vue.defineComponent({ name: "RouterContextProvider", props: { router: { type: Object, required: true } }, setup(props, { attrs, slots }) { const router = props.router; const restAttrs = attrs; router.update({ ...router.options, ...restAttrs, context: { ...router.options.context, ...restAttrs.context || {} } }); provideRouter(router); return () => { const childContent = slots.default?.(); if (router.options.Wrap) { const WrapComponent = router.options.Wrap; return Vue.h(WrapComponent, null, () => childContent); } if (Array.isArray(childContent) && childContent.length === 1) return childContent[0]; return childContent; }; } }); var RouterProvider = Vue.defineComponent({ name: "RouterProvider", props: { router: { type: Object, required: true } }, setup(props, { attrs }) { const restAttrs = attrs; return () => { return Vue.h(RouterContextProvider, { router: props.router, ...restAttrs }, { default: () => Vue.h(Matches) }); }; } }); //#endregion export { RouterContextProvider, RouterProvider }; //# sourceMappingURL=RouterProvider.js.map