add a spin animation to favorite and boost actions

This commit is contained in:
xj9 2017-03-08 21:45:40 -07:00
parent ba4f7ef3ef
commit 459fdaf10f
4 changed files with 28 additions and 5 deletions

View file

@ -1,5 +1,10 @@
const FavoriteButton = {
props: ['status'],
data () {
return {
animated: false
}
},
methods: {
favorite () {
if (!this.status.favorited) {
@ -7,13 +12,18 @@ const FavoriteButton = {
} else {
this.$store.dispatch('unfavorite', {id: this.status.id})
}
this.animated = true
setTimeout(() => {
this.animated = false
}, 500)
}
},
computed: {
classes () {
return {
'icon-star-empty': !this.status.favorited,
'icon-star': this.status.favorited
'icon-star': this.status.favorited,
'animate-spin': this.animated
}
}
}

View file

@ -1,6 +1,6 @@
<template>
<div>
<i :class='classes' class='favorite-button fa' v-on:click.prevent='favorite()'></i>
<i :class='classes' class='favorite-button fa' @click.prevent='favorite()'/>
<span v-if='status.fave_num > 0'>{{status.fave_num}}</span>
</div>
</template>
@ -10,6 +10,7 @@
<style lang='scss'>
.favorite-button {
cursor: pointer;
animation-duration: 0.6s;
&:hover {
color: orange;
}
@ -17,4 +18,5 @@
.icon-star {
color: orange;
}
</style>

View file

@ -1,16 +1,26 @@
const RetweetButton = {
props: ['status'],
data () {
return {
animated: false
}
},
methods: {
retweet () {
if (!this.status.repeated) {
this.$store.dispatch('retweet', {id: this.status.id})
}
this.animated = true
setTimeout(() => {
this.animated = false
}, 500)
}
},
computed: {
classes () {
return {
'retweeted': this.status.repeated
'retweeted': this.status.repeated,
'animate-spin': this.animated
}
}
}

View file

@ -11,6 +11,7 @@
@import '../../_variables.scss';
.icon-retweet {
cursor: pointer;
animation-duration: 0.6s;
&:hover {
color: $green;
}