fix external link URLs in db detail pages

This commit is contained in:
Justin Edmund 2025-12-15 18:49:18 -08:00
parent 0aaf93e573
commit 2ace9590ab
3 changed files with 66 additions and 36 deletions

View file

@ -27,6 +27,12 @@
import DetailsContainer from '$lib/components/ui/DetailsContainer.svelte'
import DetailItem from '$lib/components/ui/DetailItem.svelte'
import { getCharacterImage } from '$lib/utils/images'
import {
buildWikiEnUrl,
buildWikiJaUrl,
buildGamewithUrl,
buildKamigameUrl
} from '$lib/utils/external-links'
// Types
import type { PageData } from './$types'
@ -220,36 +226,40 @@
<DetailsContainer title="Links">
<DetailItem label="Wiki (EN)">
{#if character.wiki?.en}
<a href={character.wiki.en} target="_blank" rel="noopener noreferrer" class="external-link">
{character.wiki.en}
{@const url = buildWikiEnUrl(character.wiki?.en)}
{#if url}
<a href={url} target="_blank" rel="noopener noreferrer" class="external-link">
{url}
</a>
{:else}
<span class="empty-value"></span>
{/if}
</DetailItem>
<DetailItem label="Wiki (JP)">
{#if character.wiki?.ja}
<a href={character.wiki.ja} target="_blank" rel="noopener noreferrer" class="external-link">
{character.wiki.ja}
{@const url = buildWikiJaUrl(character.wiki?.ja)}
{#if url}
<a href={url} target="_blank" rel="noopener noreferrer" class="external-link">
{url}
</a>
{:else}
<span class="empty-value"></span>
{/if}
</DetailItem>
<DetailItem label="Gamewith">
{#if character.gamewith}
<a href={character.gamewith} target="_blank" rel="noopener noreferrer" class="external-link">
{character.gamewith}
{@const url = buildGamewithUrl(character.gamewith)}
{#if url}
<a href={url} target="_blank" rel="noopener noreferrer" class="external-link">
{url}
</a>
{:else}
<span class="empty-value"></span>
{/if}
</DetailItem>
<DetailItem label="Kamigame">
{#if character.kamigame}
<a href={character.kamigame} target="_blank" rel="noopener noreferrer" class="external-link">
{character.kamigame}
{@const url = buildKamigameUrl(character.kamigame, 'character')}
{#if url}
<a href={url} target="_blank" rel="noopener noreferrer" class="external-link">
{url}
</a>
{:else}
<span class="empty-value"></span>

View file

@ -28,6 +28,12 @@
import DetailsContainer from '$lib/components/ui/DetailsContainer.svelte'
import DetailItem from '$lib/components/ui/DetailItem.svelte'
import { getSummonImage } from '$lib/utils/images'
import {
buildWikiEnUrl,
buildWikiJaUrl,
buildGamewithUrl,
buildKamigameUrl
} from '$lib/utils/external-links'
// Types
import type { PageData } from './$types'
@ -219,36 +225,40 @@
<DetailsContainer title="Links">
<DetailItem label="Wiki (EN)">
{#if summon.wiki?.en}
<a href={summon.wiki.en} target="_blank" rel="noopener noreferrer" class="external-link">
{summon.wiki.en}
{@const url = buildWikiEnUrl(summon.wiki?.en)}
{#if url}
<a href={url} target="_blank" rel="noopener noreferrer" class="external-link">
{url}
</a>
{:else}
<span class="empty-value"></span>
{/if}
</DetailItem>
<DetailItem label="Wiki (JP)">
{#if summon.wiki?.ja}
<a href={summon.wiki.ja} target="_blank" rel="noopener noreferrer" class="external-link">
{summon.wiki.ja}
{@const url = buildWikiJaUrl(summon.wiki?.ja)}
{#if url}
<a href={url} target="_blank" rel="noopener noreferrer" class="external-link">
{url}
</a>
{:else}
<span class="empty-value"></span>
{/if}
</DetailItem>
<DetailItem label="Gamewith">
{#if summon.gamewith}
<a href={summon.gamewith} target="_blank" rel="noopener noreferrer" class="external-link">
{summon.gamewith}
{@const url = buildGamewithUrl(summon.gamewith)}
{#if url}
<a href={url} target="_blank" rel="noopener noreferrer" class="external-link">
{url}
</a>
{:else}
<span class="empty-value"></span>
{/if}
</DetailItem>
<DetailItem label="Kamigame">
{#if summon.kamigame}
<a href={summon.kamigame} target="_blank" rel="noopener noreferrer" class="external-link">
{summon.kamigame}
{@const url = buildKamigameUrl(summon.kamigame, 'summon')}
{#if url}
<a href={url} target="_blank" rel="noopener noreferrer" class="external-link">
{url}
</a>
{:else}
<span class="empty-value"></span>

View file

@ -28,6 +28,12 @@
import DetailsContainer from '$lib/components/ui/DetailsContainer.svelte'
import DetailItem from '$lib/components/ui/DetailItem.svelte'
import { getWeaponGridImage, getWeaponImage as getWeaponImageUrl } from '$lib/utils/images'
import {
buildWikiEnUrl,
buildWikiJaUrl,
buildGamewithUrl,
buildKamigameUrl
} from '$lib/utils/external-links'
// Types
import type { PageData } from './$types'
@ -212,36 +218,40 @@
<DetailsContainer title="Links">
<DetailItem label="Wiki (EN)">
{#if weapon.wiki?.en}
<a href={weapon.wiki.en} target="_blank" rel="noopener noreferrer" class="external-link">
{weapon.wiki.en}
{@const url = buildWikiEnUrl(weapon.wiki?.en)}
{#if url}
<a href={url} target="_blank" rel="noopener noreferrer" class="external-link">
{url}
</a>
{:else}
<span class="empty-value"></span>
{/if}
</DetailItem>
<DetailItem label="Wiki (JP)">
{#if weapon.wiki?.ja}
<a href={weapon.wiki.ja} target="_blank" rel="noopener noreferrer" class="external-link">
{weapon.wiki.ja}
{@const url = buildWikiJaUrl(weapon.wiki?.ja)}
{#if url}
<a href={url} target="_blank" rel="noopener noreferrer" class="external-link">
{url}
</a>
{:else}
<span class="empty-value"></span>
{/if}
</DetailItem>
<DetailItem label="Gamewith">
{#if weapon.gamewith}
<a href={weapon.gamewith} target="_blank" rel="noopener noreferrer" class="external-link">
{weapon.gamewith}
{@const url = buildGamewithUrl(weapon.gamewith)}
{#if url}
<a href={url} target="_blank" rel="noopener noreferrer" class="external-link">
{url}
</a>
{:else}
<span class="empty-value"></span>
{/if}
</DetailItem>
<DetailItem label="Kamigame">
{#if weapon.kamigame}
<a href={weapon.kamigame} target="_blank" rel="noopener noreferrer" class="external-link">
{weapon.kamigame}
{@const url = buildKamigameUrl(weapon.kamigame, 'weapon', weapon.rarity)}
{#if url}
<a href={url} target="_blank" rel="noopener noreferrer" class="external-link">
{url}
</a>
{:else}
<span class="empty-value"></span>