From ec178b42f39db37c210590d436732dcd761c6362 Mon Sep 17 00:00:00 2001 From: 3dtours Date: Wed, 22 Jul 2026 18:28:23 +0700 Subject: [PATCH] =?UTF-8?q?fix:=20hi=E1=BB=83n=20th=E1=BB=8B=20n=C3=BAt=20?= =?UTF-8?q?t=E1=BA=A3i=20v=E1=BB=81=20tr=C3=AAn=20th=C3=B4ng=20b=C3=A1o=20?= =?UTF-8?q?Toast=20cho=20c=E1=BA=A3=20Export=20Panel=20v=C3=A0=20mixdown?= =?UTF-8?q?=20=C4=91a=20k=C3=AAnh=20b=E1=BA=A5t=20=C4=91=E1=BB=93ng=20b?= =?UTF-8?q?=E1=BB=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/static/js/app.jsx | 33 +++++++++++++++++-------------- app/static/js/app.precompiled.js | 33 +++++++++++++++++-------------- app/storage/sonicforge.db | Bin 45056 -> 45056 bytes 3 files changed, 36 insertions(+), 30 deletions(-) diff --git a/app/static/js/app.jsx b/app/static/js/app.jsx index 0476150..c8bbeb3 100644 --- a/app/static/js/app.jsx +++ b/app/static/js/app.jsx @@ -6390,11 +6390,12 @@ const App = () => { const fileId = result.output_file_id || result.output_path?.split('/').pop(); if (fileId) { const downloadUrl = `${API_AUDIO}/download/${fileId}`; - const a = document.createElement('a'); - a.href = downloadUrl; - a.download = fileId; - a.click(); - showToast("Xuất bản âm thanh từ máy chủ hoàn tất!", "success"); + showToast("Xuất bản âm thanh từ máy chủ hoàn tất!", "success", "Tải về", () => { + const a = document.createElement('a'); + a.href = downloadUrl; + a.download = fileId; + a.click(); + }); } } else { throw new Error(result.error || 'Server processing failed'); @@ -6638,20 +6639,22 @@ const App = () => { if (result.success) { const outId = result.output_file_id; const downloadUrl = `${API_AUDIO}/download/${outId}`; - const a = document.createElement('a'); - a.href = downloadUrl; - a.download = `sonicforge-session-${targetRate}hz-${bitDepth}bit.${exportSettings.format}`; - a.click(); - showToast(`Xuất bản âm thanh định dạng ${exportSettings.format.toUpperCase()} thành công!`, "success"); + showToast(`Xuất bản âm thanh định dạng ${exportSettings.format.toUpperCase()} thành công!`, "success", "Tải về", () => { + const a = document.createElement('a'); + a.href = downloadUrl; + a.download = `sonicforge-session-${targetRate}hz-${bitDepth}bit.${exportSettings.format}`; + a.click(); + }); } else { throw new Error(result.error || 'Server encoding failed'); } } catch (transcodeErr) { - showToast(`Lỗi chuyển đổi: ${transcodeErr.message}. Tải dạng WAV thay thế.`, "warning"); - const a = document.createElement('a'); - a.href = url; - a.download = `sonicforge-session-${targetRate}hz-${bitDepth}bit.wav`; - a.click(); + showToast(`Lỗi chuyển đổi: ${transcodeErr.message}.`, "warning", "Tải WAV thay thế", () => { + const a = document.createElement('a'); + a.href = url; + a.download = `sonicforge-session-${targetRate}hz-${bitDepth}bit.wav`; + a.click(); + }); } } else { if (exportSettings.format !== 'wav') { diff --git a/app/static/js/app.precompiled.js b/app/static/js/app.precompiled.js index b9bb597..aaf810c 100644 --- a/app/static/js/app.precompiled.js +++ b/app/static/js/app.precompiled.js @@ -6492,11 +6492,12 @@ const App = () => { const fileId = result.output_file_id || result.output_path?.split('/').pop(); if (fileId) { const downloadUrl = `${API_AUDIO}/download/${fileId}`; - const a = document.createElement('a'); - a.href = downloadUrl; - a.download = fileId; - a.click(); - showToast("Xuất bản âm thanh từ máy chủ hoàn tất!", "success"); + showToast("Xuất bản âm thanh từ máy chủ hoàn tất!", "success", "Tải về", () => { + const a = document.createElement('a'); + a.href = downloadUrl; + a.download = fileId; + a.click(); + }); } } else { throw new Error(result.error || 'Server processing failed'); @@ -6774,20 +6775,22 @@ const App = () => { if (result.success) { const outId = result.output_file_id; const downloadUrl = `${API_AUDIO}/download/${outId}`; - const a = document.createElement('a'); - a.href = downloadUrl; - a.download = `sonicforge-session-${targetRate}hz-${bitDepth}bit.${exportSettings.format}`; - a.click(); - showToast(`Xuất bản âm thanh định dạng ${exportSettings.format.toUpperCase()} thành công!`, "success"); + showToast(`Xuất bản âm thanh định dạng ${exportSettings.format.toUpperCase()} thành công!`, "success", "Tải về", () => { + const a = document.createElement('a'); + a.href = downloadUrl; + a.download = `sonicforge-session-${targetRate}hz-${bitDepth}bit.${exportSettings.format}`; + a.click(); + }); } else { throw new Error(result.error || 'Server encoding failed'); } } catch (transcodeErr) { - showToast(`Lỗi chuyển đổi: ${transcodeErr.message}. Tải dạng WAV thay thế.`, "warning"); - const a = document.createElement('a'); - a.href = url; - a.download = `sonicforge-session-${targetRate}hz-${bitDepth}bit.wav`; - a.click(); + showToast(`Lỗi chuyển đổi: ${transcodeErr.message}.`, "warning", "Tải WAV thay thế", () => { + const a = document.createElement('a'); + a.href = url; + a.download = `sonicforge-session-${targetRate}hz-${bitDepth}bit.wav`; + a.click(); + }); } } else { if (exportSettings.format !== 'wav') { diff --git a/app/storage/sonicforge.db b/app/storage/sonicforge.db index ea6ca2e2c7223cf2ea0d8e240936f0a3f26659da..330f740830e7c0c5190bc5b479cec47e1409582c 100644 GIT binary patch delta 42 ycmZp8z|`=7X@WH4@`*CejLSDBtgU1-H8U}{G}o(TX)v<_$h delta 42 ycmZp8z|`=7X@WH4oQX2djB_?7tgU1-G&C@@FyAa(RmI4vd3KW5m(7!^^GpCxXAkiJ