DONE: fix error where image not showing on digital card, generate letter not working on prod

This commit is contained in:
ISMAIL MASSERAN
2026-07-06 13:24:15 +08:00
parent d06c4701a4
commit 1f62c9dd25
7 changed files with 81 additions and 18 deletions
@@ -14,14 +14,22 @@ export function buildCardDownloadFileName(
export function toProxiedStorageUrl(url: string | null | undefined): string | null | undefined {
if (!url) return url
try {
const parsed = new URL(url, window.location.origin)
if (parsed.pathname.startsWith('/storage/')) {
return `${parsed.pathname}${parsed.search}`
}
} catch {
// Keep original URL when parsing fails.
}
const apiBase = import.meta.env.VITE_API_BASE_URL?.replace(/\/$/, '')
return url
try {
const parsed = new URL(url, apiBase || window.location.origin)
if (!parsed.pathname.startsWith('/storage/')) {
return url
}
// Production serves the SPA from a different host than Laravel storage files.
if (apiBase) {
return `${apiBase}${parsed.pathname}${parsed.search}`
}
// Dev fallback: Vite proxies /storage to the API.
return `${parsed.pathname}${parsed.search}`
} catch {
return url
}
}