diff --git a/src/pages/ExportPage.scss b/src/pages/ExportPage.scss index 034cd9b..80cc66e 100644 --- a/src/pages/ExportPage.scss +++ b/src/pages/ExportPage.scss @@ -2273,6 +2273,14 @@ padding: 12px 14px 14px; } + .export-session-sns-posts-list { + gap: 14px; + } + + .post-header-actions { + display: none; + } + .sns-post-list { display: flex; flex-direction: column; diff --git a/src/pages/ExportPage.tsx b/src/pages/ExportPage.tsx index 21d9f82..c32f5e4 100644 --- a/src/pages/ExportPage.tsx +++ b/src/pages/ExportPage.tsx @@ -38,6 +38,7 @@ import { onOpenSingleExport } from '../services/exportBridge' import { useContactTypeCountsStore } from '../stores/contactTypeCountsStore' +import { SnsPostItem } from '../components/Sns/SnsPostItem' import type { SnsPost } from '../types/sns' import './ExportPage.scss' @@ -431,12 +432,6 @@ const isSingleContactSession = (sessionId: string): boolean => { return true } -const isSnsVideoMediaUrl = (url?: string): boolean => { - if (!url) return false - const lower = url.toLowerCase() - return (lower.includes('snsvideodownload') || lower.includes('.mp4') || lower.includes('video')) && !lower.includes('vweixinthumb') -} - const formatPathBrief = (value: string, maxLength = 52): string => { const normalized = String(value || '') if (normalized.length <= maxLength) return normalized @@ -2085,7 +2080,7 @@ function ExportPage() { } void loadSessionSnsTimelinePosts(target, { reset: true }) - void loadSnsUserPostCounts() + void loadSnsUserPostCounts({ force: true }) }, [ loadSessionSnsTimelinePosts, loadSnsUserPostCounts, @@ -4658,8 +4653,11 @@ function ExportPage() { if (!sessionId) return detailStatsPriorityRef.current = true setShowSessionDetailPanel(true) + if (isSingleContactSession(sessionId)) { + void loadSnsUserPostCounts({ force: true }) + } void loadSessionDetail(sessionId) - }, [loadSessionDetail]) + }, [loadSessionDetail, loadSnsUserPostCounts]) useEffect(() => { if (!showSessionDetailPanel) return @@ -5785,42 +5783,21 @@ function ExportPage() {
{sessionSnsTimelinePosts.length > 0 && ( -
+
{sessionSnsTimelinePosts.map((post) => ( -
-
{formatYmdHmDateTime(post.createTime * 1000)}
- {post.contentDesc &&
{post.contentDesc}
} - {Array.isArray(post.media) && post.media.length > 0 && ( -
- {post.media.slice(0, 9).map((media, mediaIndex) => { - const mediaUrl = String(media?.url || media?.thumb || '') - const previewUrl = String(media?.thumb || media?.url || '') - if (!mediaUrl || !previewUrl) return null - const isVideo = isSnsVideoMediaUrl(mediaUrl) - return ( - - ) - })} -
- )} -
+ { + if (isVideo) { + void window.electronAPI.window.openVideoPlayerWindow(src) + } else { + void window.electronAPI.window.openImageViewerWindow(src, liveVideoPath || undefined) + } + }} + onDebug={() => {}} + hideAuthorMeta + /> ))}
)}