From 63078437482007ce64b04d19b0a2e2a14bbaa1e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Thu, 25 Jun 2026 21:13:20 +0200 Subject: Unify appending messages with makeMessage --- src/Main.hs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Main.hs b/src/Main.hs index 795cabe..7d6a805 100644 --- a/src/Main.hs +++ b/src/Main.hs @@ -258,7 +258,7 @@ setup = do clientHeight <- js_get_clientHeight messagesList ul <- js_get_firstChild messagesList - appendMessages gs ul $ map Left $ reverse $ dmThreadToListSince prev cur + appendMessages gs ul $ map (makeMessage False) $ reverse $ dmThreadToListSince prev cur when (scrollTop + clientHeight >= scrollHeight) $ do js_set_scrollTop messagesList =<< js_get_scrollHeight messagesList @@ -500,15 +500,15 @@ watchConversations GlobalState {..} = do return $ zip [ 1 .. ] conversations -appendMessages :: GlobalState -> JSVal -> [ Either DirectMessage Message ] -> IO () +appendMessages :: GlobalState -> JSVal -> [ Message ] -> IO () appendMessages GlobalState {..} ul msgs = do tzone <- getCurrentTimeZone mbSelf <- join . fmap (lookupSharedValue @(Maybe ComposedIdentity) . lsShared . headObject) <$> reloadHead globalHead forM_ msgs $ \msg -> do let parts = - [ ( "msg-time", formatTime defaultTimeLocale "%H:%M" $ utcToLocalTime tzone $ zonedTimeToUTC $ either msgTime messageTime msg ) - , ( "msg-from", maybe "" T.unpack $ idName $ either msgFrom messageFrom msg ) - , ( "msg-text", maybe "" T.unpack $ either (Just . msgText) messageText msg ) + [ ( "msg-time", formatTime defaultTimeLocale "%H:%M" $ utcToLocalTime tzone $ zonedTimeToUTC $ messageTime msg ) + , ( "msg-from", maybe "" T.unpack $ idName $ messageFrom msg ) + , ( "msg-text", maybe "" T.unpack $ messageText msg ) ] li <- js_document_createElement (toJSString "li") forM_ parts $ \( cls, content ) -> do @@ -519,7 +519,7 @@ appendMessages GlobalState {..} ul msgs = do case mbSelf of Just self -> js_classList_add li $ - if either msgFrom messageFrom msg `sameIdentity` self then toJSString "sent" else toJSString "received" + if messageFrom msg `sameIdentity` self then toJSString "sent" else toJSString "received" Nothing -> return () js_appendChild ul li @@ -534,7 +534,7 @@ selectConversation gs@GlobalState {..} conv = do | otherwise -> do ul <- js_document_createElement (toJSString "ul") - appendMessages gs ul $ map Right $ reverse $ conversationHistory conv + appendMessages gs ul $ reverse $ conversationHistory conv JS.getElementById "msg_header" >>= \case Just header -> js_set_textContent header $ toJSString $ T.unpack $ conversationName conv -- cgit v1.2.3