summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoman Smrž <roman.smrz@seznam.cz>2026-06-22 21:47:58 +0200
committerRoman Smrž <roman.smrz@seznam.cz>2026-06-23 21:26:32 +0200
commit8dfb26e8e115cf04350c5333ce293c3026361adb (patch)
tree01c9775b1a6effd985050982512eac523f1d7c2e
parent7f39ef530bb09eec5bb07c60b0f8f622a1a31698 (diff)
Convert to generic Message type for formatting
-rw-r--r--main/Main.hs4
-rw-r--r--src/Erebos/Conversation.hs4
2 files changed, 5 insertions, 3 deletions
diff --git a/main/Main.hs b/main/Main.hs
index 2737915..def3b8c 100644
--- a/main/Main.hs
+++ b/main/Main.hs
@@ -444,9 +444,7 @@ interactiveLoop st opts = withTerminal commandCompletion $ \term -> do
SelectedConversation conv -> return $ conversationPeer conv
_ -> return Nothing
when (not tui || maybe False (msgPeer cur `sameIdentity`) mbpid) $ do
- line <- printLine term $
- (if new then withStyle (setForegroundColor BrightYellow noStyle) else id) $
- plainText $ T.pack $ formatDirectMessage tzone msg
+ line <- printLine term $ formatMessageFT tzone $ makeMessage new msg
modifyMVar_ currentLinesVar $ return . (line :)
case optDmBotEcho opts of
diff --git a/src/Erebos/Conversation.hs b/src/Erebos/Conversation.hs
index 365f8de..1c2b340 100644
--- a/src/Erebos/Conversation.hs
+++ b/src/Erebos/Conversation.hs
@@ -2,6 +2,7 @@
module Erebos.Conversation (
Message,
+ makeMessage,
messageFrom,
messageTime,
messageText,
@@ -51,6 +52,9 @@ import Erebos.TextFormat.Types
data Message = forall conv msg. ConversationType conv msg => Message msg Bool
+makeMessage :: ConversationType conv msg => Bool -> msg -> Message
+makeMessage = flip Message
+
withMessage :: (forall conv msg. ConversationType conv msg => msg -> a) -> Message -> a
withMessage f (Message msg _) = f msg