fix: correct OverviewTable createComparison function

This commit is contained in:
Arvid Norlin
2024-05-22 14:18:48 +02:00
parent bd93071e39
commit e565c65a31

View File

@@ -1,6 +1,6 @@
"use client" "use client"
import { useState } from "react" import { Fragment, useState } from "react"
import { Minus } from "react-feather" import { Minus } from "react-feather"
import { Lang } from "@/constants/languages" import { Lang } from "@/constants/languages"
@@ -62,12 +62,10 @@ function OverviewTableTitle({ texts }: OverviewTableTitleProps) {
return ( return (
<Title as="h1" level="h1" weight="semiBold" uppercase> <Title as="h1" level="h1" weight="semiBold" uppercase>
{texts.map(({ text, highlight }, idx) => ( {texts.map(({ text, highlight }, idx) => (
<> <Fragment key={idx}>
<span key={idx} className={highlight ? styles.highlight : ""}> <span className={highlight ? styles.highlight : ""}>{text}</span>
{text}
</span>
{idx < texts.length - 1 && " "} {idx < texts.length - 1 && " "}
</> </Fragment>
))} ))}
</Title> </Title>
) )
@@ -80,37 +78,43 @@ function getLevelByTier(tier: number) {
} }
function createComparison(levelA: ComparisonLevel, levelB: ComparisonLevel) { function createComparison(levelA: ComparisonLevel, levelB: ComparisonLevel) {
const comparedLevels = [levelA, levelB].sort( const unlockedBenefitsA = levelA.benefits.filter(
(a, b) => a.benefits.length - b.benefits.length (benefit) => benefit.unlocked
) )
const unlockedBenefitsB = levelB.benefits.filter(
(benefit) => benefit.unlocked
)
const higherLevelBenefits =
unlockedBenefitsA.length > unlockedBenefitsB.length
? unlockedBenefitsA
: unlockedBenefitsB
return ( return (
<> <>
{comparedLevels[1].benefits {higherLevelBenefits.map((benefit, idx) => {
.filter((benefit) => benefit.unlocked) const aBenefit = levelA.benefits[idx]
.map((benefit, idx) => { const bBenefit = levelB.benefits[idx]
const aBenefit = comparedLevels[0].benefits[idx] return (
const bBenefit = comparedLevels[1].benefits[idx] <BenefitCard
return ( key={benefit.name}
<BenefitCard title={benefit.name}
key={benefit.name} description={benefit.description}
title={benefit.name} comparedValues={{
description={benefit.description} a: {
comparedValues={{ unlocked: aBenefit.unlocked,
a: { value: aBenefit.value,
unlocked: aBenefit.unlocked, valueDetails: aBenefit.valueDetails,
value: aBenefit.value, },
valueDetails: aBenefit.valueDetails, b: {
}, unlocked: bBenefit.unlocked,
b: { value: bBenefit.value,
unlocked: bBenefit.unlocked, valueDetails: bBenefit.valueDetails,
value: bBenefit.value, },
valueDetails: bBenefit.valueDetails, }}
}, />
}} )
/> })}
)
})}
</> </>
) )
} }