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

View file

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

View file

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