From 9cf468ab2e189944063078e7dc5fb83ca978124e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gabriel=20L=C3=B3pez?= Date: Mon, 31 Mar 2025 15:39:32 -0600 Subject: [PATCH] Adding validation of messageIsValidForDisplay for unread messages count --- src/Nav/MessageMenu.js | 11 +++++++---- src/ducks/messaging.js | 4 ++-- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/Nav/MessageMenu.js b/src/Nav/MessageMenu.js index a72e042d6..60002c023 100644 --- a/src/Nav/MessageMenu.js +++ b/src/Nav/MessageMenu.js @@ -10,7 +10,8 @@ import { fetchAllMessages, fetchMessagesSuccess, fetchUnreadMessagesCount, - updateMessageFromRealtime, updateUnreadMessagesCount + updateMessageFromRealtime, + updateUnreadMessagesCount } from '../ducks/messaging'; import MessageContext from '../InReach/context'; @@ -45,7 +46,7 @@ const MessageMenu = () => { const checkForUnreadMessages = useCallback(() => { fetchUnreadMessagesCount() - .then(({ data: { data: { count } } }) => dispatch(updateUnreadMessagesCount(count))) + .then(({ data: { data: { results } } }) => dispatch(updateUnreadMessagesCount({ results }) )) .catch((error) => console.warn('error checking for unread messages', { error })); }, [dispatch]); @@ -58,8 +59,10 @@ const MessageMenu = () => { }, [dispatch]); useEffect(() => { - checkForUnreadMessages(); - }, [checkForUnreadMessages, state.results]); + if (subjects.length > 0){ + checkForUnreadMessages(); + } + }, [checkForUnreadMessages, state.results, subjects]); return canShowMessageMenu ? ({ const { get, post } = axios; -export const fetchUnreadMessagesCount = () => axios.get(`${MESSAGING_API_URL}?include_additional_data=false&page_size=0&read=false`); +export const fetchUnreadMessagesCount = () => axios.get(`${MESSAGING_API_URL}?include_additional_data=false&page_size=10&read=false`); export const fetchMessages = (params = {}) => { const paramString = objectToParamString( @@ -106,7 +106,7 @@ export const messageListReducer = (state = INITIAL_MESSAGE_LIST_STATE, action) = if (type === UPDATE_UNREAD_MESSAGES_COUNT) { return { ...state, - unreadMessagesCount: payload, + unreadMessagesCount: payload.results.filter(msg => messageIsValidForDisplay(msg, store.getState().data.subjectStore)).length, }; }