feat(SW-66, SW-348): search functionality and ui

This commit is contained in:
Simon Emanuelsson
2024-08-28 10:47:57 +02:00
parent b9dbcf7d90
commit af850c90e7
437 changed files with 7663 additions and 9881 deletions
+100
View File
@@ -0,0 +1,100 @@
import { Lang } from "@/constants/languages"
import { membershipLevels } from "@/constants/membershipLevels"
import { MembershipLevel } from "@/utils/user"
import type { IntlFormatters } from "@formatjs/intl"
type BenefitTitle = { title: string }
export type OverviewTableClientProps = {
activeMembership: MembershipLevel | null
}
export type Level = {
level: membershipLevels
name: string
requiredPoints: number
requiredNights?: number
benefits: BenefitTitle[]
}
export type LevelCardProps = {
formatMessage: IntlFormatters["formatMessage"]
lang: Lang
level: Level
}
export type ComparisonLevel = {
level: membershipLevels
name: string
description: string
requirement: string
icon: string
benefits: Benefit[]
}
export type Benefit = {
name: string
description: string
unlocked: boolean
value?: string
valueDetails?: string
}
export type LevelSummaryProps = {
level: ComparisonLevel
showDescription?: boolean
}
export type BenefitCardProps = {
comparedValues: BenefitValueInformation[]
title: string
description: string
}
type BenefitValueInformation = {
unlocked: boolean
value?: string
valueDetails?: string
}
export type BenefitValueProps = {
benefit: BenefitValueInformation
}
export type BenefitListProps = {
levels: ComparisonLevel[]
}
export type MobileColumnHeaderProps = {
column: "A" | "B"
}
export type DesktopSelectColumns = {
column: MobileColumnHeaderProps["column"] | "C"
}
export type LargeTableProps = {
levels: ComparisonLevel[]
activeLevel: membershipLevels | null
Select?: (column: DesktopSelectColumns) => JSX.Element | null
}
export type BenefitTableHeaderProps = {
name: string
description: string
}
export enum overviewTableActionsEnum {
SET_SELECTED_LEVEL_A_MOBILE = "SET_SELECTED_LEVEL_A_MOBILE",
SET_SELECTED_LEVEL_B_MOBILE = "SET_SELECTED_LEVEL_B_MOBILE",
SET_SELECTED_LEVEL_A_DESKTOP = "SET_SELECTED_LEVEL_A_DESKTOP",
SET_SELECTED_LEVEL_B_DESKTOP = "SET_SELECTED_LEVEL_B_DESKTOP",
SET_SELECTED_LEVEL_C_DESKTOP = "SET_SELECTED_LEVEL_C_DESKTOP",
}
export type OverviewTableReducerAction = {
type: overviewTableActionsEnum
payload: ComparisonLevel
}