github.com/covergates/covergates@v0.2.2-0.20201009050117-42ef8a19fb95/web/src/components/CommitButton.vue (about) 1 <template> 2 <v-btn small v-clipboard:copy="report?report.commit:''" v-clipboard:success="onCopied"> 3 <v-icon left>{{buttonIcon}}</v-icon> 4 {{commit}} 5 </v-btn> 6 </template> 7 8 <script lang="ts"> 9 import { Component } from 'vue-property-decorator'; 10 import Vue from '@/vue'; 11 12 @Component({ 13 name: 'commit-button' 14 }) 15 export default class CommitButton extends Vue { 16 private copied = false; 17 18 get buttonIcon(): string { 19 return this.copied ? 'mdi-check' : 'mdi-clipboard-outline'; 20 } 21 22 get report(): Report | undefined { 23 return this.$store.state.report.current; 24 } 25 26 get commit(): string { 27 if (this.report) { 28 return this.report.commit.substring(0, 10); 29 } else { 30 return ''; 31 } 32 } 33 34 onCopied() { 35 this.copied = true; 36 setTimeout(() => { 37 this.copied = false; 38 }, 2000); 39 } 40 } 41 </script>