|
@@ -88,14 +88,17 @@ export const downloadArchive = async (
|
|
|
};
|
|
|
|
|
|
export const downloadFile = async (asset: AssetResponseDto, key?: string) => {
|
|
|
- const filenames = [`${asset.originalFileName}.${getFilenameExtension(asset.originalPath)}`];
|
|
|
+ const assets = [{ filename: `${asset.originalFileName}.${getFilenameExtension(asset.originalPath)}`, id: asset.id }];
|
|
|
if (asset.livePhotoVideoId) {
|
|
|
- filenames.push(`${asset.originalFileName}.mov`);
|
|
|
+ assets.push({
|
|
|
+ filename: `${asset.originalFileName}.mov`,
|
|
|
+ id: asset.livePhotoVideoId,
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
- for (const filename of filenames) {
|
|
|
+ for (const asset of assets) {
|
|
|
try {
|
|
|
- updateDownload(filename, 0);
|
|
|
+ updateDownload(asset.filename, 0);
|
|
|
|
|
|
const { data } = await api.assetApi.downloadFile(
|
|
|
{ id: asset.id, key },
|
|
@@ -103,17 +106,17 @@ export const downloadFile = async (asset: AssetResponseDto, key?: string) => {
|
|
|
responseType: 'blob',
|
|
|
onDownloadProgress: (event: ProgressEvent) => {
|
|
|
if (event.lengthComputable) {
|
|
|
- updateDownload(filename, Math.floor((event.loaded / event.total) * 100));
|
|
|
+ updateDownload(asset.filename, Math.floor((event.loaded / event.total) * 100));
|
|
|
}
|
|
|
},
|
|
|
},
|
|
|
);
|
|
|
|
|
|
- downloadBlob(data, filename);
|
|
|
+ downloadBlob(data, asset.filename);
|
|
|
} catch (e) {
|
|
|
- handleError(e, `Error downloading ${filename}`);
|
|
|
+ handleError(e, `Error downloading ${asset.filename}`);
|
|
|
} finally {
|
|
|
- setTimeout(() => clearDownload(filename), 3_000);
|
|
|
+ setTimeout(() => clearDownload(asset.filename), 3_000);
|
|
|
}
|
|
|
}
|
|
|
};
|