feat: use hardcodded benefits data

This commit is contained in:
Arvid Norlin
2024-05-10 14:09:48 +02:00
parent 9cec1e26d7
commit 7dd60576cc
5 changed files with 100 additions and 19 deletions

View File

@@ -1,9 +1,12 @@
import Link from "next/link"
import { Lang } from "@/constants/languages"
import { serverClient } from "@/lib/trpc/server"
import Title from "@/components/Title"
import levelsData from "../data"
import styles from "./current.module.css"
import { AccountPageComponentProps } from "@/types/components/myPages/myPage/accountPage"
@@ -13,7 +16,20 @@ export default async function CurrentBenefitsBlock({
subtitle,
link,
}: AccountPageComponentProps) {
const benefits = await serverClient().user.benefits.current()
const user = await serverClient().user.get()
// TODO: level should be fetched from the `user` object once available
// TAKE NOTE: we need clarification on how benefits stack from different levels
// in order to determine if a benefit is specific to a level or if it is a cumulative benefit
// we might have to add a new boolean property "exclusive" or similar
const userLevel = 1
const currentLevel = levelsData[Lang.en].levels.find(
(level) => level.tier === userLevel
)
if (!currentLevel) {
// TODO: handle this case?
return null
}
return (
<section className={styles.container}>
@@ -38,13 +54,17 @@ export default async function CurrentBenefitsBlock({
{subtitle && <p className={styles.subtitle}>{subtitle}</p>}
<div className={styles.cardContainer}>
{benefits.map((benefit) => (
<Link href={benefit.href} key={benefit.id} className={styles.card}>
{currentLevel.topBenefits.map((benefit, idx) => (
<Link
href={benefit.href}
key={`${currentLevel}-${idx}`}
className={styles.card}
>
<Title as="h5" level="h3" className={styles.title}>
<span className={styles.value}>{benefit.value}</span>{" "}
{benefit.explanation}
<span className={styles.value}>{benefit.value}</span>
{benefit.explaination ? ` ${benefit.explaination}` : ""}
</Title>
<p className={styles.cardSubtitle}>{benefit.subtitle}</p>
<p className={styles.cardSubtitle}>{benefit.description}</p>
</Link>
))}
</div>

View File

@@ -0,0 +1,19 @@
import { Lang } from "@/constants/languages"
import DA from "./DA.json"
import DE from "./DE.json"
import EN from "./EN.json"
import FI from "./FI.json"
import NO from "./NO.json"
import SV from "./SV.json"
const levelsData = {
[Lang.en]: EN,
[Lang.sv]: SV,
[Lang.no]: NO,
[Lang.fi]: FI,
[Lang.da]: DA,
[Lang.de]: DE,
}
export default levelsData