use AWS for placeholder images in production
This commit is contained in:
parent
9c69db640e
commit
9429ccff53
2 changed files with 19 additions and 10 deletions
|
|
@ -42,10 +42,18 @@ export function getBasePath(): string {
|
|||
|
||||
/**
|
||||
* Gets the placeholder image for a given type and variant
|
||||
* Placeholders are always served locally
|
||||
* Uses AWS S3/CDN in production, local path in development
|
||||
*/
|
||||
export function getPlaceholderImage(type: ResourceType, variant: ImageVariant): string {
|
||||
return `/images/placeholders/placeholder-${type}-${variant}.png`
|
||||
return `${getBasePath()}/placeholders/placeholder-${type}-${variant}.png`
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets a generic placeholder image (weapon-grid variant)
|
||||
* Used as fallback for misc image types that don't have specific placeholders
|
||||
*/
|
||||
export function getGenericPlaceholder(): string {
|
||||
return `${getBasePath()}/placeholders/placeholder-weapon-grid.png`
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -257,7 +265,7 @@ export function getJobSkillIcon(slug: string | undefined): string {
|
|||
* Get accessory square image URL
|
||||
*/
|
||||
export function getAccessoryImage(granblueId: string | undefined): string {
|
||||
if (!granblueId) return '/images/placeholders/placeholder-weapon-grid.png'
|
||||
if (!granblueId) return getGenericPlaceholder()
|
||||
return `${getBasePath()}/accessory-square/${granblueId}.jpg`
|
||||
}
|
||||
|
||||
|
|
@ -376,7 +384,7 @@ export function getArtifactImage(
|
|||
granblueId: string | number | null | undefined,
|
||||
variant: ArtifactImageVariant = 'square'
|
||||
): string {
|
||||
if (!granblueId) return '/images/placeholders/placeholder-weapon-grid.png'
|
||||
if (!granblueId) return getGenericPlaceholder()
|
||||
const directory = `artifact-${variant}`
|
||||
return `${getBasePath()}/${directory}/${granblueId}.jpg`
|
||||
}
|
||||
|
|
@ -387,7 +395,7 @@ export function getArtifactImage(
|
|||
* Get guidebook image URL
|
||||
*/
|
||||
export function getGuidebookImage(granblueId: string | number | undefined): string {
|
||||
if (!granblueId) return '/images/placeholders/placeholder-weapon-grid.png'
|
||||
if (!granblueId) return getGenericPlaceholder()
|
||||
return `${getBasePath()}/guidebooks/book_${granblueId}.png`
|
||||
}
|
||||
|
||||
|
|
@ -395,6 +403,6 @@ export function getGuidebookImage(granblueId: string | number | undefined): stri
|
|||
* Get raid image URL
|
||||
*/
|
||||
export function getRaidImage(slug: string | undefined): string {
|
||||
if (!slug) return '/images/placeholders/placeholder-weapon-grid.png'
|
||||
if (!slug) return getGenericPlaceholder()
|
||||
return `${getBasePath()}/raids/${slug}.png`
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@
|
|||
import type { Job, JobSkill } from '$lib/types/api/entities'
|
||||
import type { JobSkillList } from '$lib/types/api/party'
|
||||
import { getImageBaseUrl } from '$lib/api/adapters/config'
|
||||
import { getGenericPlaceholder } from './images'
|
||||
|
||||
/**
|
||||
* Gets the base path for images
|
||||
|
|
@ -32,7 +33,7 @@ export enum Gender {
|
|||
*/
|
||||
export function getJobPortraitUrl(job: Job | undefined, gender: Gender = Gender.Gran): string {
|
||||
if (!job) {
|
||||
return '/images/placeholders/placeholder-weapon-grid.png'
|
||||
return getGenericPlaceholder()
|
||||
}
|
||||
|
||||
// Convert job name to slug format (lowercase, spaces to hyphens)
|
||||
|
|
@ -48,7 +49,7 @@ export function getJobPortraitUrl(job: Job | undefined, gender: Gender = Gender.
|
|||
*/
|
||||
export function getJobFullImageUrl(job: Job | undefined, gender: Gender = Gender.Gran): string {
|
||||
if (!job) {
|
||||
return '/images/placeholders/placeholder-weapon-grid.png'
|
||||
return getGenericPlaceholder()
|
||||
}
|
||||
|
||||
const genderSuffix = gender === Gender.Djeeta ? 'b' : 'a'
|
||||
|
|
@ -62,7 +63,7 @@ export function getJobFullImageUrl(job: Job | undefined, gender: Gender = Gender
|
|||
*/
|
||||
export function getJobIconUrl(granblueId: string | undefined): string {
|
||||
if (!granblueId) {
|
||||
return '/images/placeholders/placeholder-weapon-grid.png'
|
||||
return getGenericPlaceholder()
|
||||
}
|
||||
|
||||
return `${getBasePath()}/job-icons/${granblueId}.png`
|
||||
|
|
@ -74,7 +75,7 @@ export function getJobIconUrl(granblueId: string | undefined): string {
|
|||
*/
|
||||
export function getJobWideImageUrl(job: Job | undefined, gender: Gender = Gender.Gran): string {
|
||||
if (!job) {
|
||||
return '/images/placeholders/placeholder-weapon-grid.png'
|
||||
return getGenericPlaceholder()
|
||||
}
|
||||
|
||||
const genderSuffix = gender === Gender.Djeeta ? 'b' : 'a'
|
||||
|
|
|
|||
Loading…
Reference in a new issue