diff --git a/client/api/main-page/main-page.types.ts b/client/api/main-page/main-page.types.ts index 01944247..ccf18d92 100644 --- a/client/api/main-page/main-page.types.ts +++ b/client/api/main-page/main-page.types.ts @@ -38,6 +38,7 @@ export interface Card { cardId: null; subtitle: null | string; subtitleColor: string; + dynamicId: string; createdAt: Date; updatedAt: Date; publishedAt: Date; diff --git a/client/components/MainPage/Card/Card.module.css b/client/components/MainPage/Card/Card.module.css index ec3cf778..a0abb1b6 100644 --- a/client/components/MainPage/Card/Card.module.css +++ b/client/components/MainPage/Card/Card.module.css @@ -12,6 +12,7 @@ --CardButtonColor: inherit; --CardButtonBgrColor: transparent; + position: relative; display: flex; flex-direction: column; align-items: flex-start; diff --git a/client/components/MainPage/Card/Card.tsx b/client/components/MainPage/Card/Card.tsx index 07f955ff..efef1598 100644 --- a/client/components/MainPage/Card/Card.tsx +++ b/client/components/MainPage/Card/Card.tsx @@ -1,4 +1,3 @@ -import React from 'react'; import classNames from 'classnames/bind'; import { CardProps } from './Card.types'; @@ -23,6 +22,7 @@ export function Card({ buttonBackground, subtitle, subtitleColor, + dynamicContent }: CardProps) { return ( @@ -44,13 +44,20 @@ export function Card({ {title} } - {subtitle &&
- {subtitle} -
} + { + dynamicContent + ? dynamicContent + : <> - {button &&
- {button} -
} + {subtitle &&
+ {subtitle} +
} + + {button &&
+ {button} +
} + + } ); } diff --git a/client/components/MainPage/Card/Card.types.ts b/client/components/MainPage/Card/Card.types.ts index c3fe86cf..5e0b3f7c 100644 --- a/client/components/MainPage/Card/Card.types.ts +++ b/client/components/MainPage/Card/Card.types.ts @@ -1,3 +1,5 @@ +import { ReactElement } from "react"; + export type CardProps = { title: string; titleColor: string; @@ -11,5 +13,6 @@ export type CardProps = { subtitle: string; subtitleColor: string; invert: boolean; + dynamicContent: ReactElement; key: number; }; diff --git a/client/components/MainPage/Card/CardDynamic/CardTrafficJams.module.css b/client/components/MainPage/Card/CardDynamic/CardTrafficJams.module.css new file mode 100644 index 00000000..ce4e1d91 --- /dev/null +++ b/client/components/MainPage/Card/CardDynamic/CardTrafficJams.module.css @@ -0,0 +1,6 @@ +.CardTrafficJams { + position: absolute; + bottom: .35em; + right: .45em; + font-size: 100px; +} diff --git a/client/components/MainPage/Card/CardDynamic/CardTrafficJams.tsx b/client/components/MainPage/Card/CardDynamic/CardTrafficJams.tsx new file mode 100644 index 00000000..6a472d8b --- /dev/null +++ b/client/components/MainPage/Card/CardDynamic/CardTrafficJams.tsx @@ -0,0 +1,20 @@ +import classNames from 'classnames/bind'; + +import styles from './CardTrafficJams.module.css'; + +const cn = classNames.bind(styles); + +export function CardTrafficJams({ score }) { + return ( + <> + {/* Remove card background */} +