This commit is contained in:
2026-06-13 12:20:11 +03:30
parent 68be4fd5a1
commit f7ba6963ef
10 changed files with 236 additions and 267 deletions
+51
View File
@@ -0,0 +1,51 @@
import defaultImg from '@/assets/img/defaultAbshodeh.svg'
import goyImg from '@/assets/img/goyImg.svg'
import mokaabImg from '@/assets/img/mokaabImg.svg'
import sekkeImg from '@/assets/img/sekkeImg.svg'
import parsianImg from '@/assets/img/parsianImg.svg'
import venusImg from '@/assets/img/venousImg.svg'
export type ProductImageSource = {
file?: { src?: string | null } | null
group_type?: string | null
} | null | undefined
function isUsableImageSrc(src?: string | null): boolean {
if (!src) return false
const value = src.trim()
return value !== '' && value !== 'null' && value !== 'undefined'
}
export function getProductFallbackImage(product?: ProductImageSource): string {
const type = (product?.group_type ?? '').trim()
if (!type) return defaultImg
const exactMap: Record<string, string> = {
گوی: goyImg,
مکعب: mokaabImg,
سکه: sekkeImg,
'شمش ونوس': venusImg,
'سکه پارسیان': parsianImg,
شمش: defaultImg,
آبشده: defaultImg,
}
if (exactMap[type]) return exactMap[type]
if (type.includes('پارسیان')) return parsianImg
if (type.includes('ونوس')) return venusImg
if (type.includes('گوی')) return goyImg
if (type.includes('مکعب')) return mokaabImg
if (type.includes('سکه')) return sekkeImg
if (type.includes('شمش')) return defaultImg
return defaultImg
}
export function resolveProductImageSrc(product?: ProductImageSource): string {
const remoteSrc = product?.file?.src
if (isUsableImageSrc(remoteSrc)) {
return remoteSrc!.trim()
}
return getProductFallbackImage(product)
}