optimizations
This commit is contained in:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user