diff --git a/web/apps/photos/src/services/download/index.ts b/web/apps/photos/src/services/download/index.ts index c654ca887c..9100bc27ca 100644 --- a/web/apps/photos/src/services/download/index.ts +++ b/web/apps/photos/src/services/download/index.ts @@ -492,8 +492,10 @@ async function getRenderableFileURL( : URL.createObjectURL(convertedBlob) : undefined; - let srcURLs: SourceURLs["url"]; + let url: SourceURLs["url"]; let isOriginal: boolean; + let isRenderable: boolean; + let type: SourceURLs["type"] = "normal"; let mimeType: string | undefined; switch (file.metadata.fileType) { @@ -503,18 +505,17 @@ async function getRenderableFileURL( fileBlob, ); const convertedURL = existingOrNewObjectURL(convertedBlob); - srcURLs = convertedURL; + url = convertedURL; isOriginal = convertedURL === originalFileURL; + isRenderable = !!convertedURL; mimeType = convertedBlob?.type; break; } case FILE_TYPE.LIVE_PHOTO: { - srcURLs = await getRenderableLivePhotoURL( - file, - fileBlob, - forceConvert, - ); + url = await getRenderableLivePhotoURL(file, fileBlob, forceConvert); isOriginal = false; + isRenderable = false; + type = "livePhoto"; break; } case FILE_TYPE.VIDEO: { @@ -524,28 +525,21 @@ async function getRenderableFileURL( forceConvert, ); const convertedURL = existingOrNewObjectURL(convertedBlob); - srcURLs = convertedURL; + url = convertedURL; isOriginal = convertedURL === originalFileURL; + isRenderable = !!convertedURL; mimeType = convertedBlob?.type; break; } default: { - srcURLs = originalFileURL; + url = originalFileURL; + isOriginal = true; + isRenderable = false; break; } } - return { - url: srcURLs, - isOriginal, - isRenderable: - file.metadata.fileType !== FILE_TYPE.LIVE_PHOTO && !!srcURLs, - type: - file.metadata.fileType === FILE_TYPE.LIVE_PHOTO - ? "livePhoto" - : "normal", - mimeType, - }; + return { url, isOriginal, isRenderable, type, mimeType }; } async function getRenderableLivePhotoURL(