diff options
| author | Armand Philippot <git@armandphilippot.com> | 2023-09-27 15:40:16 +0200 |
|---|---|---|
| committer | Armand Philippot <git@armandphilippot.com> | 2023-10-24 12:25:00 +0200 |
| commit | ba793e043e4d8515b1a9ea490ee2c5f92b1fd6c2 (patch) | |
| tree | f7240a681fb3ee8c886a0c9ec3944082ba2d89bd /src/components/atoms/layout/section.tsx | |
| parent | 388e687857345c85ee550cd5da472675e05a6ff5 (diff) | |
refactor(components): rewrite Section component
* Make it compliant with ESlint rules
* Remove mandatory heading, it now depends on the consumer
* Change defaults for hasBorder and variant
Diffstat (limited to 'src/components/atoms/layout/section.tsx')
| -rw-r--r-- | src/components/atoms/layout/section.tsx | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/src/components/atoms/layout/section.tsx b/src/components/atoms/layout/section.tsx deleted file mode 100644 index 107e80a..0000000 --- a/src/components/atoms/layout/section.tsx +++ /dev/null @@ -1,54 +0,0 @@ -import { FC, HTMLAttributes, ReactNode } from 'react'; -import { Heading } from '../headings'; -import styles from './section.module.scss'; - -export type SectionVariant = 'dark' | 'light'; - -export type SectionProps = Omit< - HTMLAttributes<HTMLElement>, - 'children' | 'content' -> & { - /** - * The section content. - */ - content: ReactNode | ReactNode[]; - /** - * The section title. - */ - title: string; - /** - * The section variant. - */ - variant?: SectionVariant; - /** - * Add a border at the bottom of the section. Default: true. - */ - withBorder?: boolean; -}; - -/** - * Section component - * - * Render a section element. - */ -export const Section: FC<SectionProps> = ({ - className = '', - content, - title, - variant = 'dark', - withBorder = true, - ...props -}) => { - const borderClass = withBorder ? styles[`wrapper--borders`] : ''; - const variantClass = styles[`wrapper--${variant}`]; - const sectionClass = `${styles.wrapper} ${borderClass} ${variantClass} ${className}`; - - return ( - <section {...props} className={sectionClass}> - <Heading level={2} className={styles.title}> - {title} - </Heading> - <div className={styles.body}>{content}</div> - </section> - ); -}; |
