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

52 lines
812 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
name="retry"
:size="32"
css-classes="top"
2017-10-05 17:16:37 -04:00
/>
*/
export default {
props: {
name: {
type: String,
required: true,
},
size: {
type: Number,
required: false,
default: 0,
},
cssClasses: {
2017-10-05 17:16:37 -04:00
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
},
iconSizeClass() {
return this.size ? `s${this.size}` : '';
2017-10-05 17:16:37 -04:00
},
},
};
</script>
<template>
<svg
:class="[iconSizeClass, cssClasses]">
2017-10-10 04:19:20 -04:00
<use
v-bind="{'xlink:href':spriteHref}"/>
2017-10-05 17:16:37 -04:00
</svg>
</template>