diff --git a/src/frontend/ui/tiles/Assets.svelte b/src/frontend/ui/tiles/Assets.svelte index 47ceece4..95e52981 100644 --- a/src/frontend/ui/tiles/Assets.svelte +++ b/src/frontend/ui/tiles/Assets.svelte @@ -64,23 +64,35 @@ async function requestFileAccess() { try { - const handle = await window.showOpenFilePicker(); - const file = await handle[0].getFile(); - const blob = await file.arrayBuffer(); - - const cacheId = await cacheStore.addCacheObject(new Blob([blob], { type: file.type }), { - name: file.name, - contentType: file.type, - }); - if ($projectsStore.activeProject && cacheId) { - const res = await window.apis.projectApi.addCacheObjects($projectsStore.activeProject.id, [ - cacheId, - ]); + const handle = await window.showOpenFilePicker({ multiple: true }); + // let file: any[]; + const assets: { file: any; buffer: any }[] = await Promise.all( + handle.map(async (asset: any) => ({ + file: await asset.getFile(), + buffer: await (await asset.getFile()).arrayBuffer(), + })) + ); - if (!res.success) { - toastStore.trigger({ message: res.data, type: "error" }); + assets.forEach(async (asset: { file: any; buffer: any }) => { + const cacheId = await cacheStore.addCacheObject( + new Blob([asset.buffer], { type: asset.file.type }), + { + name: asset.file.name, + contentType: asset.file.type, + } + ); + // console.log("id: ", cacheId) + if ($projectsStore.activeProject && cacheId) { + const res = await window.apis.projectApi.addCacheObjects( + $projectsStore.activeProject.id, + [cacheId] + ); + + if (!res.success) { + toastStore.trigger({ message: res.data, type: "error" }); + } } - } + }); } catch (error) { console.error(error); }