From 64bca5161912e9fd935866b8669830ba9f6f866b Mon Sep 17 00:00:00 2001 From: Stone_Red <56473591+Stone-Red-Code@users.noreply.github.com> Date: Tue, 14 Jul 2026 23:49:00 +0200 Subject: [PATCH] feat: show date on messages older than a day and improve time formatting --- src/EchoHub.Client/UI/Chat/ChatMessageManager.cs | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/EchoHub.Client/UI/Chat/ChatMessageManager.cs b/src/EchoHub.Client/UI/Chat/ChatMessageManager.cs index cccd834..e8b32c1 100644 --- a/src/EchoHub.Client/UI/Chat/ChatMessageManager.cs +++ b/src/EchoHub.Client/UI/Chat/ChatMessageManager.cs @@ -101,7 +101,7 @@ public sealed class ChatMessageManager _channelMessages[channelName] = messages; } - var time = DateTimeOffset.Now.ToString("HH:mm"); + var time = FormatDateTime(DateTimeOffset.Now); var textLines = text.Split('\n'); messages.Add(new ChatLine( @@ -130,7 +130,7 @@ public sealed class ChatMessageManager /// public void AddStatusMessage(string channelName, string username, string status) { - var time = DateTimeOffset.Now.ToString("HH:mm"); + var time = FormatDateTime(DateTimeOffset.Now); var segments = new List { new($"[{time}] ", ChatColors.TimestampAttr), @@ -234,7 +234,7 @@ public sealed class ChatMessageManager private List FormatMessage(MessageDto message) { - var time = message.SentAt.ToLocalTime().ToString("HH:mm"); + var time = FormatDateTime(message.SentAt); var senderName = message.SenderUsername + ":"; var senderColor = HexColorHelper.ParseHexColor(message.SenderNicknameColor); @@ -425,6 +425,14 @@ public sealed class ChatMessageManager return result; } + private static string FormatDateTime(DateTimeOffset timestamp) + { + if (timestamp.Date == DateTimeOffset.Now.Date) + return timestamp.ToLocalTime().ToString("t"); + else + return timestamp.ToLocalTime().ToString("g"); + } + internal static string FormatFileSize(long? bytes) { if (bytes is null or 0)