Class ChatMessageManager
Owns chat message storage, formatting, and mutation. Fires MessagesChanged when a channel's message list is modified so the UI layer can refresh.
public sealed class ChatMessageManager
- Inheritance
-
ChatMessageManager
- Inherited Members
Constructors
ChatMessageManager()
public ChatMessageManager()
Properties
CurrentChannel
The currently active channel (used for unread tracking and @mention detection).
public string CurrentChannel { get; set; }
Property Value
CurrentUser
public string CurrentUser { get; }
Property Value
Methods
AddMessage(MessageDto)
Format and store a received message. Increments unread count if not the active channel.
public void AddMessage(MessageDto message)
Parameters
messageMessageDto
AddStatusMessage(string, string, string)
Add a status change message to a channel with colored styling.
public void AddStatusMessage(string channelName, string username, string status)
Parameters
AddSystemMessage(string, string)
Add a system/informational message to a channel with colored styling.
public void AddSystemMessage(string channelName, string text)
Parameters
ClearAll()
Reset all message state (used on disconnect).
public void ClearAll()
ClearChannelMessages(string)
Clear all messages from a specific channel.
public void ClearChannelMessages(string channelName)
Parameters
channelNamestring
ClearUnread(string)
public void ClearUnread(string channelName)
Parameters
channelNamestring
GetMessages(string)
public List<ChatLine>? GetMessages(string channelName)
Parameters
channelNamestring
Returns
- List<ChatLine>
GetUnreadCount(string)
public int GetUnreadCount(string channelName)
Parameters
channelNamestring
Returns
LoadHistory(string, List<MessageDto>)
Load historical messages into a channel, replacing any existing messages.
public void LoadHistory(string channelName, List<MessageDto> messages)
Parameters
channelNamestringmessagesList<MessageDto>
RemoveMessage(string, Guid)
Remove all lines associated with a specific message ID.
public void RemoveMessage(string channelName, Guid messageId)
Parameters
SetChatWidth(int)
public void SetChatWidth(int width)
Parameters
widthint
SetCurrentUser(string)
public void SetCurrentUser(string username)
Parameters
usernamestring
Events
MessagesChanged
Fired after any mutation to a channel's messages. Parameter is the channel name.
public event Action<string>? MessagesChanged