39 lines
1001 B
TypeScript
39 lines
1001 B
TypeScript
import {
|
|
findAvailableRewards,
|
|
getGroupedLabelAndDescription,
|
|
getGroupedRewards,
|
|
} from "@/utils/loyaltyTable"
|
|
|
|
import RewardCard from "./Card"
|
|
|
|
import styles from "./rewardList.module.css"
|
|
|
|
import type { RewardListProps } from "@/types/components/overviewTable"
|
|
|
|
export default function RewardList({ levels }: RewardListProps) {
|
|
const groupedRewards = getGroupedRewards(levels)
|
|
|
|
return Object.values(groupedRewards).map((groupedRewards) => {
|
|
const rewardIdsInGroup = groupedRewards.map((b) => b.reward_id)
|
|
|
|
const { label, description } = getGroupedLabelAndDescription(groupedRewards)
|
|
|
|
const levelRewards = levels.map((level) => {
|
|
return findAvailableRewards(rewardIdsInGroup, level)
|
|
})
|
|
|
|
return (
|
|
<div
|
|
key={levelRewards[0]?.reward_id ?? ""}
|
|
className={styles.rewardCardWrapper}
|
|
>
|
|
<RewardCard
|
|
title={label}
|
|
description={description}
|
|
comparedValues={levelRewards}
|
|
/>
|
|
</div>
|
|
)
|
|
})
|
|
}
|