diff --git a/src/components/event/textNote/ImageDisplay.tsx b/src/components/event/textNote/ImageDisplay.tsx index 9c4f7c1..44257ac 100644 --- a/src/components/event/textNote/ImageDisplay.tsx +++ b/src/components/event/textNote/ImageDisplay.tsx @@ -2,7 +2,7 @@ import { Component, createSignal, Show } from 'solid-js'; import SafeLink from '@/components/utils/SafeLink'; import { useTranslation } from '@/i18n/useTranslation'; -import { fixUrl } from '@/utils/url'; +import { thumbnailUrl } from '@/utils/url'; type ImageDisplayProps = { url: string; @@ -30,7 +30,7 @@ const ImageDisplay: Component = (props) => { {props.url} diff --git a/src/utils/url.test.ts b/src/utils/url.test.ts index 47d639d..ed2fc53 100644 --- a/src/utils/url.test.ts +++ b/src/utils/url.test.ts @@ -2,11 +2,11 @@ import assert from 'assert'; import { describe, it } from 'vitest'; -import { fixUrl } from '@/utils/url'; +import { thumbnailUrl } from '@/utils/url'; -describe('fixUrl', () => { +describe('thumbnailUrl', () => { it('should return an image url for a given imgur.com URL with additional path', () => { - const actual = fixUrl('https://imgur.com/uBf5Qts.jpeg'); + const actual = thumbnailUrl('https://imgur.com/uBf5Qts.jpeg'); const expected = 'https://i.imgur.com/uBf5Qtsl.webp'; assert.deepStrictEqual(actual, expected); }); diff --git a/src/utils/url.ts b/src/utils/url.ts index 94e0acc..f86058e 100644 --- a/src/utils/url.ts +++ b/src/utils/url.ts @@ -1,7 +1,7 @@ export const isImageUrl = (urlString: string): boolean => { try { const url = new URL(urlString); - return /\.(jpeg|jpg|png|gif|webp|apng|svg)$/i.test(url.pathname); + return /\.(jpeg|jpg|png|gif|webp|avif|apng|svg)$/i.test(url.pathname); } catch { return false; } @@ -16,7 +16,10 @@ export const isVideoUrl = (urlString: string): boolean => { } }; -export const fixUrl = (urlString: string): string => { +/** + * Generate a URL of thumbnail for a given URL. + */ +export const thumbnailUrl = (urlString: string): string => { try { const url = new URL(urlString); // Imgur