From 3e1686f2cc593afabc6c784b0c37316df784d1d8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Roman=20Smr=C5=BE?= Date: Thu, 18 Jun 2026 21:53:46 +0200 Subject: Constructor for empty direct message thread --- src/Erebos/Conversation.hs | 2 +- src/Erebos/DirectMessage.hs | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/Erebos/Conversation.hs b/src/Erebos/Conversation.hs index c9a3b59..365f8de 100644 --- a/src/Erebos/Conversation.hs +++ b/src/Erebos/Conversation.hs @@ -102,7 +102,7 @@ directMessageConversation peer = do createOrUpdateDirectMessagePeer peer (find (sameIdentity peer . msgPeer) . dmThreadList . lookupSharedValue . lsShared . fromStored <$> getLocalHead) >>= \case Just thread -> return $ DirectMessageConversation thread - Nothing -> return $ DirectMessageConversation $ DirectMessageThread peer [] [] [] [] + Nothing -> return $ DirectMessageConversation $ dmEmptyThread peer chatroomConversation :: MonadHead LocalState m => ChatroomState -> m (Maybe Conversation) chatroomConversation rstate = chatroomConversationByStateData (head $ roomStateData rstate) diff --git a/src/Erebos/DirectMessage.hs b/src/Erebos/DirectMessage.hs index 2108587..6705dec 100644 --- a/src/Erebos/DirectMessage.hs +++ b/src/Erebos/DirectMessage.hs @@ -11,7 +11,8 @@ module Erebos.DirectMessage ( DirectMessageThreads, dmThreadList, - DirectMessageThread(..), + DirectMessageThread(msgPeer, msgHead, msgSent, msgSeen, msgReceived), + dmEmptyThread, dmThreadToList, dmThreadToListSince, dmThreadToListUnread, dmThreadToListSinceUnread, dmThreadToListChange, dmThreadView, @@ -325,6 +326,15 @@ data DirectMessageThread = DirectMessageThread , msgReceived :: [ Stored DirectMessage ] } +dmEmptyThread :: ComposedIdentity -> DirectMessageThread +dmEmptyThread peer = DirectMessageThread + { msgPeer = peer + , msgHead = [] + , msgSent = [] + , msgSeen = [] + , msgReceived = [] + } + dmThreadToList :: DirectMessageThread -> [ DirectMessage ] dmThreadToList thread = map fst $ threadToListHelper (msgSeen thread) S.empty $ msgHead thread -- cgit v1.2.3