From 8d101ec66f739832242b0bf2077416ceea0415f2 Mon Sep 17 00:00:00 2001 From: Divyansh Singh <40380293+brc-dd@users.noreply.github.com> Date: Sun, 26 Jun 2022 17:12:37 +0530 Subject: [PATCH] feat: allow specifying a setup function in Theme --- src/client/app/index.ts | 7 +++++-- src/client/app/theme.ts | 1 + 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/client/app/index.ts b/src/client/app/index.ts index 7fcfc53a..bfd2a0da 100644 --- a/src/client/app/index.ts +++ b/src/client/app/index.ts @@ -2,6 +2,7 @@ import { App, createApp as createClientApp, createSSRApp, + defineComponent, h, onMounted, watch @@ -18,7 +19,7 @@ import { ClientOnly } from './components/ClientOnly' const NotFound = Theme.NotFound || (() => '404 Not Found') -const VitePressApp = { +const VitePressApp = defineComponent({ name: 'VitePressApp', setup() { const { site } = useData() @@ -38,9 +39,11 @@ const VitePressApp = { // in prod mode, enable intersectionObserver based pre-fetch usePrefetch() } + + if (Theme.setup) Theme.setup() return () => h(Theme.Layout) } -} +}) export function createApp() { const router = newRouter() diff --git a/src/client/app/theme.ts b/src/client/app/theme.ts index bb25f0ab..b6beb329 100644 --- a/src/client/app/theme.ts +++ b/src/client/app/theme.ts @@ -12,4 +12,5 @@ export interface Theme { Layout: Component NotFound?: Component enhanceApp?: (ctx: EnhanceAppContext) => void + setup?: () => void }