Skip to content

Commit 7909680

Browse files
committed
refactor: add CIcon component to sidebar components, update snapshots
1 parent 25eebdb commit 7909680

File tree

5 files changed

+49
-31
lines changed

5 files changed

+49
-31
lines changed

src/components/Sidebar/CSidebarNavDropdown.vue

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<template>
22
<li :class="dropdownClasses">
33
<a class="c-sidebar-nav-link c-sidebar-nav-dropdown-toggle" @click="handleClick">
4-
<i v-if="icon" :class="classIcon"></i>
4+
<CIcon v-if="icon" v-bind="computedIcon"/>
55
{{name}}
66
</a>
77
<ul class="c-sidebar-nav-dropdown-items" @click="itemClicked">
@@ -11,15 +11,20 @@
1111
</template>
1212

1313
<script>
14+
// import CIcon from '@coreui/icons/vue'
15+
1416
export default {
1517
name:'CSidebarNavDropdown',
18+
// components: {
19+
// CIcon
20+
// },
1621
props: {
1722
name: String,
1823
route: {
1924
type: String,
2025
validator: val => val.length > 0
2126
},
22-
icon: String,
27+
icon: [String, Object],
2328
show: Boolean
2429
},
2530
data () {
@@ -62,6 +67,16 @@ export default {
6267
'c-sidebar-nav-item c-sidebar-nav-dropdown',
6368
{ 'c-show': this.open }
6469
]
70+
},
71+
computedIcon () {
72+
if (typeof this.icon === 'object') {
73+
return Object.assign(
74+
{ customClasses: 'c-sidebar-nav-icon' },
75+
this.icon
76+
)
77+
} else {
78+
return { customClasses: [this.icon, 'c-sidebar-nav-icon']}
79+
}
6580
}
6681
},
6782
methods: {

src/components/Sidebar/CSidebarNavLink.vue

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
@click.native="click"
77
>
88
<slot>
9-
<i :class="['c-sidebar-nav-icon', icon]"></i>
9+
<CIcon v-if="icon" v-bind="computedIcon"/>
1010
{{name}}
1111
<CBadge
1212
v-if="badge"
@@ -22,10 +22,11 @@
2222
<script>
2323
import CLink, { props as linkProps } from '../Link/CLink'
2424
import CBadge from '../Badge/CBadge'
25+
// import CIcon from '@coreui/icons/vue'
2526
2627
const props = Object.assign(linkProps, {
2728
name: String,
28-
icon: [String, Array, Object],
29+
icon: [String, Object],
2930
badge: Object,
3031
addLinkClasses: [String, Array, Object],
3132
label: Boolean
@@ -35,7 +36,8 @@ export default {
3536
name: 'CSidebarNavLink',
3637
components: {
3738
CLink,
38-
CBadge
39+
CBadge,
40+
// CIcon
3941
},
4042
props,
4143
computed: {
@@ -56,6 +58,16 @@ export default {
5658
this.label ? 'c-sidebar-nav-label' : 'c-sidebar-nav-link',
5759
this.addLinkClasses
5860
]
61+
},
62+
computedIcon () {
63+
if (typeof this.icon === 'object') {
64+
return Object.assign(
65+
{ customClasses: 'c-sidebar-nav-icon' },
66+
this.icon
67+
)
68+
} else {
69+
return { customClasses: [this.icon, 'c-sidebar-nav-icon']}
70+
}
5971
}
6072
},
6173
methods: {

src/components/Sidebar/tests/__snapshots__/CSidebarNavDropdown.spec.js.snap

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ exports[`CSidebarNavDropdown renders correctly 1`] = `
77
<a
88
class="c-sidebar-nav-link c-sidebar-nav-dropdown-toggle"
99
>
10-
<i
11-
class="c-sidebar-nav-icon cui-settings"
10+
<cicon
11+
customclasses="cui-settings,c-sidebar-nav-icon"
1212
/>
1313
1414

src/components/Sidebar/tests/__snapshots__/CSidebarNavLink.spec.js.snap

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,10 @@ exports[`CSidebarNavLink.vue renders correctly 1`] = `
1010
href="#"
1111
target="_self"
1212
>
13-
<i
14-
class="c-sidebar-nav-icon cui-settings"
13+
<cicon
14+
customclasses="cui-settings,c-sidebar-nav-icon"
1515
/>
16-
16+
1717
test link
1818
1919
<span
@@ -37,10 +37,10 @@ exports[`CSidebarNavLink.vue renders correctly in label mode 1`] = `
3737
href="#"
3838
target="_self"
3939
>
40-
<i
41-
class="c-sidebar-nav-icon cui-settings"
40+
<cicon
41+
customclasses="cui-settings,c-sidebar-nav-icon"
4242
/>
43-
43+
4444
test link
4545
4646
<span

src/components/Table/tests/__snapshots__/CTable.spec.js.snap

Lines changed: 9 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -34,8 +34,7 @@ exports[`CTable renders correctly 1`] = `
3434
No items
3535
3636
<svg
37-
class="text-danger mb-2 c-icon"
38-
style="fill: currentColor;"
37+
class="text-danger mb-2 c-icon c-icon-custom-size"
3938
viewBox="0 0 24 24"
4039
width="30"
4140
xmlns="http://www.w3.org/2000/svg"
@@ -175,8 +174,7 @@ exports[`CTable renders correctly 2`] = `
175174
</div>
176175
177176
<svg
178-
class="c-icon icon-transition position-absolute arrow-position rotate-icon"
179-
style="fill: currentColor;"
177+
class="c-icon c-icon-custom-size icon-transition position-absolute arrow-position rotate-icon"
180178
viewBox="0 0 24 24"
181179
width="18"
182180
xmlns="http://www.w3.org/2000/svg"
@@ -208,8 +206,7 @@ exports[`CTable renders correctly 2`] = `
208206
</div>
209207
210208
<svg
211-
class="c-icon icon-transition position-absolute arrow-position transparent"
212-
style="fill: currentColor;"
209+
class="c-icon c-icon-custom-size icon-transition position-absolute arrow-position transparent"
213210
viewBox="0 0 24 24"
214211
width="18"
215212
xmlns="http://www.w3.org/2000/svg"
@@ -241,8 +238,7 @@ exports[`CTable renders correctly 2`] = `
241238
</div>
242239
243240
<svg
244-
class="c-icon icon-transition position-absolute arrow-position transparent"
245-
style="fill: currentColor;"
241+
class="c-icon c-icon-custom-size icon-transition position-absolute arrow-position transparent"
246242
viewBox="0 0 24 24"
247243
width="18"
248244
xmlns="http://www.w3.org/2000/svg"
@@ -274,8 +270,7 @@ exports[`CTable renders correctly 2`] = `
274270
</div>
275271
276272
<svg
277-
class="c-icon icon-transition position-absolute arrow-position transparent"
278-
style="fill: currentColor;"
273+
class="c-icon c-icon-custom-size icon-transition position-absolute arrow-position transparent"
279274
viewBox="0 0 24 24"
280275
width="18"
281276
xmlns="http://www.w3.org/2000/svg"
@@ -602,8 +597,7 @@ exports[`CTable renders correctly 2`] = `
602597
</div>
603598
604599
<svg
605-
class="c-icon icon-transition position-absolute arrow-position rotate-icon"
606-
style="fill: currentColor;"
600+
class="c-icon c-icon-custom-size icon-transition position-absolute arrow-position rotate-icon"
607601
viewBox="0 0 24 24"
608602
width="18"
609603
xmlns="http://www.w3.org/2000/svg"
@@ -635,8 +629,7 @@ exports[`CTable renders correctly 2`] = `
635629
</div>
636630
637631
<svg
638-
class="c-icon icon-transition position-absolute arrow-position transparent"
639-
style="fill: currentColor;"
632+
class="c-icon c-icon-custom-size icon-transition position-absolute arrow-position transparent"
640633
viewBox="0 0 24 24"
641634
width="18"
642635
xmlns="http://www.w3.org/2000/svg"
@@ -668,8 +661,7 @@ exports[`CTable renders correctly 2`] = `
668661
</div>
669662
670663
<svg
671-
class="c-icon icon-transition position-absolute arrow-position transparent"
672-
style="fill: currentColor;"
664+
class="c-icon c-icon-custom-size icon-transition position-absolute arrow-position transparent"
673665
viewBox="0 0 24 24"
674666
width="18"
675667
xmlns="http://www.w3.org/2000/svg"
@@ -701,8 +693,7 @@ exports[`CTable renders correctly 2`] = `
701693
</div>
702694
703695
<svg
704-
class="c-icon icon-transition position-absolute arrow-position transparent"
705-
style="fill: currentColor;"
696+
class="c-icon c-icon-custom-size icon-transition position-absolute arrow-position transparent"
706697
viewBox="0 0 24 24"
707698
width="18"
708699
xmlns="http://www.w3.org/2000/svg"

0 commit comments

Comments
 (0)