From 48fc30b00f4052d15a45eb767bdaa024821888fe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Chopin?= Date: Tue, 28 Jun 2022 00:10:50 +0200 Subject: [PATCH] fix: support layout from defined vue page in DDM --- src/runtime/plugins/documentDriven.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/runtime/plugins/documentDriven.ts b/src/runtime/plugins/documentDriven.ts index 979140e51..0930e1ba6 100644 --- a/src/runtime/plugins/documentDriven.ts +++ b/src/runtime/plugins/documentDriven.ts @@ -14,10 +14,13 @@ export default defineNuxtPlugin((nuxt) => { /** * Finds a layout value from a cascade of objects. */ - const findLayout = (page: ParsedContent, navigation: NavItem[], globals: Record) => { + const findLayout = (to: RouteLocationNormalized, page: ParsedContent, navigation: NavItem[], globals: Record) => { // Page `layout` key has priority if (page && page?.layout) { return page.layout } + // Resolve key from .vue page meta + if (to.matched.length && to.matched[0].meta?.layout) { return to.matched[0].meta.layout } + // Resolve key from navigation if (navigation && page) { const { navKeyFromPath } = useContentHelpers() @@ -197,7 +200,7 @@ export default defineNuxtPlugin((nuxt) => { } // Find used layout - const layoutName = findLayout(_page, _navigation, _globals) + const layoutName = findLayout(to, _page, _navigation, _globals) // Prefetch layout component const layout = layouts[layoutName]