refactor: update links in the sidebar

This commit is contained in:
mrholek
2024-11-16 00:42:28 +01:00
parent 86f76592d9
commit f383307ce1
2 changed files with 140 additions and 1 deletions
+42 -1
View File
@@ -1,6 +1,7 @@
import { defineComponent, h, onMounted, ref, resolveComponent } from 'vue'
import { RouterLink, useRoute } from 'vue-router'
import { cilExternalLink } from '@coreui/icons'
import { CBadge, CSidebarNav, CNavItem, CNavGroup, CNavTitle } from '@coreui/vue'
import nav from '@/_nav.js'
@@ -78,6 +79,45 @@ const AppSidebarNav = defineComponent({
)
}
if (item.href) {
return h(
resolveComponent(item.component),
{
href: item.href,
target: '_blank',
rel: 'noopener noreferrer',
},
{
default: () => [
item.icon
? h(resolveComponent('CIcon'), {
customClassName: 'nav-icon',
name: item.icon,
})
: h('span', { class: 'nav-icon' }, h('span', { class: 'nav-icon-bullet' })),
item.name,
item.external && h(resolveComponent('CIcon'), {
class: 'ms-2',
name: cilExternalLink,
size: 'sm'
}),
item.badge &&
h(
CBadge,
{
class: 'ms-auto',
color: item.badge.color,
size: 'sm',
},
{
default: () => item.badge.text,
},
),
],
},
)
}
return item.to
? h(
RouterLink,
@@ -110,6 +150,7 @@ const AppSidebarNav = defineComponent({
{
class: 'ms-auto',
color: item.badge.color,
size: 'sm',
},
{
default: () => item.badge.text,
@@ -144,4 +185,4 @@ const AppSidebarNav = defineComponent({
},
})
export { AppSidebarNav }
export { AppSidebarNav }