From bda6098db35d4afe5ed9f56223069094d7c672a1 Mon Sep 17 00:00:00 2001 From: Benjamin Canac Date: Fri, 29 Nov 2024 17:28:19 +0100 Subject: [PATCH] docs(app): improve navigation --- docs/app/app.vue | 29 ++---------------- docs/app/composables/useContentNavigation.ts | 31 ++++++++++++++++++++ docs/app/error.vue | 31 +++----------------- 3 files changed, 38 insertions(+), 53 deletions(-) create mode 100644 docs/app/composables/useContentNavigation.ts diff --git a/docs/app/app.vue b/docs/app/app.vue index 11eb2264..1f3e2a46 100644 --- a/docs/app/app.vue +++ b/docs/app/app.vue @@ -73,33 +73,10 @@ useServerSeoMeta({ twitterCard: 'summary_large_image' }) -const { framework, frameworks } = useSharedData() +const { frameworks } = useSharedData() +const { mappedNavigation, filteredNavigation } = useContentNavigation(navigation) -function filterFrameworkItems(items: any[]) { - return items?.filter(item => !item.framework || item.framework === framework.value) -} - -function processNavigationItem(item: any): any { - if (item.shadow) { - const matchingChild = filterFrameworkItems(item.children)?.[0] - return matchingChild - ? { - ...matchingChild, - title: item.title, - children: matchingChild.children ? processNavigationItem(matchingChild) : undefined - } - : item - } - - return { - ...item, - children: item.children?.length ? filterFrameworkItems(item.children)?.map(processNavigationItem) : undefined - } -} - -const filteredNavigation = computed(() => navigation.value?.map(processNavigationItem)) - -provide('navigation', filteredNavigation) +provide('navigation', mappedNavigation)