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>