store 6
This commit is contained in:
@@ -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)
|
||||
}
|
||||
Reference in New Issue
Block a user