chore: refactor points

This commit is contained in:
Michael Zetterberg
2025-01-05 16:23:17 +01:00
parent d2ce9c0d7c
commit 0477d2375b
6 changed files with 33 additions and 127 deletions

View File

@@ -4,53 +4,18 @@ import { getIntl } from "@/i18n"
import styles from "./pointsColumn.module.css"
import type {
NightsColumn,
PointsColumn,
PointsColumnProps,
} from "@/types/components/myPages/points"
import type { PointsColumnProps } from "@/types/components/myPages/points"
export const YourPointsColumn = ({ points }: PointsColumn) =>
PointsColumn({
points,
title: "Your points to spend",
subtitle: "as of today",
})
export const NextLevelPointsColumn = ({ points, subtitle }: PointsColumn) =>
PointsColumn({
points,
title: "Points needed to level up",
subtitle,
})
export const StayOnLevelColumn = ({ points, subtitle }: PointsColumn) =>
PointsColumn({
points,
title: "Points needed to stay on level",
subtitle,
})
export const NextLevelNightsColumn = ({ nights, subtitle }: NightsColumn) =>
PointsColumn({
nights,
title: "Nights needed to level up",
subtitle,
})
async function PointsColumn({
points,
nights,
export async function PointsColumn({
title,
subtitle,
value,
}: PointsColumnProps) {
const intl = await getIntl()
let number = "N/A"
if (typeof points === "number") {
number = intl.formatNumber(points)
} else if (typeof nights === "number") {
number = intl.formatNumber(nights)
if (typeof value === "number") {
number = intl.formatNumber(value)
}
return (
@@ -61,16 +26,14 @@ async function PointsColumn({
textAlign="center"
className={styles.firstRow}
>
{intl.formatMessage({
id: title,
})}
{title}
</Body>
<Title color="white" level="h2" textAlign="center">
{number}
</Title>
{subtitle ? (
<Body color="white" textAlign="center">
{intl.formatMessage({ id: subtitle })}
{subtitle}
</Body>
) : null}
</article>