From ef08ee1a4c449795f240f9eb44dfb768400d6958 Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Thu, 3 Sep 2026 17:08:21 +0800 Subject: [PATCH 1/2] =?UTF-8?q?fix(clone):=20=E5=85=8B=E9=9A=86=E9=9F=B3?= =?UTF-8?q?=E8=89=B2=E3=80=8C=E5=8E=BB=E9=85=8D=E9=9F=B3=E5=BA=93=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E3=80=8D=E6=94=B9=E4=B8=BA=E8=B7=B3=E8=BD=AC=E5=88=B0?= =?UTF-8?q?=E9=85=8D=E9=9F=B3=E5=BA=93=E7=B4=A0=E6=9D=90Tab=E5=B9=B6?= =?UTF-8?q?=E6=89=93=E5=BC=80=E4=B8=8A=E4=BC=A0=E5=BC=B9=E7=AA=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web/src/components/voice/CloneModal/index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/src/components/voice/CloneModal/index.tsx b/apps/web/src/components/voice/CloneModal/index.tsx index 84044441f..821108d0b 100644 --- a/apps/web/src/components/voice/CloneModal/index.tsx +++ b/apps/web/src/components/voice/CloneModal/index.tsx @@ -297,7 +297,7 @@ const CloneModal: React.FC = ({ open, onClose, onSuccess }) => buttonSize="sm" onClick={() => { handleClose() - navigate("/app/voice-materials") + navigate("/app/voices?tab=material&upload=1") }} > 去配音库上传 -- 2.54.0 From bba22483c85b3f9965700665c340b04d4fd801cc Mon Sep 17 00:00:00 2001 From: xiaoxia Date: Thu, 3 Sep 2026 17:11:37 +0800 Subject: [PATCH 2/2] =?UTF-8?q?fix(voices):=20=E4=BF=AE=E5=A4=8D=20upload?= =?UTF-8?q?=3D1=20=E5=8F=82=E6=95=B0=E6=9C=AA=E6=B8=85=E7=90=86=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=20Tab=20=E5=88=87=E6=8D=A2=E8=A2=AB=E5=BC=BA=E5=88=B6?= =?UTF-8?q?=E5=9B=9E=20material=20=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web/src/pages/voices/VoiceLibrary.tsx | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/apps/web/src/pages/voices/VoiceLibrary.tsx b/apps/web/src/pages/voices/VoiceLibrary.tsx index c2828e2be..9ea4d259a 100755 --- a/apps/web/src/pages/voices/VoiceLibrary.tsx +++ b/apps/web/src/pages/voices/VoiceLibrary.tsx @@ -160,14 +160,18 @@ const VoiceLibrary: React.FC = () => { } = useVoiceUpload({ showToast }) // ── URL 参数自动打开上传弹窗 ──────────────────────────── - const [searchParams] = useSearchParams() + const [searchParams, setSearchParams] = useSearchParams() useEffect(() => { if (searchParams.get("upload") === "1") { setActiveTab("material") setUploadOpen(true) + // 一次性触发器:清理 upload 参数,避免切换 Tab 时重复触发 + const next = new URLSearchParams(searchParams) + next.delete("upload") + setSearchParams(next, { replace: true }) } - }, [searchParams, setActiveTab, setUploadOpen]) + }, [searchParams, setActiveTab, setUploadOpen, setSearchParams]) // ── 切换 Tab 时停止播放 ─────────────────────────────── const handleTabChange = useCallback( -- 2.54.0