5180 fichiers 38.5 Mo 0 téléchargements 563 vues mis à jour il y a 8 heures ui
nitro-v36-with-renderer-v36 / src / components / catalog / views / page / layout / clubPurchase.helpers.ts
clubPurchase.helpers.ts 1.5 Ko Télécharger le fichier
export interface ClubOfferLike {
    offerId: number;
    vip: boolean;
}

export interface ClubMembershipLike {
    clubDays: number;
    clubPeriods: number;
    isVip: boolean;
}

// The loyalty page sells the same club offers as the vip page, priced in the loyalty currency.
export const isVipPurchaseLayout = (layoutCode: string): boolean => layoutCode === 'vip_buy' || layoutCode === 'loyalty_vip_buy';

/** AIR's offer window per club page: club_buy 0, vip_buy 1, loyalty_vip_buy 6; any other page asks as club_buy. */
export const clubOffersWindowId = (layoutCode: string): number => {
    switch (layoutCode) {
        case 'vip_buy':
            return 1;
        case 'loyalty_vip_buy':
            return 6;
        default:
            return 0;
    }
};

export const groupClubOffers = <TOffer extends ClubOfferLike>(layoutCode: string, offers: readonly TOffer[]) => {
    const vip = offers.filter((offer) => offer.vip);
    const hc = isVipPurchaseLayout(layoutCode) ? [] : offers.filter((offer) => !offer.vip);

    return { hc, vip, visible: [...hc, ...vip] };
};

export const getClubMembershipSummary = (membership: ClubMembershipLike | null) => {
    if (!membership) return { active: false, tier: 'none' as const, totalDays: 0 };

    const totalDays = Math.max(0, membership.clubPeriods) * 31 + Math.max(0, membership.clubDays);

    if (!totalDays) return { active: false, tier: 'none' as const, totalDays: 0 };

    return {
        active: true,
        tier: membership.isVip ? ('vip' as const) : ('hc' as const),
        totalDays
    };
};
15Sujets
1Dépôts
20Membres
4En ligne
Profile
Inscrit
Dernière visite
Messages
0
Votes positifs
0
Votes négatifs
0

Nous utilisons des cookies pour assurer le bon fonctionnement du site et améliorer votre expérience. en savoir plus

Autoriser