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 { 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"),
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -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">
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
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