feat: show date on messages older than a day and improve time formatting

This commit is contained in:
Stone_Red
2026-07-16 01:04:53 +02:00
committed by HueByte
parent 3538ec8005
commit 64bca51619
@@ -101,7 +101,7 @@ public sealed class ChatMessageManager
_channelMessages[channelName] = messages; _channelMessages[channelName] = messages;
} }
var time = DateTimeOffset.Now.ToString("HH:mm"); var time = FormatDateTime(DateTimeOffset.Now);
var textLines = text.Split('\n'); var textLines = text.Split('\n');
messages.Add(new ChatLine( messages.Add(new ChatLine(
@@ -130,7 +130,7 @@ public sealed class ChatMessageManager
/// </summary> /// </summary>
public void AddStatusMessage(string channelName, string username, string status) 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<ChatSegment> var segments = new List<ChatSegment>
{ {
new($"[{time}] ", ChatColors.TimestampAttr), new($"[{time}] ", ChatColors.TimestampAttr),
@@ -234,7 +234,7 @@ public sealed class ChatMessageManager
private List<ChatLine> FormatMessage(MessageDto message) private List<ChatLine> FormatMessage(MessageDto message)
{ {
var time = message.SentAt.ToLocalTime().ToString("HH:mm"); var time = FormatDateTime(message.SentAt);
var senderName = message.SenderUsername + ":"; var senderName = message.SenderUsername + ":";
var senderColor = HexColorHelper.ParseHexColor(message.SenderNicknameColor); var senderColor = HexColorHelper.ParseHexColor(message.SenderNicknameColor);
@@ -425,6 +425,14 @@ public sealed class ChatMessageManager
return result; 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) internal static string FormatFileSize(long? bytes)
{ {
if (bytes is null or 0) if (bytes is null or 0)