summaryrefslogtreecommitdiff
path: root/src/Main.hs
diff options
context:
space:
mode:
Diffstat (limited to 'src/Main.hs')
-rw-r--r--src/Main.hs25
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