diff options
author | Roman Smrž <roman.smrz@seznam.cz> | 2025-08-03 09:48:04 +0200 |
---|---|---|
committer | Roman Smrž <roman.smrz@seznam.cz> | 2025-08-03 09:48:04 +0200 |
commit | 6f688efd9771e2cfad459bf55d73cf53cadcc14d (patch) | |
tree | bb25e21e612eb9fb27848e97b8466f887dbcd787 /src/Main.hs | |
parent | 4435f2d329c1781e262a963c2e8d4ad7fea2eb7a (diff) |
Use watchDirectMessageThreads to update current conversation
Diffstat (limited to 'src/Main.hs')
-rw-r--r-- | src/Main.hs | 17 |
1 files changed, 12 insertions, 5 deletions
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" |