From 072ee38211ce8e16275dbf35d64750b34cb1257c Mon Sep 17 00:00:00 2001 From: Roland Osborne Date: Fri, 2 Sep 2022 22:18:21 -0700 Subject: [PATCH] fixing contact update notification --- net/web/src/session/cards/useCards.hook.js | 13 +++++++++++++ net/web/src/session/useSession.hook.js | 12 ++---------- 2 files changed, 15 insertions(+), 10 deletions(-) diff --git a/net/web/src/session/cards/useCards.hook.js b/net/web/src/session/cards/useCards.hook.js index 13fb911c..abeb17db 100644 --- a/net/web/src/session/cards/useCards.hook.js +++ b/net/web/src/session/cards/useCards.hook.js @@ -1,6 +1,7 @@ import { useContext, useState, useEffect } from 'react'; import { CardContext } from 'context/CardContext'; import { ViewportContext } from 'context/ViewportContext'; +import { StoreContext } from 'context/StoreContext'; export function useCards() { @@ -14,6 +15,7 @@ export function useCards() { }); const card = useContext(CardContext); + const store = useContext(StoreContext); const viewport = useContext(ViewportContext); const updateState = (value) => { @@ -29,6 +31,17 @@ export function useCards() { }, }; + useEffect(() => { + let updated; + const contacts = Array.from(card.state.cards.values()); + contacts.forEach(contact => { + if (!updated || updated < contact?.data?.cardDetail?.statusUpdated) { + updated = contact?.data?.cardDetail?.statusUpdated; + } + }); + store.actions.setValue('cards:updated', updated); + }, [card]); + useEffect(() => { const contacts = Array.from(card.state.cards.values()); diff --git a/net/web/src/session/useSession.hook.js b/net/web/src/session/useSession.hook.js index 37ff535c..1378f19e 100644 --- a/net/web/src/session/useSession.hook.js +++ b/net/web/src/session/useSession.hook.js @@ -50,23 +50,15 @@ export function useSession() { }, [viewport]); useEffect(() => { - const contacts = Array.from(card.state.cards.values()); - let updated; + const contacts = Array.from(card.state.cards.values()); contacts.forEach(contact => { if (!updated || updated < contact?.data?.cardDetail?.statusUpdated) { updated = contact?.data?.cardDetail?.statusUpdated; } }); - - if (state.cards) { - cardStatus.current = updated; - storeStatus.current = updated; - store.actions.setValue('cards:updated', updated); - } - + cardStatus.current = updated; updateState({ cardUpdated: cardStatus.current > storeStatus.current }); - // eslint-disable-next-line }, [card]); useEffect(() => {