From 43f4c966f905ca736d6bcefa7f1a2b4af1488e7e Mon Sep 17 00:00:00 2001 From: tisonhuang Date: Mon, 2 Mar 2026 15:38:34 +0800 Subject: [PATCH] feat(export): show running state on content and sns cards --- src/pages/ExportPage.scss | 9 +++++++++ src/pages/ExportPage.tsx | 21 +++++++++++++++++++-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/src/pages/ExportPage.scss b/src/pages/ExportPage.scss index 7ab3b21..cb61e85 100644 --- a/src/pages/ExportPage.scss +++ b/src/pages/ExportPage.scss @@ -322,6 +322,15 @@ &:hover { background: var(--primary-hover); } + + &:disabled { + cursor: not-allowed; + opacity: 0.86; + } + + &.running { + background: var(--primary-hover); + } } &.skeleton-card { diff --git a/src/pages/ExportPage.tsx b/src/pages/ExportPage.tsx index b145293..1d681e3 100644 --- a/src/pages/ExportPage.tsx +++ b/src/pages/ExportPage.tsx @@ -1892,6 +1892,21 @@ function ExportPage() { return set }, [tasks]) + const runningCardTypes = useMemo(() => { + const set = new Set() + for (const task of tasks) { + if (task.status !== 'running') continue + if (task.payload.scope === 'sns') { + set.add('sns') + continue + } + if (task.payload.scope === 'content' && task.payload.contentType) { + set.add(task.payload.contentType) + } + } + return set + }, [tasks]) + const contentCards = useMemo(() => { const scopeSessions = sessions.filter(isContentScopeSession) const totalSessions = tabCounts.private + tabCounts.group + tabCounts.former_friend @@ -2498,6 +2513,7 @@ function ExportPage() { const isCardStatsLoading = card.type === 'sns' ? isSnsCardStatsLoading : isSessionCardStatsLoading + const isCardRunning = runningCardTypes.has(card.type) return (
@@ -2518,7 +2534,8 @@ function ExportPage() { ))}
)