Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | <template>
<transition name="fade">
<div class="alert shadow text-center" :class="alertTypeClass">
{{ alert.message }}
</div>
</transition>
</template>
<script>
import { mapActions } from 'vuex'
export default {
name: 'Alert',
props: {
alert: {
type: Object,
required: true
}
},
data() {
return {
timeout: null
}
},
computed: {
alertTypeClass() {
return `alert-${this.alert.type}`
}
},
mounted() {
this.timeout = setTimeout(() => this.removeAlert(this.alert), 3000)
},
methods: mapActions('alert', ['removeAlert'])
}
</script>
<style scoped>
.alert {
width: 250px;
right: 0;
}
.fade-enter-active,
.fade-leave-active {
transition: opacity 1.9s;
}
.fade-enter,
.fade-leave-to {
opacity: 0;
}
</style>
|