forked from AkkomaGang/akkoma-fe
add a spin animation to favorite and boost actions
This commit is contained in:
parent
ba4f7ef3ef
commit
459fdaf10f
4 changed files with 28 additions and 5 deletions
|
@ -1,5 +1,10 @@
|
|||
const FavoriteButton = {
|
||||
props: [ 'status' ],
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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>
|
||||
|
|
|
@ -1,16 +1,26 @@
|
|||
const RetweetButton = {
|
||||
props: [ 'status' ],
|
||||
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
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
@import '../../_variables.scss';
|
||||
.icon-retweet {
|
||||
cursor: pointer;
|
||||
animation-duration: 0.6s;
|
||||
&:hover {
|
||||
color: $green;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue