diff --git a/tauri/src/platform/filesystem.ts b/tauri/src/platform/filesystem.ts index e37b4d18..fc5083b9 100644 --- a/tauri/src/platform/filesystem.ts +++ b/tauri/src/platform/filesystem.ts @@ -10,9 +10,20 @@ export const tauriFilesystem: PlatformFilesystem = { }); if (filePath) { - const { writeBinaryFile } = await import('@tauri-apps/plugin-fs'); + const resolvedPath = + typeof filePath === 'string' + ? filePath + : filePath && typeof filePath === 'object' && 'path' in filePath + ? (filePath as { path: string }).path + : ''; + + if (!resolvedPath) { + throw new Error('Failed to resolve save path'); + } + + const { writeFile } = await import('@tauri-apps/plugin-fs'); const arrayBuffer = await blob.arrayBuffer(); - await writeBinaryFile(filePath, new Uint8Array(arrayBuffer)); + await writeFile(resolvedPath, new Uint8Array(arrayBuffer)); } } catch (error) { console.error('Failed to use Tauri dialog, falling back to browser download:', error);