gitlab-org--gitlab-foss/app/assets/javascripts/vue_shared/components/icon.vue

56 lines
938 B
Vue
Raw Normal View History

2017-10-05 17:16:37 -04:00
<script>
/* This is a re-usable vue component for rendering a svg sprite
icon
Sample configuration:
<icon
:img-src="userAvatarSrc"
:img-alt="tooltipText"
:tooltip-text="tooltipText"
tooltip-placement="top"
/>
*/
export default {
props: {
name: {
type: String,
required: true,
},
size: {
type: Number,
required: false,
default: 0,
},
cssClass: {
type: String,
required: false,
default: '',
},
},
computed: {
spriteHref() {
2017-10-10 04:19:20 -04:00
return `${gon.sprite_icons}#${this.name}`;
2017-10-05 17:16:37 -04:00
},
fullCssClass() {
let classString = '' || this.cssClass;
2017-10-10 04:19:20 -04:00
if (this.size) classString += `s${this.size}`;
2017-10-05 17:16:37 -04:00
return classString;
},
},
};
</script>
<template>
<svg
:class="fullCssClass">
2017-10-10 04:19:20 -04:00
<use
v-bind="{'xlink:href':spriteHref}"/>
2017-10-05 17:16:37 -04:00
</svg>
</template>