From 6f688efd9771e2cfad459bf55d73cf53cadcc14d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Sun, 3 Aug 2025 09:48:04 +0200 Subject: Use watchDirectMessageThreads to update current conversation --- src/Main.hs | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) (limited to 'src/Main.hs') diff --git a/src/Main.hs b/src/Main.hs index 504fc00..aee8dfe 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -144,11 +144,18 @@ setup = do messagesList <- JS.getElementById "msg_list" tzone <- getCurrentTimeZone - void $ watchReceivedMessages globalHead $ \msg -> do - li <- js_document_createElement (toJSString "li") - js_set_textContent li $ toJSString $ formatDirectMessage tzone $ fromStored msg - ul <- js_get_firstChild messagesList - js_appendChild ul li + void $ watchDirectMessageThreads globalHead $ \prev cur -> do + withMVar currentConversationVar $ \case + SelectedConversation conv + | maybe False (msgPeer cur `sameIdentity`) (conversationPeer conv) + -> do + forM_ (reverse $ dmThreadToListSince prev cur) $ \msg -> do + li <- js_document_createElement (toJSString "li") + js_set_textContent li $ toJSString $ formatDirectMessage tzone msg + ul <- js_get_firstChild messagesList + js_appendChild ul li + + _ -> return () sendText <- JS.getElementById "msg_text" sendForm <- JS.getElementById "msg_form" -- cgit v1.2.3