Files
web/components/Loyalty/Blocks/DynamicContent/OverviewTable/index.tsx
2024-05-23 14:40:21 +02:00

144 lines
4.2 KiB
TypeScript

"use client"
import { useState } from "react"
import { _ } from "@/lib/translation"
import CheckCircle from "@/components/Icons/CheckCircle"
import ChevronDown from "@/components/Icons/ChevronDown"
import Image from "@/components/Image"
import Title from "@/components/Title"
import styles from "./overviewTable.module.css"
export default function OverviewTable() {
const options = [
{ value: "a", label: "a" },
{ value: "b", label: "b" },
]
return (
<div className={styles.container}>
<Title
as="h1"
level="h1"
className={styles.title}
weight="semiBold"
uppercase
>
{_("7 delightful levels of friendship")}
</Title>
<div>
<p className={styles.preamble}>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Arcu risus
quis varius quam quisque id diam vel. Rhoncus urna neque viverra
justo. Mattis aliquam faucibus purus in massa. Id cursus metus aliquam
eleifend mi in nulla posuere.
</p>
</div>
<div className={styles.columns}>
<div className={styles.leftColumn} />
<div className={styles.rightColumn} />
<div className={styles.columnHeaderContainer}>
<div className={styles.columnHeader}>
<Select options={options} />
<LevelSummary level={"1"} />
</div>
<div className={styles.columnHeader}>
<Select options={options} />
<LevelSummary level={"2"} />
</div>
</div>
<PerkCard />
<PerkCard />
<PerkCard />
<PerkCard />
</div>
</div>
)
}
type SelectProps = {
options: {
label: string
value: string
}[]
}
function Select({ options }: SelectProps) {
console.log({ options })
return (
<div className={styles.selectContainer}>
<select className={styles.select}>
{options.map((option) => (
<option key={option.label} value={option.value}>
{option.label}
</option>
))}
</select>
<label className={styles.selectLabel} htmlFor="">
{_("Level")}
</label>
<span className={styles.selectChevron}>
<ChevronDown />
</span>
</div>
)
}
function LevelSummary({ level }: { level: string }) {
return (
<div className={styles.levelSummary}>
<Image
src="/_static/icons/loyaltylevels/new-friend.svg"
alt="level"
height={50}
width={100}
/>
<span className={styles.levelRequirements}>10 000p or X nights</span>
<p className={styles.levelSummaryText}>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod
tempor incididunt ut labore et dolore magna aliqua. Arcu risus quis
varius quam quisque id diam vel. Rhoncus urna neque viverra justo.
Mattis aliquam faucibus purus in massa. Id cursus metus aliquam eleifend
mi in nulla posuere.
</p>
</div>
)
}
function PerkCard() {
const [isExpanded, setIsExpanded] = useState(false)
return (
<div className={styles.perkCard}>
<div className={styles.perkInfo}>
<details className={styles.details}>
<summary className={styles.summary}>
<hgroup className={styles.perkCardHeader}>
<Title as="h5" level="h2" className={styles.perkCardTitle}>
title
</Title>
<span className={styles.chevron}>
<ChevronDown />
</span>
</hgroup>
</summary>
<p className={styles.perkCardDescription}>
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do
eiusmod tempor incididunt ut labore et dolore magna aliqua. Sed
adipiscing diam donec adipiscing tristique risus nec feugiat.
</p>
</details>
</div>
<div className={styles.perkComparison}>
<div className={styles.comparisonItem}>
<CheckCircle />
</div>
<div className={styles.comparisonItem}>
<CheckCircle />
</div>
</div>
</div>
)
}