Merged in fix/LOY-358-SAS-expiry-date (pull request #2813)

fix(LOY-358): Proper SAS tier expiration date check

* fix(LOY-358): Proper SAS tier expiration date check


Approved-by: Erik Tiekstra
This commit is contained in:
Chuma Mcphoy (We Ahead)
2025-09-18 13:39:37 +00:00
parent 948c86479a
commit cc99f26727
4 changed files with 20 additions and 7 deletions

View File

@@ -3,6 +3,7 @@ import { Divider } from "@scandic-hotels/design-system/Divider"
import { Typography } from "@scandic-hotels/design-system/Typography" import { Typography } from "@scandic-hotels/design-system/Typography"
import { getLang } from "@/i18n/serverContext" import { getLang } from "@/i18n/serverContext"
import { getSasTierExpirationDate } from "@/utils/sas"
import styles from "./membershipOverviewCard.module.css" import styles from "./membershipOverviewCard.module.css"
@@ -19,8 +20,9 @@ export default async function SasBoostStatus({
intl, intl,
}: SasBoostStatusProps) { }: SasBoostStatusProps) {
const lang = await getLang() const lang = await getLang()
const tierExpirationDate = getSasTierExpirationDate(sasMembership)
if (!sasMembership.boostedTierExpires || sasMembership.boostedByScandic) { if (!tierExpirationDate || sasMembership.boostedByScandic) {
return null return null
} }
@@ -29,9 +31,7 @@ export default async function SasBoostStatus({
defaultMessage: "Boosted by SAS until {date}", defaultMessage: "Boosted by SAS until {date}",
}, },
{ {
date: dt(sasMembership.boostedTierExpires) date: dt(tierExpirationDate).locale(lang).format("D MMM YYYY"),
.locale(lang)
.format("D MMM YYYY"),
} }
) )

View File

@@ -8,6 +8,7 @@ import { membershipLevels } from "@/constants/membershipLevels"
import MembershipLevelIcon from "@/components/Levels/Icon" import MembershipLevelIcon from "@/components/Levels/Icon"
import { getIntl } from "@/i18n" import { getIntl } from "@/i18n"
import { getSasTierExpirationDate } from "@/utils/sas"
import SasBoostStatus from "./SasBoostStatus" import SasBoostStatus from "./SasBoostStatus"
@@ -38,7 +39,9 @@ export default async function MembershipOverviewCard({
: null : null
const showSasBoostIcon = const showSasBoostIcon =
sasMembership?.boostedTierExpires && !sasMembership.boostedByScandic sasMembership &&
getSasTierExpirationDate(sasMembership) &&
!sasMembership.boostedByScandic
return ( return (
<section className={styles.card} aria-labelledby="membership-level"> <section className={styles.card} aria-labelledby="membership-level">

View File

@@ -17,6 +17,7 @@ import SectionContainer from "@/components/Section/Container"
import SectionHeader from "@/components/Section/Header" import SectionHeader from "@/components/Section/Header"
import SectionLink from "@/components/Section/Link" import SectionLink from "@/components/Section/Link"
import { getIntl } from "@/i18n" import { getIntl } from "@/i18n"
import { getSasTierExpirationDate } from "@/utils/sas"
import { UnlinkSAS } from "./UnlinkSAS" import { UnlinkSAS } from "./UnlinkSAS"
@@ -82,8 +83,7 @@ async function MatchedAccountInfo() {
eurobonusMembership.boostedTier || eurobonusMembership.tier eurobonusMembership.boostedTier || eurobonusMembership.tier
] ]
const sasMembershipNumber = eurobonusMembership.membershipNumber const sasMembershipNumber = eurobonusMembership.membershipNumber
const sasTierExpirationDate = const sasTierExpirationDate = getSasTierExpirationDate(eurobonusMembership)
eurobonusMembership.boostedTierExpires || eurobonusMembership.tierExpires
const scandicLevelName = TIER_TO_FRIEND_MAP[friendsMembership.membershipLevel] const scandicLevelName = TIER_TO_FRIEND_MAP[friendsMembership.membershipLevel]
const scandicExpirationDate = friendsMembership.tierExpirationDate const scandicExpirationDate = friendsMembership.tierExpirationDate

View File

@@ -0,0 +1,10 @@
import type { EurobonusMembership } from "@scandic-hotels/trpc/types/user"
/**
* Get SAS tier expiration date, checking boostedTierExpires first, then falling back to tierExpires
*/
export function getSasTierExpirationDate(
sasMembership: EurobonusMembership
): string | null {
return sasMembership.boostedTierExpires || sasMembership.tierExpires
}