fix: hiển thị nút tải về trên thông báo Toast cho cả Export Panel và mixdown đa kênh bất đồng bộ

This commit is contained in:
2026-07-22 18:28:23 +07:00
parent 7136cbe904
commit ec178b42f3
3 changed files with 36 additions and 30 deletions
+18 -15
View File
@@ -6390,11 +6390,12 @@ const App = () => {
const fileId = result.output_file_id || result.output_path?.split('/').pop(); const fileId = result.output_file_id || result.output_path?.split('/').pop();
if (fileId) { if (fileId) {
const downloadUrl = `${API_AUDIO}/download/${fileId}`; const downloadUrl = `${API_AUDIO}/download/${fileId}`;
const a = document.createElement('a'); showToast("Xuất bản âm thanh từ máy chủ hoàn tất!", "success", "Tải về", () => {
a.href = downloadUrl; const a = document.createElement('a');
a.download = fileId; a.href = downloadUrl;
a.click(); a.download = fileId;
showToast("Xuất bản âm thanh từ máy chủ hoàn tất!", "success"); a.click();
});
} }
} else { } else {
throw new Error(result.error || 'Server processing failed'); throw new Error(result.error || 'Server processing failed');
@@ -6638,20 +6639,22 @@ const App = () => {
if (result.success) { if (result.success) {
const outId = result.output_file_id; const outId = result.output_file_id;
const downloadUrl = `${API_AUDIO}/download/${outId}`; const downloadUrl = `${API_AUDIO}/download/${outId}`;
const a = document.createElement('a'); showToast(`Xuất bản âm thanh định dạng ${exportSettings.format.toUpperCase()} thành công!`, "success", "Tải về", () => {
a.href = downloadUrl; const a = document.createElement('a');
a.download = `sonicforge-session-${targetRate}hz-${bitDepth}bit.${exportSettings.format}`; a.href = downloadUrl;
a.click(); a.download = `sonicforge-session-${targetRate}hz-${bitDepth}bit.${exportSettings.format}`;
showToast(`Xuất bản âm thanh định dạng ${exportSettings.format.toUpperCase()} thành công!`, "success"); a.click();
});
} else { } else {
throw new Error(result.error || 'Server encoding failed'); throw new Error(result.error || 'Server encoding failed');
} }
} catch (transcodeErr) { } catch (transcodeErr) {
showToast(`Lỗi chuyển đổi: ${transcodeErr.message}. Tải dạng WAV thay thế.`, "warning"); showToast(`Lỗi chuyển đổi: ${transcodeErr.message}.`, "warning", "Tải WAV thay thế", () => {
const a = document.createElement('a'); const a = document.createElement('a');
a.href = url; a.href = url;
a.download = `sonicforge-session-${targetRate}hz-${bitDepth}bit.wav`; a.download = `sonicforge-session-${targetRate}hz-${bitDepth}bit.wav`;
a.click(); a.click();
});
} }
} else { } else {
if (exportSettings.format !== 'wav') { if (exportSettings.format !== 'wav') {
+18 -15
View File
@@ -6492,11 +6492,12 @@ const App = () => {
const fileId = result.output_file_id || result.output_path?.split('/').pop(); const fileId = result.output_file_id || result.output_path?.split('/').pop();
if (fileId) { if (fileId) {
const downloadUrl = `${API_AUDIO}/download/${fileId}`; const downloadUrl = `${API_AUDIO}/download/${fileId}`;
const a = document.createElement('a'); showToast("Xuất bản âm thanh từ máy chủ hoàn tất!", "success", "Tải về", () => {
a.href = downloadUrl; const a = document.createElement('a');
a.download = fileId; a.href = downloadUrl;
a.click(); a.download = fileId;
showToast("Xuất bản âm thanh từ máy chủ hoàn tất!", "success"); a.click();
});
} }
} else { } else {
throw new Error(result.error || 'Server processing failed'); throw new Error(result.error || 'Server processing failed');
@@ -6774,20 +6775,22 @@ const App = () => {
if (result.success) { if (result.success) {
const outId = result.output_file_id; const outId = result.output_file_id;
const downloadUrl = `${API_AUDIO}/download/${outId}`; const downloadUrl = `${API_AUDIO}/download/${outId}`;
const a = document.createElement('a'); showToast(`Xuất bản âm thanh định dạng ${exportSettings.format.toUpperCase()} thành công!`, "success", "Tải về", () => {
a.href = downloadUrl; const a = document.createElement('a');
a.download = `sonicforge-session-${targetRate}hz-${bitDepth}bit.${exportSettings.format}`; a.href = downloadUrl;
a.click(); a.download = `sonicforge-session-${targetRate}hz-${bitDepth}bit.${exportSettings.format}`;
showToast(`Xuất bản âm thanh định dạng ${exportSettings.format.toUpperCase()} thành công!`, "success"); a.click();
});
} else { } else {
throw new Error(result.error || 'Server encoding failed'); throw new Error(result.error || 'Server encoding failed');
} }
} catch (transcodeErr) { } catch (transcodeErr) {
showToast(`Lỗi chuyển đổi: ${transcodeErr.message}. Tải dạng WAV thay thế.`, "warning"); showToast(`Lỗi chuyển đổi: ${transcodeErr.message}.`, "warning", "Tải WAV thay thế", () => {
const a = document.createElement('a'); const a = document.createElement('a');
a.href = url; a.href = url;
a.download = `sonicforge-session-${targetRate}hz-${bitDepth}bit.wav`; a.download = `sonicforge-session-${targetRate}hz-${bitDepth}bit.wav`;
a.click(); a.click();
});
} }
} else { } else {
if (exportSettings.format !== 'wav') { if (exportSettings.format !== 'wav') {
Binary file not shown.