refactor(AppSidebar): update navigation behavior

This commit is contained in:
Łukasz Holeczek
2021-10-28 23:58:37 +02:00
parent a8ad276d68
commit 261b0f5519
+16 -11
View File
@@ -1,17 +1,9 @@
import { defineComponent, h, resolveComponent } from 'vue' import { defineComponent, h, onMounted, ref, resolveComponent } from 'vue'
import { RouterLink, useRoute } from 'vue-router' import { RouterLink, useRoute } from 'vue-router'
import { CBadge, CSidebarNav, CNavItem, CNavGroup, CNavTitle } from '@coreui/vue' import { CBadge, CSidebarNav, CNavItem, CNavGroup, CNavTitle } from '@coreui/vue'
import nav from '@/_nav.js' import nav from '@/_nav.js'
const AppSidebarNav = defineComponent({
name: 'AppSidebarNav',
components: {
CNavItem,
CNavGroup,
CNavTitle,
},
setup() {
const normalizePath = (path) => const normalizePath = (path) =>
decodeURI(path) decodeURI(path)
.replace(/#.*$/, '') .replace(/#.*$/, '')
@@ -44,14 +36,27 @@ const AppSidebarNav = defineComponent({
return false return false
} }
const renderItem = (item) => { const AppSidebarNav = defineComponent({
name: 'AppSidebarNav',
components: {
CNavItem,
CNavGroup,
CNavTitle,
},
setup() {
const route = useRoute() const route = useRoute()
const firstRender = ref(true)
onMounted(() => {
firstRender.value = false
})
const renderItem = (item) => {
if (item.items) { if (item.items) {
return h( return h(
CNavGroup, CNavGroup,
{ {
active: item.items.some((child) => isActiveItem(route, child)), ...firstRender.value && { visible: item.items.some((child) => isActiveItem(route, child))}
}, },
{ {
togglerContent: () => [ togglerContent: () => [