diff --git a/src/routes/(app)/database/raids/[slug]/+page.svelte b/src/routes/(app)/database/raids/[slug]/+page.svelte
index 17080455..473cb6e9 100644
--- a/src/routes/(app)/database/raids/[slug]/+page.svelte
+++ b/src/routes/(app)/database/raids/[slug]/+page.svelte
@@ -14,12 +14,7 @@
import DatabasePageHeader from '$lib/components/database/DatabasePageHeader.svelte'
import type { PageData } from './$types'
import type { ImageItem } from '$lib/features/database/detail/tabs/EntityImagesTab.svelte'
-
- // CDN base URLs for raid images
- const ICON_BASE_URL = 'https://prd-game-a-granbluefantasy.akamaized.net/assets_en/img/sp/assets/enemy/m'
- const THUMBNAIL_BASE_URL = 'https://prd-game-a1-granbluefantasy.akamaized.net/assets_en/img/sp/assets/summon/qm'
- const LOBBY_BASE_URL = 'https://prd-game-a1-granbluefantasy.akamaized.net/assets_en/img/sp/quest/assets/lobby'
- const BACKGROUND_BASE_URL = 'https://prd-game-a-granbluefantasy.akamaized.net/assets_en/img/sp/quest/assets/treasureraid'
+ import { getRaidImage, getRaidCdnImage, type RaidImageVariant } from '$lib/utils/images'
function displayName(input: any): string {
if (!input) return '—'
@@ -77,30 +72,10 @@
}
}
- // Get icon image URL
- function getIconUrl(enemyId: number): string {
- return `${ICON_BASE_URL}/${enemyId}.png`
- }
-
- // Get thumbnail image URL
- function getThumbnailUrl(summonId: number): string {
- return `${THUMBNAIL_BASE_URL}/${summonId}_high.png`
- }
-
- // Get lobby image URL (quest_id with "1" appended)
- function getLobbyUrl(questId: number): string {
- return `${LOBBY_BASE_URL}/${questId}1.png`
- }
-
- // Get background image URL
- function getBackgroundUrl(questId: number): string {
- return `${BACKGROUND_BASE_URL}/${questId}/raid_image_new.png`
- }
-
- // Get header image - prefer thumbnail, fallback to icon
+ // Get header image - use local raid-thumbnail, fallback to icon from CDN
const headerImage = $derived.by(() => {
- if (raid?.summon_id) return getThumbnailUrl(raid.summon_id)
- if (raid?.enemy_id) return getIconUrl(raid.enemy_id)
+ if (raid?.slug) return getRaidImage(raid.slug, 'thumbnail')
+ if (raid?.enemy_id) return getRaidCdnImage('icon', raid.enemy_id)
return ''
})
@@ -116,7 +91,7 @@
return sizes
})
- // Generate image items for raid
+ // Generate image items for raid (using CDN URLs for the images tab)
const raidImages = $derived.by((): ImageItem[] => {
if (!raid) return []
@@ -125,7 +100,7 @@
// Icon image from enemy
if (raid.enemy_id) {
images.push({
- url: getIconUrl(raid.enemy_id),
+ url: getRaidCdnImage('icon', raid.enemy_id),
label: 'Icon',
variant: 'icon'
})
@@ -134,7 +109,7 @@
// Thumbnail image from summon
if (raid.summon_id) {
images.push({
- url: getThumbnailUrl(raid.summon_id),
+ url: getRaidCdnImage('thumbnail', raid.summon_id),
label: 'Thumbnail',
variant: 'thumbnail'
})
@@ -143,12 +118,12 @@
// Lobby and background images from quest
if (raid.quest_id) {
images.push({
- url: getLobbyUrl(raid.quest_id),
+ url: getRaidCdnImage('lobby', raid.quest_id),
label: 'Lobby',
variant: 'lobby'
})
images.push({
- url: getBackgroundUrl(raid.quest_id),
+ url: getRaidCdnImage('background', raid.quest_id),
label: 'Background',
variant: 'background'
})
@@ -203,8 +178,6 @@
type="raid"
item={raid}
image={headerImage}
- showEdit={canEdit}
- {editUrl}
{currentTab}
onTabChange={handleTabChange}
onDownloadAllImages={canEdit ? handleDownloadAllImages : undefined}
@@ -218,9 +191,6 @@
-
-
-
{#if raid.element !== undefined && raid.element !== null}
@@ -230,6 +200,12 @@
+
+
+
+
+
+
{#if raid.group}