From 0d59a6d2995b4119865271ed1908ede0bb96497c Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Mon, 9 May 2022 18:19:38 +0200 Subject: refactor: rewrite DescriptionList and Meta components The meta can have different layout. The previous implementation was not enough to easily change the layout. Also, I prefer to restrict the meta types and it prevents me to repeat myself for the labels. --- src/components/organisms/layout/overview.tsx | 41 ++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 6 deletions(-) (limited to 'src/components/organisms/layout/overview.tsx') diff --git a/src/components/organisms/layout/overview.tsx b/src/components/organisms/layout/overview.tsx index 42d0431..55ad0b5 100644 --- a/src/components/organisms/layout/overview.tsx +++ b/src/components/organisms/layout/overview.tsx @@ -1,13 +1,33 @@ import ResponsiveImage, { type ResponsiveImageProps, } from '@components/molecules/images/responsive-image'; -import Meta, { type MetaMap } from '@components/molecules/layout/meta'; +import Meta, { type MetaData } from '@components/molecules/layout/meta'; import { FC } from 'react'; import styles from './overview.module.scss'; +export type OverviewMeta = Pick< + MetaData, + | 'creation' + | 'license' + | 'popularity' + | 'repositories' + | 'technologies' + | 'update' +>; + export type OverviewProps = { + /** + * Set additional classnames to the overview wrapper. + */ + className?: string; + /** + * The overview cover. + */ cover?: Pick; - meta: MetaMap; + /** + * The overview meta. + */ + meta: OverviewMeta; }; /** @@ -15,17 +35,26 @@ export type OverviewProps = { * * Render an overview. */ -const Overview: FC = ({ cover, meta }) => { +const Overview: FC = ({ className = '', cover, meta }) => { + const { technologies, ...remainingMeta } = meta; + const metaModifier = technologies ? styles['meta--has-techno'] : ''; + return ( -
+
{cover && ( )} - +
); }; -- cgit v1.2.3