Files
web/types/components/overviewTable.ts
2024-09-26 11:52:07 +02:00

68 lines
1.7 KiB
TypeScript

import { MembershipLevel } from "@/constants/membershipLevels"
import { LoyaltyLevel } from "@/server/routers/contentstack/loyaltyLevel/output"
import { Reward } from "@/server/routers/contentstack/reward/output"
export type OverviewTableClientProps = {
activeMembership: MembershipLevel | null
levels: ComparisonLevel[]
}
export type LevelCardProps = {
level: LevelWithRewards
}
export type LevelWithRewards = LoyaltyLevel & { rewards: Reward[] }
export type ComparisonLevel = LevelWithRewards
export type LevelSummaryProps = {
level: ComparisonLevel
showDescription?: boolean
}
export type RewardCardProps = {
comparedValues: (Reward | undefined)[]
title: string
description: string
}
export type RewardValueProps = {
reward?: Reward
}
export type RewardListProps = {
levels: ComparisonLevel[]
}
export type MobileColumnHeaderProps = {
column: "A" | "B"
}
export type DesktopSelectColumns = {
column: MobileColumnHeaderProps["column"] | "C"
}
export type LargeTableProps = {
levels: ComparisonLevel[]
activeLevel: MembershipLevel | null
Select?: (column: DesktopSelectColumns) => JSX.Element | null
}
export type RewardTableHeaderProps = {
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
}