logo

pleroma-fe

My custom branche(s) on git.pleroma.social/pleroma/pleroma-fe git clone https://hacktivis.me/git/pleroma-fe.git
commit: 0d6a9e8a647be860b10506aecaafb4ff0f10150f
parent a1641193b5b7c72e919b9848b167bc4d4a40444b
Author: tusooa <tusooa@kazv.moe>
Date:   Sun, 13 Aug 2023 23:57:34 -0400

Display extra notifications on notifications column

Diffstat:

Asrc/components/extra_notifications/extra_notifications.js9+++++++++
Asrc/components/extra_notifications/extra_notifications.vue42++++++++++++++++++++++++++++++++++++++++++
Msrc/components/notifications/notifications.js7++++++-
Msrc/components/notifications/notifications.vue7+++++++
Msrc/i18n/en.json4+++-
5 files changed, 67 insertions(+), 2 deletions(-)

diff --git a/src/components/extra_notifications/extra_notifications.js b/src/components/extra_notifications/extra_notifications.js @@ -0,0 +1,9 @@ +import { mapGetters } from 'vuex' + +const ExtraNotifications = { + computed: { + ...mapGetters(['unreadChatCount', 'unreadAnnouncementCount']) + } +} + +export default ExtraNotifications diff --git a/src/components/extra_notifications/extra_notifications.vue b/src/components/extra_notifications/extra_notifications.vue @@ -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> diff --git a/src/components/notifications/notifications.js b/src/components/notifications/notifications.js @@ -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 () { diff --git a/src/components/notifications/notifications.vue b/src/components/notifications/notifications.vue @@ -55,6 +55,13 @@ role="feed" > <div + v-if="showExtraNotifications" + role="listitem" + class="notification" + > + <extra-notifications /> + </div> + <div v-for="notification in notificationsToDisplay" :key="notification.id" role="listitem" diff --git a/src/i18n/en.json b/src/i18n/en.json @@ -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",