Display extra notifications on notifications column
This commit is contained in:
parent
a1641193b5
commit
0d6a9e8a64
@ -0,0 +1,9 @@
|
||||
import { mapGetters } from 'vuex'
|
||||
|
||||
const ExtraNotifications = {
|
||||
computed: {
|
||||
...mapGetters(['unreadChatCount', 'unreadAnnouncementCount'])
|
||||
}
|
||||
}
|
||||
|
||||
export default ExtraNotifications
|
42
src/components/extra_notifications/extra_notifications.vue
Normal file
42
src/components/extra_notifications/extra_notifications.vue
Normal file
@ -0,0 +1,42 @@
|
||||
<template>
|
||||
<div class="ExtraNotifications">
|
||||
<router-link
|
||||
v-if="unreadChatCount"
|
||||
class="button-unstyled -link extra-notification"
|
||||
to="chats"
|
||||
>
|
||||
{{ $tc('notifications.unread_chats', unreadChatCount, { num: unreadChatCount }) }}
|
||||
</router-link>
|
||||
<router-link
|
||||
v-if="unreadAnnouncementCount"
|
||||
class="button-unstyled -link extra-notification"
|
||||
to="announcements"
|
||||
>
|
||||
{{ $tc('notifications.unread_announcements', unreadAnnouncementCount, { num: unreadAnnouncementCount }) }}
|
||||
</router-link>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script src="./extra_notifications.js" />
|
||||
|
||||
<style lang="scss">
|
||||
@import "../../variables";
|
||||
|
||||
.ExtraNotifications {
|
||||
width: 100%;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: stretch;
|
||||
|
||||
.extra-notification {
|
||||
width: 100%;
|
||||
padding: 1em;
|
||||
}
|
||||
|
||||
.extra-notification {
|
||||
border-bottom: 1px solid;
|
||||
border-color: $fallback--border;
|
||||
border-color: var(--border, $fallback--border);
|
||||
}
|
||||
}
|
||||
</style>
|
@ -1,6 +1,7 @@
|
||||
import { computed } from 'vue'
|
||||
import { mapGetters } from 'vuex'
|
||||
import Notification from '../notification/notification.vue'
|
||||
import ExtraNotifications from '../extra_notifications/extra_notifications.vue'
|
||||
import NotificationFilters from './notification_filters.vue'
|
||||
import notificationsFetcher from '../../services/notifications_fetcher/notifications_fetcher.service.js'
|
||||
import {
|
||||
@ -23,7 +24,8 @@ const DEFAULT_SEEN_TO_DISPLAY_COUNT = 30
|
||||
const Notifications = {
|
||||
components: {
|
||||
Notification,
|
||||
NotificationFilters
|
||||
NotificationFilters,
|
||||
ExtraNotifications
|
||||
},
|
||||
props: {
|
||||
// Disables panel styles, unread mark, potentially other notification-related actions
|
||||
@ -94,6 +96,9 @@ const Notifications = {
|
||||
return this.filteredNotifications.slice(0, this.unseenCount + this.seenToDisplayCount)
|
||||
},
|
||||
noSticky () { return this.$store.getters.mergedConfig.disableStickyHeaders },
|
||||
showExtraNotifications () {
|
||||
return true
|
||||
},
|
||||
...mapGetters(['unreadChatCount', 'unreadAnnouncementCount'])
|
||||
},
|
||||
mounted () {
|
||||
|
@ -54,6 +54,13 @@
|
||||
class="panel-body"
|
||||
role="feed"
|
||||
>
|
||||
<div
|
||||
v-if="showExtraNotifications"
|
||||
role="listitem"
|
||||
class="notification"
|
||||
>
|
||||
<extra-notifications />
|
||||
</div>
|
||||
<div
|
||||
v-for="notification in notificationsToDisplay"
|
||||
:key="notification.id"
|
||||
|
@ -205,7 +205,9 @@
|
||||
"migrated_to": "migrated to",
|
||||
"reacted_with": "reacted with {0}",
|
||||
"submitted_report": "submitted a report",
|
||||
"poll_ended": "poll has ended"
|
||||
"poll_ended": "poll has ended",
|
||||
"unread_announcements": "{num} unread announcement | {num} unread announcements",
|
||||
"unread_chats": "{num} unread chat | {num} unread chats"
|
||||
},
|
||||
"polls": {
|
||||
"add_poll": "Add poll",
|
||||
|
Loading…
Reference in New Issue
Block a user