fix moshtari code
This commit is contained in:
@@ -74,6 +74,43 @@ function pairHasImage(pair: ThemeImagePair): boolean {
|
||||
return Boolean(pair.light || pair.dark)
|
||||
}
|
||||
|
||||
/** همهٔ اسلاتهای تم خالیاند (رکورد app_banners پوچ که روی legacy سایه انداخته) */
|
||||
export function isThemeBannersEmpty(data: AppBannersValue): boolean {
|
||||
return (
|
||||
!pairHasImage(data.homeAsset) &&
|
||||
!pairHasImage(data.piggyCreate) &&
|
||||
!(data.productsHero ?? []).some(pairHasImage) &&
|
||||
!pairHasImage(data.referral) &&
|
||||
!pairHasImage(data.share) &&
|
||||
!pairHasImage(data.invite)
|
||||
)
|
||||
}
|
||||
|
||||
function mergePair(primary: ThemeImagePair, legacy: ThemeImagePair): ThemeImagePair {
|
||||
return {
|
||||
light: primary.light || legacy.light,
|
||||
dark: primary.dark || legacy.dark,
|
||||
}
|
||||
}
|
||||
|
||||
/** اسلات خالی primary را از legacy پر میکند؛ اسلایدر/محصولات اگر آرایه خالی باشد از legacy میآید */
|
||||
export function mergeAppBannersFromLegacy(
|
||||
primary: AppBannersValue,
|
||||
legacy: AppBannersValue,
|
||||
): AppBannersValue {
|
||||
return {
|
||||
slider: primary.slider.length ? primary.slider : legacy.slider,
|
||||
homeAsset: mergePair(primary.homeAsset, legacy.homeAsset),
|
||||
piggyCreate: mergePair(primary.piggyCreate, legacy.piggyCreate),
|
||||
productsHero: (primary.productsHero ?? []).some(pairHasImage)
|
||||
? primary.productsHero
|
||||
: legacy.productsHero ?? [],
|
||||
referral: mergePair(primary.referral, legacy.referral),
|
||||
share: mergePair(primary.share, legacy.share),
|
||||
invite: mergePair(primary.invite, legacy.invite),
|
||||
}
|
||||
}
|
||||
|
||||
/** آرایهٔ جدید یا سه اسلات قدیمی productsHero1/2/3 */
|
||||
export function normalizeProductsHero(parsed: Record<string, unknown>): ThemeImagePair[] {
|
||||
if (Array.isArray(parsed.productsHero)) {
|
||||
|
||||
Reference in New Issue
Block a user