| author | Stephen Paul Weber
<singpolyma@singpolyma.net> 2025-10-22 04:45:48 UTC |
| committer | Stephen Paul Weber
<singpolyma@singpolyma.net> 2025-10-22 04:45:48 UTC |
| parent | 6c4e3cd672f70296fd4e8ef2385c14d9edbf9e22 |
| borogove/Chat.hx | +5 | -9 |
| borogove/Client.hx | +1 | -1 |
diff --git a/borogove/Chat.hx b/borogove/Chat.hx index 4d10c24..8316fca 100644 --- a/borogove/Chat.hx +++ b/borogove/Chat.hx @@ -81,10 +81,13 @@ abstract class Chat { Is this chat blocked? **/ public var isBlocked(default, null): Bool = false; + /** + The most recent message in this chat + **/ + public var lastMessage(default, null): Null<ChatMessage>; @:allow(borogove) private var extensions: Stanza; private var _unreadCount = 0; - private var lastMessage: Null<ChatMessage>; private var readUpToId: Null<String>; @:allow(borogove) private var readUpToBy: Null<String>; @@ -412,13 +415,6 @@ abstract class Chat { **/ abstract public function lastMessageId():Null<String>; - /** - The timestamp of the most recent message in this chat - **/ - public function lastMessageTimestamp():Null<String> { - return lastMessage?.timestamp; - } - @:allow(borogove) private function updateFromBookmark(item: Stanza) { final conf = item.getChild("conference", "urn:xmpp:bookmarks:1"); @@ -1230,7 +1226,7 @@ class Channel extends Chat { inSync = true; sync = null; final lastFromSync = chatMessages[chatMessages.length - 1]; - if (lastFromSync != null && (lastMessageTimestamp() == null || Reflect.compare(lastFromSync.timestamp, lastMessageTimestamp()) > 0)) { + if (lastFromSync != null && (lastMessage?.timestamp == null || Reflect.compare(lastFromSync.timestamp, lastMessage?.timestamp) > 0)) { setLastMessage(lastFromSync); client.sortChats(); } diff --git a/borogove/Client.hx b/borogove/Client.hx index a3e012a..d722668 100644 --- a/borogove/Client.hx +++ b/borogove/Client.hx @@ -1391,7 +1391,7 @@ class Client extends EventEmitter { chats.sort((a, b) -> { if (a.uiState == Pinned && b.uiState != Pinned) return -1; if (b.uiState == Pinned && a.uiState != Pinned) return 1; - return -Reflect.compare(a.lastMessageTimestamp() ?? "0", b.lastMessageTimestamp() ?? "0"); + return -Reflect.compare(a.lastMessage?.timestamp ?? "0", b.lastMessage?.timestamp ?? "0"); }); }