"use client" import { Dispatch, SetStateAction, useState } from "react" import { type Key } from "react-aria-components" import { useIntl } from "react-intl" import { Lang } from "@/constants/languages" import Image from "@/components/Image" import Select from "@/components/TempDesignSystem/Form/Select" import levelsData from "./data/EN.json" import BenefitList from "./BenefitList" import LargeTable from "./LargeTable" import LevelSummary from "./LevelSummary" import OverviewTableTitle from "./Title" import styles from "./overviewTable.module.css" import { ComparisonLevel } from "@/types/components/loyalty/blocks" // These should ultimately be fetched from Contentstack const titleTranslations = { [Lang.en]: [ { text: "7 delightful levels", highlight: true }, { text: "of friendship", highlight: false }, ], // TODO: Add translations for the following languages [Lang.da]: [ { text: "7 delightful levels", highlight: true }, { text: "of friendship", highlight: false }, ], [Lang.no]: [ { text: "7 delightful levels", highlight: true }, { text: "of friendship", highlight: false }, ], [Lang.sv]: [ { text: "7 delightful levels", highlight: true }, { text: "of friendship", highlight: false }, ], [Lang.fi]: [ { text: "7 delightful levels", highlight: true }, { text: "of friendship", highlight: false }, ], [Lang.de]: [ { text: "7 delightful levels", highlight: true }, { text: "of friendship", highlight: false }, ], } function getLevelByTier(tier: number) { return levelsData.levels.find( (level) => level.tier === tier ) as ComparisonLevel } export default function OverviewTable() { const intl = useIntl() const [selectedLevelA, setSelectedLevelA] = useState(getLevelByTier(1)) const [selectedLevelB, setSelectedLevelB] = useState(getLevelByTier(2)) const [selectedLevelC, setSelectedLevelC] = useState(getLevelByTier(3)) const defaultLevelA = levelsData.levels.find( (level) => level.tier === selectedLevelA.tier ) as ComparisonLevel const defaultLevelB = levelsData.levels.find( (level) => level.tier === selectedLevelB.tier ) as ComparisonLevel const defaultLevelC = levelsData.levels.find( (level) => level.tier === selectedLevelC.tier ) as ComparisonLevel function handleSelectChange( callback: Dispatch> ) { return (key: Key) => { if (typeof key === "number") { const level = getLevelByTier(key) callback(level) } } } const levelOptions = levelsData.levels.map((level) => ({ label: level.name, value: level.tier, })) return (

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.

{defaultLevelB.name} level.tier === selectedLevelB.tier ) as ComparisonLevel } />
{defaultLevelB.name} level.tier === selectedLevelB.tier ) as ComparisonLevel } />