diff options
| author | Roman Smrž <roman.smrz@seznam.cz> | 2026-07-01 21:30:59 +0200 |
|---|---|---|
| committer | Roman Smrž <roman.smrz@seznam.cz> | 2026-07-01 21:50:08 +0200 |
| commit | 06263ef351281cb27b2cbdb46e2a39d57d084ae4 (patch) | |
| tree | 716c6d713590bad7c8ceeb950f8c2ffd7a884c63 /src/Main.hs | |
| parent | 2573b8a2cae5bf2f3f58aff4135876da7152081d (diff) | |
Add class for conversations with unread messages
Diffstat (limited to 'src/Main.hs')
| -rw-r--r-- | src/Main.hs | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/src/Main.hs b/src/Main.hs index 8790221..1b08ab4 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -485,19 +485,24 @@ watchConversations GlobalState {..} = do JS.getElementById "conversation_list" >>= \case Just convList -> do - ul <- js_document_createElement (toJSString "ul") + ul <- createElement "ul" forM_ conversations' $ \( conv, selected ) -> do - li <- js_document_createElement (toJSString "li") + li <- createElement "li" when selected $ do - js_classList_add li (toJSString "selected") - js_setAttribute li (toJSString "data-conv") $ toJSString $ show $ conversationReference conv - a <- js_document_createElement (toJSString "a") - js_setAttribute a (toJSString "href") $ toJSString $ "#conv=" <> drop 7 (show $ conversationReference conv) + addClass "selected" li + + case conversationHistory conv of + msg : _ | messageUnread msg -> addClass "unread-messages" li + _ -> return () + + setAttribute "data-conv" (show $ conversationReference conv) li + a <- createElement "a" + setAttribute "href" ("#conv=" <> drop 7 (show $ conversationReference conv)) a - js_set_textContent a $ toJSString $ T.unpack $ conversationName conv - js_appendChild li a - js_appendChild ul li - js_replaceChildren (toJSVal convList) ul + setTextContent (T.unpack $ conversationName conv) a + appendChild a li + appendChild li ul + js_replaceChildren (toJSVal convList) (toJSVal ul) Nothing -> return () return $ zip [ 1 .. ] conversations |