Skip to content

Commit f383307

Browse files
committed
refactor: update links in the sidebar
1 parent 86f7659 commit f383307

File tree

2 files changed

+140
-1
lines changed

2 files changed

+140
-1
lines changed

src/_nav.js

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,16 @@ export default [
5050
name: 'Cards',
5151
to: '/base/cards',
5252
},
53+
{
54+
component: 'CNavItem',
55+
name: 'Calendar',
56+
href: 'https://coreui.io/vue/docs/components/calendar.html',
57+
external: true,
58+
badge: {
59+
color: 'danger',
60+
text: 'PRO',
61+
},
62+
},
5363
{
5464
component: 'CNavItem',
5565
name: 'Carousels',
@@ -90,6 +100,25 @@ export default [
90100
name: 'Progress',
91101
to: '/base/progress',
92102
},
103+
{
104+
component: 'CNavItem',
105+
name: 'Smart Pagination',
106+
href: 'https://coreui.io/vue/docs/components/smart-pagination.html',
107+
badge: {
108+
color: 'danger',
109+
text: 'PRO',
110+
},
111+
},
112+
{
113+
component: 'CNavItem',
114+
name: 'Smart Table',
115+
external: true,
116+
href: 'https://coreui.io/vue/docs/components/smart-table.html',
117+
badge: {
118+
color: 'danger',
119+
text: 'PRO',
120+
},
121+
},
93122
{
94123
component: 'CNavItem',
95124
name: 'Spinners',
@@ -110,6 +139,16 @@ export default [
110139
name: 'Tooltips',
111140
to: '/base/tooltips',
112141
},
142+
{
143+
component: 'CNavItem',
144+
name: 'Virtual Scroller',
145+
href: 'https://coreui.io/vue/docs/components/virtual-scroller.html',
146+
external: true,
147+
badge: {
148+
color: 'danger',
149+
text: 'PRO',
150+
},
151+
}
113152
],
114153
},
115154
{
@@ -128,6 +167,16 @@ export default [
128167
name: 'Button Groups',
129168
to: '/buttons/button-groups',
130169
},
170+
{
171+
component: 'CNavItem',
172+
name: 'Loading Button',
173+
href: 'https://coreui.io/vue/docs/components/loading-button.html',
174+
external: true,
175+
badge: {
176+
color: 'danger',
177+
text: 'PRO',
178+
},
179+
},
131180
{
132181
component: 'CNavItem',
133182
name: 'Dropdowns',
@@ -161,6 +210,16 @@ export default [
161210
name: 'Range',
162211
to: '/forms/range',
163212
},
213+
{
214+
component: 'CNavItem',
215+
name: 'Range Slider',
216+
href: 'https://coreui.io/vue/docs/forms/range-slider.html',
217+
external: true,
218+
badge: {
219+
color: 'danger',
220+
text: 'PRO',
221+
},
222+
},
164223
{
165224
component: 'CNavItem',
166225
name: 'Input Group',
@@ -171,6 +230,45 @@ export default [
171230
name: 'Floating Labels',
172231
to: '/forms/floating-labels',
173232
},
233+
{
234+
component: 'CNavItem',
235+
name: 'Date Picker',
236+
href: 'https://coreui.io/vue/docs/forms/date-picker.html',
237+
external: true,
238+
badge: {
239+
color: 'danger',
240+
text: 'PRO',
241+
},
242+
},
243+
{
244+
component: 'CNavItem',
245+
name: 'Date Range Picker',
246+
href: 'https://coreui.io/vue/docs/forms/date-range-picker.html',
247+
badge: {
248+
color: 'danger',
249+
text: 'PRO',
250+
},
251+
},
252+
{
253+
component: 'CNavItem',
254+
name: 'Rating',
255+
href: 'https://coreui.io/vue/docs/forms/rating.html',
256+
external: true,
257+
badge: {
258+
color: 'danger',
259+
text: 'PRO',
260+
},
261+
},
262+
{
263+
component: 'CNavItem',
264+
name: 'Time Picker',
265+
href: 'https://coreui.io/vue/docs/forms/time-picker.html',
266+
external: true,
267+
badge: {
268+
color: 'danger',
269+
text: 'PRO',
270+
},
271+
},
174272
{
175273
component: 'CNavItem',
176274
name: 'Layout',

src/components/AppSidebarNav.js

Lines changed: 42 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import { defineComponent, h, onMounted, ref, resolveComponent } from 'vue'
22
import { RouterLink, useRoute } from 'vue-router'
33

4+
import { cilExternalLink } from '@coreui/icons'
45
import { CBadge, CSidebarNav, CNavItem, CNavGroup, CNavTitle } from '@coreui/vue'
56
import nav from '@/_nav.js'
67

@@ -78,6 +79,45 @@ const AppSidebarNav = defineComponent({
7879
)
7980
}
8081

82+
if (item.href) {
83+
return h(
84+
resolveComponent(item.component),
85+
{
86+
href: item.href,
87+
target: '_blank',
88+
rel: 'noopener noreferrer',
89+
},
90+
{
91+
default: () => [
92+
item.icon
93+
? h(resolveComponent('CIcon'), {
94+
customClassName: 'nav-icon',
95+
name: item.icon,
96+
})
97+
: h('span', { class: 'nav-icon' }, h('span', { class: 'nav-icon-bullet' })),
98+
item.name,
99+
item.external && h(resolveComponent('CIcon'), {
100+
class: 'ms-2',
101+
name: cilExternalLink,
102+
size: 'sm'
103+
}),
104+
item.badge &&
105+
h(
106+
CBadge,
107+
{
108+
class: 'ms-auto',
109+
color: item.badge.color,
110+
size: 'sm',
111+
},
112+
{
113+
default: () => item.badge.text,
114+
},
115+
),
116+
],
117+
},
118+
)
119+
}
120+
81121
return item.to
82122
? h(
83123
RouterLink,
@@ -110,6 +150,7 @@ const AppSidebarNav = defineComponent({
110150
{
111151
class: 'ms-auto',
112152
color: item.badge.color,
153+
size: 'sm',
113154
},
114155
{
115156
default: () => item.badge.text,
@@ -144,4 +185,4 @@ const AppSidebarNav = defineComponent({
144185
},
145186
})
146187

147-
export { AppSidebarNav }
188+
export { AppSidebarNav }

0 commit comments

Comments
 (0)