From 92e413660519c34b394c786660ff07904294ba11 Mon Sep 17 00:00:00 2001 From: Marshall Polaris Date: Sun, 24 Jul 2022 14:03:40 -0700 Subject: [PATCH] Make `setNotificationsAsSeen` return a promise --- web/pages/notifications.tsx | 20 ++++++++------------ 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/web/pages/notifications.tsx b/web/pages/notifications.tsx index 72754d32..fcb66fbc 100644 --- a/web/pages/notifications.tsx +++ b/web/pages/notifications.tsx @@ -726,18 +726,14 @@ function NotificationItem(props: { ) } -export const setNotificationsAsSeen = (notifications: Notification[]) => { - notifications.forEach((notification) => { - if (!notification.isSeen) - updateDoc( - doc(db, `users/${notification.userId}/notifications/`, notification.id), - { - isSeen: true, - viewTime: new Date(), - } - ) - }) - return notifications +export const setNotificationsAsSeen = async (notifications: Notification[]) => { + const unseenNotifications = notifications.filter((n) => !n.isSeen) + return await Promise.all( + unseenNotifications.map((n) => { + const notificationDoc = doc(db, `users/${n.userId}/notifications/`, n.id) + return updateDoc(notificationDoc, { isSeen: true, viewTime: new Date() }) + }) + ) } function QuestionOrGroupLink(props: {