diff --git a/components/Blocks/CardsGrid.tsx b/components/Blocks/CardsGrid.tsx index 45a500d20..2158fad35 100644 --- a/components/Blocks/CardsGrid.tsx +++ b/components/Blocks/CardsGrid.tsx @@ -5,15 +5,31 @@ import Grids from "@/components/TempDesignSystem/Grids" import LoyaltyCard from "@/components/TempDesignSystem/LoyaltyCard" import TeaserCard from "@/components/TempDesignSystem/TeaserCard" -import type { CardsGridProps } from "@/types/components/blocks/cardsGrid" +import type { + CardsGridProps, + Columns, +} from "@/types/components/blocks/cardsGrid" import { CardsGridEnum, CardsGridLayoutEnum } from "@/types/enums/cardsGrid" export default function CardsGrid({ cards_grid, firstItem = false, }: CardsGridProps) { - const columns = - cards_grid.layout === CardsGridLayoutEnum.THREE_COLUMNS ? 3 : 2 + let columns: Columns + + switch (cards_grid.layout) { + case CardsGridLayoutEnum.ONE_COLUMN: + columns = 1 + break + case CardsGridLayoutEnum.TWO_COLUMNS: + columns = 2 + break + case CardsGridLayoutEnum.THREE_COLUMNS: + columns = 3 + break + default: + columns = 3 + } return ( diff --git a/components/TempDesignSystem/Grids/Stackable/stackable.module.css b/components/TempDesignSystem/Grids/Stackable/stackable.module.css index 671e0fa6d..c7eb1af94 100644 --- a/components/TempDesignSystem/Grids/Stackable/stackable.module.css +++ b/components/TempDesignSystem/Grids/Stackable/stackable.module.css @@ -16,4 +16,8 @@ .twoColumns { grid-template-columns: repeat(2, 1fr); } + + .oneColumn { + grid-template-columns: 1fr; + } } diff --git a/components/TempDesignSystem/Grids/Stackable/stackable.ts b/components/TempDesignSystem/Grids/Stackable/stackable.ts index 0f5c249f7..9e58bbdb8 100644 --- a/components/TempDesignSystem/Grids/Stackable/stackable.ts +++ b/components/TempDesignSystem/Grids/Stackable/stackable.ts @@ -2,8 +2,10 @@ import { stackableGridVariants } from "./variants" import type { VariantProps } from "class-variance-authority" +import { Columns } from "@/types/components/blocks/cardsGrid" + export interface StackableGridProps extends React.HTMLAttributes, VariantProps { - columns?: 2 | 3 + columns?: Columns } diff --git a/components/TempDesignSystem/Grids/Stackable/variants.ts b/components/TempDesignSystem/Grids/Stackable/variants.ts index fbe93cd7c..e69a0e699 100644 --- a/components/TempDesignSystem/Grids/Stackable/variants.ts +++ b/components/TempDesignSystem/Grids/Stackable/variants.ts @@ -5,6 +5,7 @@ import styles from "./stackable.module.css" export const stackableGridVariants = cva(styles.container, { variants: { columns: { + 1: styles.oneColumn, 2: styles.twoColumns, 3: styles.threeColumns, }, diff --git a/types/components/blocks/cardsGrid.ts b/types/components/blocks/cardsGrid.ts index 5b1566b27..4115cb6e8 100644 --- a/types/components/blocks/cardsGrid.ts +++ b/types/components/blocks/cardsGrid.ts @@ -3,3 +3,5 @@ import { CardsGrid } from "@/types/trpc/routers/contentstack/blocks" export interface CardsGridProps extends Pick { firstItem?: boolean } + +export type Columns = 1 | 2 | 3 diff --git a/types/enums/cardsGrid.ts b/types/enums/cardsGrid.ts index 9fa1d560a..314a26926 100644 --- a/types/enums/cardsGrid.ts +++ b/types/enums/cardsGrid.ts @@ -7,6 +7,7 @@ export namespace CardsGridEnum { } export enum CardsGridLayoutEnum { + ONE_COLUMN = "oneColumnGrid", TWO_COLUMNS = "twoColumnGrid", THREE_COLUMNS = "threeColumnGrid", TWO_PLUS_ONE = "twoPlusOne", // Not sure if this is used?