From 3e004867bee9d59a62722ad728a3d42b0fdd2eb2 Mon Sep 17 00:00:00 2001 From: aits2026 Date: Thu, 5 Mar 2026 19:55:17 +0800 Subject: [PATCH] fix(export): show sns counts per-session as soon as loaded --- src/pages/ExportPage.tsx | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/src/pages/ExportPage.tsx b/src/pages/ExportPage.tsx index 6fe00e2..4db0498 100644 --- a/src/pages/ExportPage.tsx +++ b/src/pages/ExportPage.tsx @@ -5029,10 +5029,21 @@ function ExportPage() { const voiceMetric = metricToDisplay(mediaMetric?.voiceMessages) const imageMetric = metricToDisplay(mediaMetric?.imageMessages) const videoMetric = metricToDisplay(mediaMetric?.videoMessages) - const isSnsCountLoading = snsUserPostCountsStatus === 'loading' || snsUserPostCountsStatus === 'idle' + const supportsSnsTimeline = isSingleContactSession(contact.username) + const hasSnsCount = Object.prototype.hasOwnProperty.call(snsUserPostCounts, contact.username) + const snsStageStatus = sessionLoadTraceMap[contact.username]?.snsPostCounts?.status + const isSnsCountLoading = ( + supportsSnsTimeline && + !hasSnsCount && + ( + snsStageStatus === 'pending' || + snsStageStatus === 'loading' || + snsUserPostCountsStatus === 'loading' || + snsUserPostCountsStatus === 'idle' + ) + ) const snsRawCount = Number(snsUserPostCounts[contact.username] || 0) const snsCount = Number.isFinite(snsRawCount) ? Math.max(0, Math.floor(snsRawCount)) : 0 - const supportsSnsTimeline = isSingleContactSession(contact.username) const openChatLabel = contact.type === 'friend' ? '打开私聊' : contact.type === 'group' @@ -5126,7 +5137,9 @@ function ExportPage() { > {isSnsCountLoading ? - : `${snsCount.toLocaleString('zh-CN')} 条`} + : hasSnsCount + ? `${snsCount.toLocaleString('zh-CN')} 条` + : '--'} ) : ( -- @@ -5176,6 +5189,7 @@ function ExportPage() { selectedSessions, sessionDetail?.wxid, sessionContentMetrics, + sessionLoadTraceMap, sessionMessageCounts, sessionRowByUsername, showSessionDetailPanel,