@@ -19,17 +19,66 @@ useSeoMeta({
1919 description: ' We are sorry but this page could not be found.'
2020})
2121
22- const { data : navigation } = await useAsyncData (' navigation' , () => queryCollectionNavigation (' posts' ), {
23- transform : data => data .find (item => item .path === ' /posts' )?.children || []
22+ // Query navigation for each collection
23+ const { data : postsNavigation } = useLazyAsyncData (' navigation-posts' , () => queryCollectionNavigation (' posts' ), {
24+ server: false
25+ })
26+ const { data : goodiesNavigation } = useLazyAsyncData (' navigation-goodies' , () => queryCollectionNavigation (' goodies' ), {
27+ server: false
2428})
25- const { data : files } = useLazyAsyncData (' search ' , () => queryCollectionSearchSections ( ' posts ' ), {
29+ const { data : contentNavigation } = useLazyAsyncData (' navigation-content ' , () => queryCollectionNavigation ( ' content ' ), {
2630 server: false
2731})
2832
33+ // Helper to add icon to navigation items
34+ const addIconToItems = (items : any [] | undefined , icon : string ) =>
35+ (items || []).map (item => ({ ... item , icon }))
36+
37+ // Combine navigation with proper section labels and icons on each item
38+ const navigation = computed (() => [
39+ { title: ' Blog' , icon: ' i-lucide-file-text' , path: ' /posts' , children: addIconToItems (postsNavigation .value ?.find (item => item .path === ' /posts' )?.children || postsNavigation .value , ' i-lucide-file-text' ) },
40+ { title: ' Goodies' , icon: ' i-lucide-gift' , path: ' /goodies' , children: addIconToItems (goodiesNavigation .value , ' i-lucide-gift' ) },
41+ { title: ' About' , icon: ' i-lucide-user' , path: ' /about' , children: addIconToItems (contentNavigation .value ?.filter (item => item .path === ' /about' ), ' i-lucide-user' ) }
42+ ])
43+
44+ // Query multiple collections for search (posts, goodies, and about page)
45+ const { data : postsFiles } = useLazyAsyncData (' search-posts' , () => queryCollectionSearchSections (' posts' ), {
46+ server: false
47+ })
48+ const { data : goodiesFiles } = useLazyAsyncData (' search-goodies' , () => queryCollectionSearchSections (' goodies' ), {
49+ server: false
50+ })
51+ const { data : contentFiles } = useLazyAsyncData (' search-content' , () => queryCollectionSearchSections (' content' ), {
52+ server: false
53+ })
54+
55+ // Combine all search files
56+ const files = computed (() => [
57+ ... (postsFiles .value || []),
58+ ... (goodiesFiles .value || []),
59+ ... (contentFiles .value || [])
60+ ])
61+
2962const links = [{
63+ label: ' Home' ,
64+ icon: ' i-lucide-home' ,
65+ to: ' /'
66+ }, {
3067 label: ' Blog' ,
31- icon: ' i-lucide-pencil ' ,
68+ icon: ' i-lucide-file-text ' ,
3269 to: ' /posts'
70+ }, {
71+ label: ' Speaking' ,
72+ icon: ' i-lucide-mic' ,
73+ to: ' /speaking'
74+ }, {
75+ label: ' Goodies' ,
76+ icon: ' i-lucide-gift' ,
77+ to: ' /goodies'
78+ }, {
79+ label: ' About' ,
80+ icon: ' i-lucide-user' ,
81+ to: ' /about'
3382}]
3483 </script >
3584
0 commit comments