From 29e0c7d79c70f727fd2de6bac0f9f3e47cea90cd Mon Sep 17 00:00:00 2001 From: hbyang Date: Thu, 26 Feb 2026 14:19:21 +0900 Subject: [PATCH] =?UTF-8?q?video=5Fid=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/Dashboard/CompletionContent.tsx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/pages/Dashboard/CompletionContent.tsx b/src/pages/Dashboard/CompletionContent.tsx index a837980..d1ec1cb 100755 --- a/src/pages/Dashboard/CompletionContent.tsx +++ b/src/pages/Dashboard/CompletionContent.tsx @@ -21,6 +21,7 @@ interface SavedVideoState { songTaskId: string; status: VideoStatus; videoUrl: string | null; + videoDbId?: number; timestamp: number; } @@ -70,12 +71,13 @@ const CompletionContent: React.FC = ({ } }, [renderProgress, onVideoProgressChange]); - const saveToStorage = (videoTaskId: string, currentSongTaskId: string, status: VideoStatus, url: string | null) => { + const saveToStorage = (videoTaskId: string, currentSongTaskId: string, status: VideoStatus, url: string | null, dbId?: number) => { const data: SavedVideoState = { videoTaskId, songTaskId: currentSongTaskId, status, videoUrl: url, + videoDbId: dbId, timestamp: Date.now(), }; localStorage.setItem(VIDEO_STORAGE_KEY, JSON.stringify(data)); @@ -84,6 +86,7 @@ const CompletionContent: React.FC = ({ const completeData = { songTaskId: currentSongTaskId, videoUrl: url, + videoDbId: dbId, completedAt: Date.now(), }; localStorage.setItem(VIDEO_COMPLETE_KEY, JSON.stringify(completeData)); @@ -94,7 +97,7 @@ const CompletionContent: React.FC = ({ localStorage.removeItem(VIDEO_STORAGE_KEY); }; - const loadCompleteVideo = (): { songTaskId: string; videoUrl: string } | null => { + const loadCompleteVideo = (): { songTaskId: string; videoUrl: string; videoDbId?: number } | null => { try { const saved = localStorage.getItem(VIDEO_COMPLETE_KEY); if (!saved) return null; @@ -203,14 +206,14 @@ const CompletionContent: React.FC = ({ const videoUrlFromResponse = statusResponse.render_data?.url; if (videoUrlFromResponse) { - setVideoUrl(videoUrlFromResponse); const videoId = statusResponse.render_data?.video_id; + setVideoUrl(videoUrlFromResponse); if (videoId) { setVideoDbId(videoId); } setVideoStatus('complete'); setStatusMessage(''); - saveToStorage(videoTaskId, currentSongTaskId, 'complete', videoUrlFromResponse); + saveToStorage(videoTaskId, currentSongTaskId, 'complete', videoUrlFromResponse, videoId); } else { throw new Error(t('completion.videoUrlMissing')); } @@ -237,6 +240,7 @@ const CompletionContent: React.FC = ({ const completeVideo = loadCompleteVideo(); if (completeVideo && completeVideo.songTaskId === songTaskId && completeVideo.videoUrl) { setVideoUrl(completeVideo.videoUrl); + if (completeVideo.videoDbId) setVideoDbId(completeVideo.videoDbId); setVideoStatus('complete'); hasStartedGeneration.current = true; return; @@ -247,6 +251,7 @@ const CompletionContent: React.FC = ({ if (savedState && savedState.songTaskId === songTaskId) { if (savedState.status === 'complete' && savedState.videoUrl) { setVideoUrl(savedState.videoUrl); + if (savedState.videoDbId) setVideoDbId(savedState.videoDbId); setVideoStatus('complete'); hasStartedGeneration.current = true; } else if (savedState.status === 'polling') { @@ -506,7 +511,7 @@ const CompletionContent: React.FC = ({