fix(export): show sns counts per-session as soon as loaded

This commit is contained in:
aits2026
2026-03-05 19:55:17 +08:00
parent edaef53712
commit 3e004867be

View File

@@ -5029,10 +5029,21 @@ function ExportPage() {
const voiceMetric = metricToDisplay(mediaMetric?.voiceMessages) const voiceMetric = metricToDisplay(mediaMetric?.voiceMessages)
const imageMetric = metricToDisplay(mediaMetric?.imageMessages) const imageMetric = metricToDisplay(mediaMetric?.imageMessages)
const videoMetric = metricToDisplay(mediaMetric?.videoMessages) 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 snsRawCount = Number(snsUserPostCounts[contact.username] || 0)
const snsCount = Number.isFinite(snsRawCount) ? Math.max(0, Math.floor(snsRawCount)) : 0 const snsCount = Number.isFinite(snsRawCount) ? Math.max(0, Math.floor(snsRawCount)) : 0
const supportsSnsTimeline = isSingleContactSession(contact.username)
const openChatLabel = contact.type === 'friend' const openChatLabel = contact.type === 'friend'
? '打开私聊' ? '打开私聊'
: contact.type === 'group' : contact.type === 'group'
@@ -5126,7 +5137,9 @@ function ExportPage() {
> >
{isSnsCountLoading {isSnsCountLoading
? <Loader2 size={12} className="spin row-media-metric-icon" aria-label="朋友圈统计加载中" /> ? <Loader2 size={12} className="spin row-media-metric-icon" aria-label="朋友圈统计加载中" />
: `${snsCount.toLocaleString('zh-CN')}`} : hasSnsCount
? `${snsCount.toLocaleString('zh-CN')}`
: '--'}
</button> </button>
) : ( ) : (
<strong className="row-media-metric-value">--</strong> <strong className="row-media-metric-value">--</strong>
@@ -5176,6 +5189,7 @@ function ExportPage() {
selectedSessions, selectedSessions,
sessionDetail?.wxid, sessionDetail?.wxid,
sessionContentMetrics, sessionContentMetrics,
sessionLoadTraceMap,
sessionMessageCounts, sessionMessageCounts,
sessionRowByUsername, sessionRowByUsername,
showSessionDetailPanel, showSessionDetailPanel,