From 7255d25f6834a208c0ed44636356cc260f6ab6ba Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Wed, 27 Sep 2023 17:38:23 +0200 Subject: refactor(components): rewrite Heading component * remove `alignment` and `withMargin` props (consumer should handle that) * move styles to Sass placeholders to avoid repeats with headings coming from WordPress * refactor some other components that depend on Heading to avoid ESlint errors --- src/components/molecules/layout/branding.tsx | 15 +++------ src/components/molecules/layout/card.module.scss | 5 ++- src/components/molecules/layout/card.tsx | 8 +---- src/components/molecules/layout/page-header.tsx | 41 ++++++++++++++---------- 4 files changed, 31 insertions(+), 38 deletions(-) (limited to 'src/components/molecules/layout') diff --git a/src/components/molecules/layout/branding.tsx b/src/components/molecules/layout/branding.tsx index b105796..981da74 100644 --- a/src/components/molecules/layout/branding.tsx +++ b/src/components/molecules/layout/branding.tsx @@ -1,5 +1,5 @@ import Link from 'next/link'; -import { FC, useRef } from 'react'; +import { type FC, useRef } from 'react'; import { useIntl } from 'react-intl'; import { useStyles } from '../../../utils/hooks'; import { Heading } from '../../atoms'; @@ -90,7 +90,6 @@ export const Branding: FC = ({ className={styles.title} isFake={!isHome} level={1} - withMargin={false} ref={titleRef} > {withLink ? ( @@ -101,17 +100,11 @@ export const Branding: FC = ({ title )} - {baseline && ( - + {baseline ? ( + {baseline} - )} + ) : null} ); }; diff --git a/src/components/molecules/layout/card.module.scss b/src/components/molecules/layout/card.module.scss index 8f9f4a5..31f6a4b 100644 --- a/src/components/molecules/layout/card.module.scss +++ b/src/components/molecules/layout/card.module.scss @@ -31,9 +31,8 @@ } .title { - flex: 1; - margin-top: var(--spacing-sm); - margin-bottom: var(--spacing-sm); + width: fit-content; + margin: var(--spacing-sm) auto; } h2.title { diff --git a/src/components/molecules/layout/card.tsx b/src/components/molecules/layout/card.tsx index f39a430..722e5a5 100644 --- a/src/components/molecules/layout/card.tsx +++ b/src/components/molecules/layout/card.tsx @@ -65,13 +65,7 @@ export const Card: FC = ({ {cover ? ( ) : null} - + {title} diff --git a/src/components/molecules/layout/page-header.tsx b/src/components/molecules/layout/page-header.tsx index 9c11feb..04f2966 100644 --- a/src/components/molecules/layout/page-header.tsx +++ b/src/components/molecules/layout/page-header.tsx @@ -1,4 +1,4 @@ -import { FC, ReactNode } from 'react'; +import type { FC, ReactNode } from 'react'; import { Heading } from '../../atoms'; import { Meta, type MetaData } from './meta'; import styles from './page-header.module.scss'; @@ -11,7 +11,7 @@ export type PageHeaderProps = { /** * The page introduction. */ - intro?: string | JSX.Element; + intro?: string | ReactNode; /** * The page metadata. */ @@ -33,32 +33,39 @@ export const PageHeader: FC = ({ meta, title, }) => { + const headerClass = `${styles.wrapper} ${className}`; + const getIntro = () => { - return typeof intro === 'string' ? ( -
- ) : ( -
{intro}
- ); + if (typeof intro === 'string') + return ( +
+ ); + + return
{intro}
; }; return ( -
+
- + {title} - {meta && ( + {meta ? ( - )} - {intro && getIntro()} + ) : null} + {intro ? getIntro() : null}
); -- cgit v1.2.3