From f1021e1c5d628c00982a1c41f69e530214ed79f3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=B2=20Maria=20Semprini?= Date: Wed, 28 Jan 2026 01:16:34 +0000 Subject: [PATCH] feat: jxl browser support detection --- web/src/lib/utils/asset-utils.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/web/src/lib/utils/asset-utils.ts b/web/src/lib/utils/asset-utils.ts index 9b5cc4051a33f..151219dc4afb5 100644 --- a/web/src/lib/utils/asset-utils.ts +++ b/web/src/lib/utils/asset-utils.ts @@ -303,9 +303,18 @@ const supportedImageMimeTypes = new Set([ const isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent); // https://stackoverflow.com/a/23522755 if (isSafari) { - supportedImageMimeTypes.add('image/heic').add('image/heif').add('image/jxl'); + supportedImageMimeTypes.add('image/heic').add('image/heif'); } +function checkJxlSupport(): void { + const img = new Image(); + img.addEventListener('load', () => { + supportedImageMimeTypes.add('image/jxl'); + }); + img.src = 'data:image/jxl;base64,/woIAAAMABKIAgC4AF3lEgA='; // Small valid JPEG XL image +} +checkJxlSupport(); + /** * Returns true if the asset is an image supported by web browsers, false otherwise */