11<template >
22 <div >
33 <nav
4- v-if =" loggedIn && routerIsReady && loginRedirectCheckIsReady && defaultLayout"
4+ v-if =" loggedIn && routerIsReady && loginRedirectCheckIsReady && defaultLayout && headerOnlyLayout "
55 class =" fixed h-14 top-0 z-30 w-full border-b shadow-sm bg-lightNavbar shadow-headerShadow dark:bg-darkNavbar dark:border-darkSidebarDevider"
66 >
77 <div class =" af-header px-3 lg:px-5 lg:pl-3 flex items-center justify-between h-full w-full" >
7373 </nav >
7474
7575 <Sidebar
76- v-if =" loggedIn && routerIsReady && loginRedirectCheckIsReady && defaultLayout"
76+ v-if =" loggedIn && routerIsReady && loginRedirectCheckIsReady && defaultLayout && !headerOnlyLayout "
7777 :sideBarOpen =" sideBarOpen"
7878 :forceIconOnly =" route.meta?.sidebarAndHeader === 'preferIconOnly'"
7979 @hideSidebar =" hideSidebar"
@@ -183,6 +183,7 @@ initFrontedAPI()
183183createHead ()
184184const sideBarOpen = ref (false );
185185const defaultLayout = ref (true );
186+ const headerOnlyLayout = ref (false );
186187const route = useRoute ();
187188const router = useRouter ();
188189const publicConfigLoaded = ref (false );
@@ -201,10 +202,77 @@ const expandedWidth = computed(() => coreStore.config?.iconOnlySidebar?.expanded
201202const theme = ref (' light' );
202203
203204const userMenuComponents = computed (() => {
204- console .log (' 🪲🆕 userMenuComponents recomputed' , coreStore ?.config ?.globalInjections ?.userMenu );
205+ console .log (' 🪲🆕 userMenuComponents recomputed' , JSON . parse ( JSON . stringify ( coreStore ?.config ?.globalInjections ?.userMenu )) );
205206 return coreStore ?.config ?.globalInjections ?.userMenu || [];
206207})
207208
209+ watch (
210+ () => coreStore .config ?.globalInjections ?.userMenu ,
211+ (newVal , oldVal ) => {
212+ // Only log when it becomes undefined (you can relax this if needed)
213+ if (newVal === undefined ) {
214+ const err = new Error (' 🔍 userMenu changed to undefined' );
215+ console .groupCollapsed (
216+ ' %c[TRACE] userMenu changed to undefined' ,
217+ ' color: red; font-weight: bold;'
218+ );
219+ console .log (' old value:' , oldVal );
220+ console .log (' new value:' , newVal );
221+ console .log (' coreStore.config.globalInjections:' , coreStore .config ?.globalInjections );
222+ console .log (' Stack trace:' );
223+ console .log (err .stack );
224+ console .groupEnd ();
225+ } else {
226+ // Optional: log ALL changes for debugging
227+ console .groupCollapsed (
228+ ' %c[DEBUG] userMenu changed' ,
229+ ' color: orange; font-weight: bold;'
230+ );
231+ console .log (' old value:' , oldVal );
232+ console .log (' new value:' , newVal );
233+ console .log (' coreStore.config.globalInjections:' , coreStore .config ?.globalInjections );
234+ console .groupEnd ();
235+ }
236+ },
237+ {
238+ deep: false ,
239+ immediate: false ,
240+ }
241+ );
242+
243+ watch (() => coreStore .config ?.globalInjections , (v ) => {
244+ console .log (" 🔧 globalInjections replaced:" , v );
245+ }, { deep: false });
246+
247+ watch (
248+ () => coreStore .config ?.globalInjections ?.userMenu ,
249+ (newVal , oldVal ) => {
250+ if (newVal === undefined ) {
251+ const err = new Error (' 🔍 userMenu changed to undefined' );
252+ console .groupCollapsed (
253+ ' %c[TRACE] userMenu changed to undefined' ,
254+ ' color: red; font-weight: bold;'
255+ );
256+ console .log (' old value:' , oldVal );
257+ console .log (' new value:' , newVal );
258+ console .log (' coreStore.config.globalInjections:' , coreStore .config ?.globalInjections );
259+ console .log (' Stack trace:' );
260+ console .log (err .stack );
261+ console .groupEnd ();
262+ } else {
263+ console .groupCollapsed (
264+ ' %c[DEBUG] userMenu changed' ,
265+ ' color: orange; font-weight: bold;'
266+ );
267+ console .log (' old value:' , oldVal );
268+ console .log (' new value:' , newVal );
269+ console .log (' coreStore.config.globalInjections:' , coreStore .config ?.globalInjections );
270+ console .groupEnd ();
271+ }
272+ },
273+ { deep: false , immediate: false }
274+ );
275+
208276function hideSidebar(): void {
209277 sideBarOpen .value = false ;
210278}
@@ -246,6 +314,8 @@ function handleCustomLayout() {
246314 } else if (route .meta ?.sidebarAndHeader === ' preferIconOnly' ) {
247315 defaultLayout .value = true ;
248316 isSidebarIconOnly .value = true ;
317+ } else if (route .meta ?.sidebarAndHeader === ' headerOnly' ) {
318+ headerOnlyLayout .value = true ;
249319 } else {
250320 defaultLayout .value = true ;
251321 }
0 commit comments