aboutsummaryrefslogtreecommitdiff
path: root/src/components/status/status.js
blob: 8b2561cfc7236251c427a7c16f185dcf0e18e567 (plain)
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
import Attachment from '../attachment/attachment.vue'
import FavoriteButton from '../favorite_button/favorite_button.vue'
import RetweetButton from '../retweet_button/retweet_button.vue'
import PostStatusForm from '../post_status_form/post_status_form.vue'

const Status = {
  props: [ 'statusoid' ],
  data: () => ({
    replying: false
  }),
  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
      }
    },
    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 }
  },
  components: {
    Attachment,
    FavoriteButton,
    RetweetButton,
    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 })
      }
    }
  }
}

export default Status