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:
@@ -3,6 +3,7 @@ import { Divider } from "@scandic-hotels/design-system/Divider"
|
||||
import { Typography } from "@scandic-hotels/design-system/Typography"
|
||||
|
||||
import { getLang } from "@/i18n/serverContext"
|
||||
import { getSasTierExpirationDate } from "@/utils/sas"
|
||||
|
||||
import styles from "./membershipOverviewCard.module.css"
|
||||
|
||||
@@ -19,8 +20,9 @@ export default async function SasBoostStatus({
|
||||
intl,
|
||||
}: SasBoostStatusProps) {
|
||||
const lang = await getLang()
|
||||
const tierExpirationDate = getSasTierExpirationDate(sasMembership)
|
||||
|
||||
if (!sasMembership.boostedTierExpires || sasMembership.boostedByScandic) {
|
||||
if (!tierExpirationDate || sasMembership.boostedByScandic) {
|
||||
return null
|
||||
}
|
||||
|
||||
@@ -29,9 +31,7 @@ export default async function SasBoostStatus({
|
||||
defaultMessage: "Boosted by SAS until {date}",
|
||||
},
|
||||
{
|
||||
date: dt(sasMembership.boostedTierExpires)
|
||||
.locale(lang)
|
||||
.format("D MMM YYYY"),
|
||||
date: dt(tierExpirationDate).locale(lang).format("D MMM YYYY"),
|
||||
}
|
||||
)
|
||||
|
||||
|
||||
@@ -8,6 +8,7 @@ import { membershipLevels } from "@/constants/membershipLevels"
|
||||
|
||||
import MembershipLevelIcon from "@/components/Levels/Icon"
|
||||
import { getIntl } from "@/i18n"
|
||||
import { getSasTierExpirationDate } from "@/utils/sas"
|
||||
|
||||
import SasBoostStatus from "./SasBoostStatus"
|
||||
|
||||
@@ -38,7 +39,9 @@ export default async function MembershipOverviewCard({
|
||||
: null
|
||||
|
||||
const showSasBoostIcon =
|
||||
sasMembership?.boostedTierExpires && !sasMembership.boostedByScandic
|
||||
sasMembership &&
|
||||
getSasTierExpirationDate(sasMembership) &&
|
||||
!sasMembership.boostedByScandic
|
||||
|
||||
return (
|
||||
<section className={styles.card} aria-labelledby="membership-level">
|
||||
|
||||
@@ -17,6 +17,7 @@ import SectionContainer from "@/components/Section/Container"
|
||||
import SectionHeader from "@/components/Section/Header"
|
||||
import SectionLink from "@/components/Section/Link"
|
||||
import { getIntl } from "@/i18n"
|
||||
import { getSasTierExpirationDate } from "@/utils/sas"
|
||||
|
||||
import { UnlinkSAS } from "./UnlinkSAS"
|
||||
|
||||
@@ -82,8 +83,7 @@ async function MatchedAccountInfo() {
|
||||
eurobonusMembership.boostedTier || eurobonusMembership.tier
|
||||
]
|
||||
const sasMembershipNumber = eurobonusMembership.membershipNumber
|
||||
const sasTierExpirationDate =
|
||||
eurobonusMembership.boostedTierExpires || eurobonusMembership.tierExpires
|
||||
const sasTierExpirationDate = getSasTierExpirationDate(eurobonusMembership)
|
||||
|
||||
const scandicLevelName = TIER_TO_FRIEND_MAP[friendsMembership.membershipLevel]
|
||||
const scandicExpirationDate = friendsMembership.tierExpirationDate
|
||||
|
||||
10
apps/scandic-web/utils/sas.ts
Normal file
10
apps/scandic-web/utils/sas.ts
Normal 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
|
||||
}
|
||||
Reference in New Issue
Block a user