aboutsummaryrefslogtreecommitdiff
path: root/src/components/extra_notifications/extra_notifications.js
blob: 1bb0f83741876a0c1e2c52517d1a8a285746315c (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
47
48
import { mapGetters } from 'vuex'

import { library } from '@fortawesome/fontawesome-svg-core'
import {
  faUserPlus,
  faComments,
  faBullhorn
} from '@fortawesome/free-solid-svg-icons'

library.add(
  faUserPlus,
  faComments,
  faBullhorn
)

const ExtraNotifications = {
  computed: {
    shouldShowChats () {
      return this.mergedConfig.showExtraNotifications && this.mergedConfig.showChatsInExtraNotifications && this.unreadChatCount
    },
    shouldShowAnnouncements () {
      return this.mergedConfig.showExtraNotifications && this.mergedConfig.showAnnouncementsInExtraNotifications && this.unreadAnnouncementCount
    },
    shouldShowFollowRequests () {
      return this.mergedConfig.showExtraNotifications && this.mergedConfig.showFollowRequestsInExtraNotifications && this.followRequestCount
    },
    hasAnythingToShow () {
      return this.shouldShowChats || this.shouldShowAnnouncements || this.shouldShowFollowRequests
    },
    shouldShowCustomizationTip () {
      return this.mergedConfig.showExtraNotificationsTip && this.hasAnythingToShow
    },
    currentUser () {
      return this.$store.state.users.currentUser
    },
    ...mapGetters(['unreadChatCount', 'unreadAnnouncementCount', 'followRequestCount', 'mergedConfig'])
  },
  methods: {
    openNotificationSettings () {
      return this.$store.dispatch('openSettingsModalTab', 'notifications')
    },
    dismissConfigurationTip () {
      return this.$store.dispatch('setOption', { name: 'showExtraNotificationsTip', value: false })
    }
  }
}

export default ExtraNotifications