feat(chat): unread count + sidebar badge (Q1)
Track a per-conversation "last seen" watermark (message timestamp) on App: - chatUnreadCount() sums incoming messages newer than each conversation's watermark; surfaced as SidebarStatus.chatUnreadCount → a badge on the Chat nav item (mirrors the History/Peers badges). - Viewing a thread marks it seen (markChatConversationSeen while displayed). - Baseline on load: existing stored messages are marked seen, so only messages that arrive while the app is open badge as unread. - Wiped in resetChatSession so unread state never leaks across a wallet switch. In-memory only (resets on app restart); persistence is a later refinement. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1503,6 +1503,7 @@ void App::render()
|
||||
ui::SidebarStatus sbStatus;
|
||||
sbStatus.peerCount = static_cast<int>(state_.peers.size());
|
||||
sbStatus.miningActive = state_.mining.generate || state_.pool_mining.xmrig_running;
|
||||
sbStatus.chatUnreadCount = chatUnreadCount(); // unread badge on the Chat nav item (Q1)
|
||||
|
||||
// Load logo texture lazily on first frame (or after theme change)
|
||||
// Also reload when dark↔light mode changes so the correct variant shows
|
||||
|
||||
Reference in New Issue
Block a user