Feat/lokalise rebuild * chore(lokalise): update translation ids * chore(lokalise): easier to switch between projects * chore(lokalise): update translation ids * . * . * . * . * . * . * chore(lokalise): update translation ids * chore(lokalise): update translation ids * . * . * . * chore(lokalise): update translation ids * chore(lokalise): update translation ids * . * . * chore(lokalise): update translation ids * chore(lokalise): update translation ids * chore(lokalise): new translations * merge * switch to errors for missing id's * merge * sync translations Approved-by: Linus Flood
42 lines
1.1 KiB
TypeScript
42 lines
1.1 KiB
TypeScript
import { useIntl } from "react-intl"
|
|
|
|
import styles from "./levelSummary.module.css"
|
|
|
|
import type { LevelSummaryProps } from "@/types/components/overviewTable"
|
|
|
|
export default function LevelSummary({
|
|
level,
|
|
showDescription = true,
|
|
}: LevelSummaryProps) {
|
|
const intl = useIntl()
|
|
|
|
const pointsMsg: React.ReactNode = level.required_nights
|
|
? intl.formatMessage(
|
|
{
|
|
id: "overviewTable.levelSummary.pointsOrNights",
|
|
defaultMessage:
|
|
"{pointsAmount, number} points or {nightsAmount, number} nights",
|
|
},
|
|
{
|
|
pointsAmount: level.required_points,
|
|
nightsAmount: level.required_nights,
|
|
}
|
|
)
|
|
: intl.formatMessage(
|
|
{
|
|
id: "common.pointsAmountPoints",
|
|
defaultMessage: "{pointsAmount, number} points",
|
|
},
|
|
{ pointsAmount: level.required_points }
|
|
)
|
|
|
|
return (
|
|
<div className={styles.levelSummary}>
|
|
<span className={styles.levelRequirements}>{pointsMsg}</span>
|
|
{showDescription && (
|
|
<p className={styles.levelSummaryText}>{level.description}</p>
|
|
)}
|
|
</div>
|
|
)
|
|
}
|