144 lines
4.2 KiB
TypeScript
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>
|
|
)
|
|
}
|