Skip to content

Commit 502c101

Browse files
committed
refactor: changes in sidebar components.
- enable passing class to link and dropdown, - remove label prop and do not show icon by default
1 parent 79b6fc1 commit 502c101

File tree

4 files changed

+9
-30
lines changed

4 files changed

+9
-30
lines changed

src/components/Sidebar/CSidebarNav.vue

+1-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ export default {
1919
props: {
2020
navItems: {
2121
type: Array,
22-
required: true,
23-
default: () => []
22+
required: true
2423
}
2524
},
2625
components: {

src/components/Sidebar/CSidebarNavItem.vue

+3-2
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,11 @@
11
<template>
22
<CSidebarNavDropdown
3-
v-if="item.children"
3+
v-if="item && item.children"
44
:name="item.name"
55
:url="item.url"
66
:icon="item.icon"
77
:open="item.open"
8+
:class="item.class"
89
>
910
<CSidebarNavItem
1011
v-for="(dropdownItem, key) in item.children"
@@ -14,7 +15,7 @@
1415
</CSidebarNavDropdown>
1516
<li
1617
v-else
17-
:class="['c-nav-item', item.classes]"
18+
:class="['c-nav-item', item ? item.class : null]"
1819
>
1920
<slot>
2021
<CSidebarNavLink v-bind="item"/>

src/components/Sidebar/CSidebarNavItems.vue

-1
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818
:name="item.name"
1919
:url="item.url"
2020
:icon="item.icon"
21-
:label="item.label"
2221
:classes="item.class"
2322
/>
2423
</template>
+5-25
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<template>
2-
<CSidebarNavItem :classes="navItemClasses">
3-
<a class="nav-label" :href="url">
4-
<i :class="iconClasses"></i>
2+
<CSidebarNavItem :classes="['c-hidden-cn', this.classes]">
3+
<a class="c-nav-label" :href="url">
4+
<i v-if="icon" :class="icon"></i>
55
{{name}}
66
</a>
77
</CSidebarNavItem>
@@ -20,28 +20,8 @@ export default {
2020
type: String,
2121
default: '#'
2222
},
23-
icon: {
24-
type: String,
25-
default: 'fa fa-circle'
26-
},
27-
classes: String,
28-
label: {
29-
type: Object,
30-
required: true,
31-
default: () => {}
32-
}
33-
},
34-
computed: {
35-
navItemClasses () {
36-
return ['c-hidden-cn', this.classes]
37-
},
38-
iconClasses () {
39-
return [
40-
this.icon || 'fa fa-circle',
41-
this.label.class,
42-
{ [`c-text-${this.label.variant}`] : this.label.variant }
43-
]
44-
}
23+
icon: String,
24+
classes: String
4525
}
4626
}
4727
</script>

0 commit comments

Comments
 (0)