aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/organisms/layout/overview.tsx
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2023-10-10 19:37:51 +0200
committerArmand Philippot <git@armandphilippot.com>2023-11-11 18:14:41 +0100
commitc87c615b5866b8a8f361eeb0764bfdea85740e90 (patch)
treec27bda05fd96bbe3154472e170ba1abd5f9ea499 /src/components/organisms/layout/overview.tsx
parent15522ec9146f6f1956620355c44dea2a6a75b67c (diff)
refactor(components): replace Meta component with MetaList
It removes items complexity by allowing consumers to use any label/value association. Translations should also be defined by the consumer. Each item can now be configured separately (borders, layout...).
Diffstat (limited to 'src/components/organisms/layout/overview.tsx')
-rw-r--r--src/components/organisms/layout/overview.tsx24
1 files changed, 5 insertions, 19 deletions
diff --git a/src/components/organisms/layout/overview.tsx b/src/components/organisms/layout/overview.tsx
index 8af58ec..ede2627 100644
--- a/src/components/organisms/layout/overview.tsx
+++ b/src/components/organisms/layout/overview.tsx
@@ -1,19 +1,9 @@
import NextImage, { type ImageProps as NextImageProps } from 'next/image';
import type { FC } from 'react';
import { Figure } from '../../atoms';
-import { Meta, type MetaData } from '../../molecules';
+import { MetaList, type MetaItemData } from '../../molecules';
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.
@@ -26,7 +16,7 @@ export type OverviewProps = {
/**
* The overview meta.
*/
- meta: OverviewMeta;
+ meta: MetaItemData[];
};
/**
@@ -39,20 +29,16 @@ export const Overview: FC<OverviewProps> = ({
cover,
meta,
}) => {
- const { technologies, ...remainingMeta } = meta;
- const metaModifier = technologies ? styles['meta--has-techno'] : '';
+ const wrapperClass = `${styles.wrapper} ${className}`;
return (
- <div className={`${styles.wrapper} ${className}`}>
+ <div className={wrapperClass}>
{cover ? (
<Figure>
<NextImage {...cover} className={styles.cover} />
</Figure>
) : null}
- <Meta
- className={`${styles.meta} ${metaModifier}`}
- data={{ ...remainingMeta, technologies }}
- />
+ <MetaList className={styles.meta} hasInlinedValues items={meta} />
</div>
);
};