diff --git a/app/src/lib/hooks/useHistory.ts b/app/src/lib/hooks/useHistory.ts index c8d147d9..88f73d91 100644 --- a/app/src/lib/hooks/useHistory.ts +++ b/app/src/lib/hooks/useHistory.ts @@ -33,11 +33,14 @@ export function useExportGeneration() { return useMutation({ mutationFn: async ({ generationId, text }: { generationId: string; text: string }) => { const blob = await apiClient.exportGeneration(generationId); - + // Create safe filename from text - const safeText = text.substring(0, 30).replace(/[^a-z0-9]/gi, '-').toLowerCase(); + const safeText = text + .substring(0, 30) + .replace(/[^a-z0-9]/gi, '-') + .toLowerCase(); const filename = `generation-${safeText}.voicebox.zip`; - + if (isTauri()) { // Use Tauri's native save dialog try { @@ -51,7 +54,7 @@ export function useExportGeneration() { }, ], }); - + if (filePath) { // Write file using Tauri's filesystem API const { writeBinaryFile } = await import('@tauri-apps/plugin-fs'); @@ -81,7 +84,7 @@ export function useExportGeneration() { window.URL.revokeObjectURL(url); document.body.removeChild(a); } - + return blob; }, }); @@ -91,11 +94,14 @@ export function useExportGenerationAudio() { return useMutation({ mutationFn: async ({ generationId, text }: { generationId: string; text: string }) => { const blob = await apiClient.exportGenerationAudio(generationId); - + // Create safe filename from text - const safeText = text.substring(0, 30).replace(/[^a-z0-9]/gi, '-').toLowerCase(); + const safeText = text + .substring(0, 30) + .replace(/[^a-z0-9]/gi, '-') + .toLowerCase(); const filename = `${safeText}.wav`; - + if (isTauri()) { // Use Tauri's native save dialog try { @@ -109,7 +115,7 @@ export function useExportGenerationAudio() { }, ], }); - + if (filePath) { // Write file using Tauri's filesystem API const { writeBinaryFile } = await import('@tauri-apps/plugin-fs'); @@ -139,7 +145,7 @@ export function useExportGenerationAudio() { window.URL.revokeObjectURL(url); document.body.removeChild(a); } - + return blob; }, }); diff --git a/app/src/lib/hooks/useProfiles.ts b/app/src/lib/hooks/useProfiles.ts index d230ee79..6468170c 100644 --- a/app/src/lib/hooks/useProfiles.ts +++ b/app/src/lib/hooks/useProfiles.ts @@ -120,12 +120,12 @@ export function useExportProfile() { return useMutation({ mutationFn: async (profileId: string) => { const blob = await apiClient.exportProfile(profileId); - + // Get profile name for filename const profile = await apiClient.getProfile(profileId); const safeName = profile.name.replace(/[^a-z0-9]/gi, '-').toLowerCase(); const filename = `profile-${safeName}.voicebox.zip`; - + if (isTauri()) { // Use Tauri's native save dialog try { @@ -139,7 +139,7 @@ export function useExportProfile() { }, ], }); - + if (filePath) { // Write file using Tauri's filesystem API const { writeBinaryFile } = await import('@tauri-apps/plugin-fs'); @@ -169,7 +169,7 @@ export function useExportProfile() { window.URL.revokeObjectURL(url); document.body.removeChild(a); } - + return blob; }, }); diff --git a/tauri/src-tauri/gen/Assets.car b/tauri/src-tauri/gen/Assets.car index c24d3c28..2ef2d88a 100644 Binary files a/tauri/src-tauri/gen/Assets.car and b/tauri/src-tauri/gen/Assets.car differ