akkoma-fe/src/components/status/status.js

47 lines
1.3 KiB
JavaScript
Raw Normal View History

2016-10-28 16:08:03 +00:00
import Attachment from '../attachment/attachment.vue'
2016-10-30 15:12:35 +00:00
import FavoriteButton from '../favorite_button/favorite_button.vue'
import RetweetButton from '../retweet_button/retweet_button.vue'
2016-11-03 15:59:27 +00:00
import PostStatusForm from '../post_status_form/post_status_form.vue'
2016-10-28 16:08:03 +00:00
2016-10-28 13:19:42 +00:00
const Status = {
2016-10-28 16:08:03 +00:00
props: [ 'statusoid' ],
2016-11-03 15:59:27 +00:00
data: () => ({
replying: false
}),
2016-10-28 16:08:03 +00:00
computed: {
retweet () { return !!this.statusoid.retweeted_status },
retweeter () { return this.statusoid.user.name },
status () {
if (this.retweet) {
return this.statusoid.retweeted_status
} else {
return this.statusoid
}
2016-11-06 19:45:26 +00:00
},
loggedIn () {
return !!this.$store.state.users.currentUser
},
deleted () { return this.statusoid.deleted },
canDelete () { return this.statusoid.user.rights.delete_others_notice || this.statusoid.user.id == this.$store.state.users.currentUser.id }
2016-10-28 16:08:03 +00:00
},
components: {
2016-10-30 15:12:35 +00:00
Attachment,
2016-11-03 15:59:27 +00:00
FavoriteButton,
RetweetButton,
2016-11-03 15:59:27 +00:00
PostStatusForm
},
methods: {
toggleReplying () {
this.replying = !this.replying
},
deleteStatus () {
const confirmed = confirm('Do you really want to delete this status?')
if (confirmed) {
this.$store.dispatch('deleteStatus', { id: this.status.id })
}
2016-11-03 15:59:27 +00:00
}
2016-10-28 16:08:03 +00:00
}
2016-10-28 13:19:42 +00:00
}
export default Status