diff --git a/web/src/lib/utils.spec.ts b/web/src/lib/utils.spec.ts index 3bc8665279..221fc38568 100644 --- a/web/src/lib/utils.spec.ts +++ b/web/src/lib/utils.spec.ts @@ -74,6 +74,32 @@ describe('utils', () => { expect(url).toContain(asset.id); }); + it('should return original URL for video assets with forceOriginal', () => { + const asset = assetFactory.build({ + originalPath: 'video.mp4', + originalMimeType: 'video/mp4', + type: AssetTypeEnum.Video, + }); + + const url = getAssetUrl({ asset, forceOriginal: true }); + + expect(url).toContain('/original'); + expect(url).toContain(asset.id); + }); + + it('should return thumbnail URL for video assets without forceOriginal', () => { + const asset = assetFactory.build({ + originalPath: 'video.mp4', + originalMimeType: 'video/mp4', + type: AssetTypeEnum.Video, + }); + + const url = getAssetUrl({ asset }); + + expect(url).toContain('/thumbnail'); + expect(url).toContain(asset.id); + }); + it('should return thumbnail URL for static images in shared link even with download and showMetadata permissions', () => { const asset = assetFactory.build({ originalPath: 'image.gif', diff --git a/web/src/lib/utils.ts b/web/src/lib/utils.ts index 8b6665bf94..9d0c32ae94 100644 --- a/web/src/lib/utils.ts +++ b/web/src/lib/utils.ts @@ -200,7 +200,9 @@ const forceUseOriginal = (asset: AssetResponseDto) => { export const targetImageSize = (asset: AssetResponseDto, forceOriginal: boolean) => { if (forceOriginal || get(alwaysLoadOriginalFile) || forceUseOriginal(asset)) { - return isWebCompatibleImage(asset) ? AssetMediaSize.Original : AssetMediaSize.Fullsize; + return asset.type === AssetTypeEnum.Video || isWebCompatibleImage(asset) + ? AssetMediaSize.Original + : AssetMediaSize.Fullsize; } return AssetMediaSize.Preview; };