From ebef63e0dbf725768c2571be947cdd1a51db2c08 Mon Sep 17 00:00:00 2001 From: LingYing Agent Date: Mon, 14 Sep 2026 01:20:37 +0800 Subject: [PATCH] =?UTF-8?q?fix(web):=20=E4=BF=AE=E5=A4=8DisDragging?= =?UTF-8?q?=E5=9C=A8tail=20useEffect=E4=B8=AD=E6=8F=90=E5=89=8D=E5=BC=95?= =?UTF-8?q?=E7=94=A8=E5=AF=BC=E8=87=B4=E7=9A=84TDZ/eslint=E9=94=99?= =?UTF-8?q?=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pages/generate/components/FrontendPreviewPlayer.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/apps/web/src/pages/generate/components/FrontendPreviewPlayer.tsx b/apps/web/src/pages/generate/components/FrontendPreviewPlayer.tsx index c2c3f7adb..067a846ed 100644 --- a/apps/web/src/pages/generate/components/FrontendPreviewPlayer.tsx +++ b/apps/web/src/pages/generate/components/FrontendPreviewPlayer.tsx @@ -422,6 +422,10 @@ const FrontendPreviewPlayer: React.FC = ({ // eslint-disable-next-line react-hooks/exhaustive-deps }, [segmentSyncKey, isPlaying]) + // ── 进度条拖拽状态(提前声明,供 tail useEffect 使用,避免 TDZ/no-use-before-define) ── + const [isDragging, setIsDragging] = useState(false) + const progressRef = useRef(null) + // P0 fix:视频比配音短时的「末帧冻结+音频续播」模式。 // 视频调度器播完最后一段会自动 pause + setIsPlaying(false),此时若配音仍在播, // 用虚拟时钟继续推进 currentTime 直到配音时长,期间保持音频播放、视频停在末帧。 @@ -549,9 +553,6 @@ const FrontendPreviewPlayer: React.FC = ({ onPlayTokenChange, ]) - // ── 进度条拖拽 ── - const [isDragging, setIsDragging] = useState(false) - const progressRef = useRef(null) const handleProgressClick = useCallback( (e: React.MouseEvent) => {