summaryrefslogtreecommitdiff
path: root/src/Main.hs
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2025-08-02 09:19:54 +0200
committerRoman Smrž <roman.smrz@seznam.cz>2025-08-02 09:19:54 +0200
commite8d163608f5eff8cd356d24ebf23ab5eeb829a35 (patch)
treed205d2ba1a819476dc2eb07c6408a483dbe38eba /src/Main.hs
parent0371d3feebbc57fbc932bf094806de05f0c98648 (diff)
Update current conversation name when changed
Diffstat (limited to 'src/Main.hs')
-rw-r--r--src/Main.hs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/Main.hs b/src/Main.hs
index 5788a37..df8caf2 100644
--- a/src/Main.hs
+++ b/src/Main.hs
@@ -253,6 +253,20 @@ watchConversations gs@GlobalState {..} = do
conversations <- zip [1 ..] . fst <$>
runLocalHeadT lookupConversations globalStorage (headStoredObject ls)
+ modifyMVar_ currentConversationVar $ \case
+ x@(SelectedConversation selected) -> do
+ let updateCurrent [] = return x
+ updateCurrent (( _, c ) : cs)
+ | c `isSameConversation` selected = do
+ when (conversationName c /= conversationName selected) $ do
+ header <- JS.getElementById "msg_header"
+ js_set_textContent header $ toJSString $ T.unpack $ conversationName c
+ return $ SelectedConversation c
+ | otherwise = do
+ updateCurrent cs
+ updateCurrent conversations
+ x -> return x
+
convList <- JS.getElementById "conversation_list"
ul <- js_document_createElement (toJSString "ul")
forM_ conversations $ \( _, conv ) -> do