From 5fb794864b20c59729686aa7e19f0e5659c6534f Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 22 Aug 2022 22:36:38 +0800 Subject: [PATCH] fix: avoid circular deps when extending default theme + importing feature components fix #1210 --- src/client/app/index.ts | 3 +++ src/client/theme-default/components/VPContent.vue | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/client/app/index.ts b/src/client/app/index.ts index 59112249..c7d0e2e3 100644 --- a/src/client/app/index.ts +++ b/src/client/app/index.ts @@ -55,6 +55,9 @@ export function createApp() { const data = initData(router.route) app.provide(dataSymbol, data) + // provide this to avoid circular dependency in VPContent + app.provide('NotFound', NotFound) + // install global components app.component('Content', Content) app.component('ClientOnly', ClientOnly) diff --git a/src/client/theme-default/components/VPContent.vue b/src/client/theme-default/components/VPContent.vue index a5af7d3b..35a27b77 100644 --- a/src/client/theme-default/components/VPContent.vue +++ b/src/client/theme-default/components/VPContent.vue @@ -2,16 +2,16 @@ import { useRoute, useData } from 'vitepress' import { useCopyCode } from '../composables/copy-code.js' import { useSidebar } from '../composables/sidebar.js' -import Theme from '@theme/index' import VPPage from './VPPage.vue' import VPHome from './VPHome.vue' import VPDoc from './VPDoc.vue' +import { inject } from 'vue' const route = useRoute() const { frontmatter } = useData() const { hasSidebar } = useSidebar() -const NotFound = Theme.NotFound || (() => '404 Not Found') +const NotFound = inject('NotFound') useCopyCode()