optimizations

This commit is contained in:
2026-03-28 19:15:39 +01:00
parent 0b25d9570a
commit cab4fbd83e
509 changed files with 1016804 additions and 1605 deletions

View File

@@ -411,6 +411,14 @@ function MessagesPage({ userId, username, activeConversationId: initialId }) {
setConversations((prev) => mergeConversationSummary(prev, patch))
}, [])
const handleUnreadTotalPatched = useCallback((nextUnreadTotal) => {
if (!Number.isFinite(Number(nextUnreadTotal))) {
return
}
setUnreadTotal(Math.max(0, Number(nextUnreadTotal)))
}, [])
useEffect(() => {
let cancelled = false
@@ -586,6 +594,7 @@ function MessagesPage({ userId, username, activeConversationId: initialId }) {
}}
onMarkRead={handleMarkRead}
onConversationPatched={handleConversationPatched}
onUnreadTotalPatched={handleUnreadTotalPatched}
/>
) : (
<div className="flex flex-1 items-center justify-center p-8">
@@ -632,7 +641,7 @@ function StatChip({ label, value, tone = 'sky' }) {
}
return (
<div className={`rounded-2xl border px-3 py-3 ${tones[tone] || tones.sky}`}>
<div data-testid={`messages-stat-${String(label).toLowerCase()}`} className={`rounded-2xl border px-3 py-3 ${tones[tone] || tones.sky}`}>
<p className="text-[10px] font-semibold uppercase tracking-[0.18em] opacity-70">{label}</p>
<p className="mt-2 text-lg font-semibold">{Number(value || 0).toLocaleString()}</p>
</div>