feat(WEB-220): label translations
This commit is contained in:
@@ -1,13 +1,13 @@
|
||||
import { _ } from "@/lib/translation"
|
||||
|
||||
import Title from "@/components/TempDesignSystem/Text/Title"
|
||||
import { getIntl } from "@/i18n"
|
||||
|
||||
import styles from "./howItWorks.module.css"
|
||||
|
||||
export default function HowItWorks() {
|
||||
export default async function HowItWorks() {
|
||||
const { formatMessage } = await getIntl()
|
||||
return (
|
||||
<section className={styles.container}>
|
||||
<Title level="h3">{_("How it works Placeholder")}</Title>
|
||||
<Title level="h3">{formatMessage({ id: "How it works" })}</Title>
|
||||
</section>
|
||||
)
|
||||
}
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
import { useParams } from "next/navigation"
|
||||
import { Check } from "react-feather"
|
||||
import { useIntl } from "react-intl"
|
||||
|
||||
import { Lang } from "@/constants/languages"
|
||||
import { _ } from "@/lib/translation"
|
||||
|
||||
import Image from "@/components/Image"
|
||||
import Button from "@/components/TempDesignSystem/Button"
|
||||
@@ -18,31 +18,38 @@ import styles from "./loyaltyLevels.module.css"
|
||||
import type { Level, LevelCardProps } from "@/types/components/loyalty/blocks"
|
||||
|
||||
export default function LoyaltyLevels() {
|
||||
const { lang } = useParams()
|
||||
const params = useParams()
|
||||
const lang = params.lang as Lang
|
||||
const { formatMessage } = useIntl()
|
||||
|
||||
const { levels } = levelsData[lang as Lang]
|
||||
const { levels } = levelsData[lang]
|
||||
return (
|
||||
<section className={styles.container}>
|
||||
<div className={styles.cardContainer}>
|
||||
{levels.map((level: Level) => (
|
||||
<LevelCard key={level.tier} level={level} />
|
||||
<LevelCard
|
||||
key={level.tier}
|
||||
formatMessage={formatMessage}
|
||||
lang={lang}
|
||||
level={level}
|
||||
/>
|
||||
))}
|
||||
</div>
|
||||
<div className={styles.buttonContainer}>
|
||||
<Button intent="primary" asChild>
|
||||
<Link href={"/compare-all-levels"}>{_("Compare all levels")}</Link>
|
||||
<Link href={`/${lang}/compare-all-levels`}>
|
||||
{formatMessage({ id: "Compare all levels" })}
|
||||
</Link>
|
||||
</Button>
|
||||
</div>
|
||||
</section>
|
||||
)
|
||||
}
|
||||
|
||||
function LevelCard({ level }: LevelCardProps) {
|
||||
const { lang } = useParams()
|
||||
|
||||
function LevelCard({ formatMessage, lang, level }: LevelCardProps) {
|
||||
const pointsString = `${level.requiredPoints.toLocaleString(lang)}p`
|
||||
const qualifications = level.requiredNights
|
||||
? `${pointsString} ${_("or")} ${level.requiredNights} ${_("nights")}`
|
||||
? `${pointsString} ${formatMessage({ id: "or" })} ${level.requiredNights} ${formatMessage({ id: "nights" })}`
|
||||
: pointsString
|
||||
return (
|
||||
<article className={styles.card}>
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
import { Dispatch, SetStateAction, useState } from "react"
|
||||
import { type Key } from "react-aria-components"
|
||||
import { useIntl } from "react-intl"
|
||||
|
||||
import { Lang } from "@/constants/languages"
|
||||
import { _ } from "@/lib/translation"
|
||||
|
||||
import Select from "@/components/TempDesignSystem/Form/Select"
|
||||
|
||||
@@ -53,6 +53,7 @@ function getLevelByTier(tier: number) {
|
||||
}
|
||||
|
||||
export default function OverviewTable() {
|
||||
const intl = useIntl()
|
||||
const [selectedLevelA, setSelectedLevelA] = useState(getLevelByTier(1))
|
||||
const [selectedLevelB, setSelectedLevelB] = useState(getLevelByTier(2))
|
||||
const [selectedLevelC, setSelectedLevelC] = useState(getLevelByTier(3))
|
||||
@@ -89,8 +90,8 @@ export default function OverviewTable() {
|
||||
<div className={styles.columnHeaderContainer}>
|
||||
<div className={styles.columnHeader}>
|
||||
<Select
|
||||
name={"benefitA"}
|
||||
label={"Level"}
|
||||
name="benefitA"
|
||||
label={intl.formatMessage({ id: "Level" })}
|
||||
items={levelOptions}
|
||||
defaultSelectedKey={selectedLevelA.tier}
|
||||
onSelect={handleSelectChange(setSelectedLevelA)}
|
||||
@@ -105,8 +106,8 @@ export default function OverviewTable() {
|
||||
</div>
|
||||
<div className={styles.columnHeader}>
|
||||
<Select
|
||||
name={"benefitB"}
|
||||
label={"Level"}
|
||||
name="benefitB"
|
||||
label={intl.formatMessage({ id: "Level" })}
|
||||
items={levelOptions}
|
||||
defaultSelectedKey={selectedLevelB.tier}
|
||||
onSelect={handleSelectChange(setSelectedLevelB)}
|
||||
@@ -126,8 +127,8 @@ export default function OverviewTable() {
|
||||
<div className={styles.columnHeaderContainer}>
|
||||
<div className={styles.columnHeader}>
|
||||
<Select
|
||||
name={"benefitA"}
|
||||
label={"Level"}
|
||||
name="benefitA"
|
||||
label={intl.formatMessage({ id: "Level" })}
|
||||
items={levelOptions}
|
||||
defaultSelectedKey={selectedLevelA.tier}
|
||||
onSelect={handleSelectChange(setSelectedLevelA)}
|
||||
@@ -142,8 +143,8 @@ export default function OverviewTable() {
|
||||
</div>
|
||||
<div className={styles.columnHeader}>
|
||||
<Select
|
||||
name={"benefitB"}
|
||||
label={"Level"}
|
||||
name="benefitB"
|
||||
label={intl.formatMessage({ id: "Level" })}
|
||||
items={levelOptions}
|
||||
defaultSelectedKey={selectedLevelB.tier}
|
||||
onSelect={handleSelectChange(setSelectedLevelB)}
|
||||
@@ -158,8 +159,8 @@ export default function OverviewTable() {
|
||||
</div>
|
||||
<div className={styles.columnHeader}>
|
||||
<Select
|
||||
name={"benefitC"}
|
||||
label={"Level"}
|
||||
name="benefitC"
|
||||
label={intl.formatMessage({ id: "Level" })}
|
||||
items={levelOptions}
|
||||
defaultSelectedKey={selectedLevelC.tier}
|
||||
onSelect={handleSelectChange(setSelectedLevelC)}
|
||||
|
||||
Reference in New Issue
Block a user