From a16e30cac58086da50259aeefcfbe78211ea5dd2 Mon Sep 17 00:00:00 2001 From: Fuwn Date: Tue, 30 Apr 2024 17:21:43 -0700 Subject: feat(BadgePreview): simple designer link --- src/lib/User/BadgeWall/BadgePreview.svelte | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) (limited to 'src/lib/User') diff --git a/src/lib/User/BadgeWall/BadgePreview.svelte b/src/lib/User/BadgeWall/BadgePreview.svelte index 4c374a27..fba6e2e5 100644 --- a/src/lib/User/BadgeWall/BadgePreview.svelte +++ b/src/lib/User/BadgeWall/BadgePreview.svelte @@ -61,7 +61,6 @@ }; }); - // generate a tag for the source const classifySource = (source: string) => { let name = source; const sourceLower = source.toLowerCase(); @@ -78,6 +77,24 @@ return `${name}`; }; + + const classifyDesigner = (designer: string) => { + let name = designer; + let userLink = designer; + const designerLower = designer.toLowerCase(); + const anilistUser = designer.match(/https?:\/\/anilist\.co\/user\/([^/]+)\/?/); + + if (anilistUser) { + name = anilistUser[1]; + } else if (designerLower.startsWith('@')) { + name = designer.replace('@', ''); + userLink = `https://anilist.co/user/${name}/`; + } else if (!designerLower.startsWith('http')) { + userLink = `https://anilist.co/user/${name}/`; + } + + return `@${name}`; + }; {#if selectedBadge} @@ -120,7 +137,7 @@ {#if selectedBadge.designer} Designer: - {#if selectedBadge.designer.startsWith('http')} + + {@html classifyDesigner(selectedBadge.designer)}
{/if} -- cgit v1.2.3