aboutsummaryrefslogtreecommitdiffstats
path: root/src/components/atoms/layout/section.tsx
diff options
context:
space:
mode:
authorArmand Philippot <git@armandphilippot.com>2023-09-20 16:38:54 +0200
committerArmand Philippot <git@armandphilippot.com>2023-09-20 16:38:54 +0200
commitf861e6a269ba9f62700776d3cd13b644a9e836d4 (patch)
treea5a107e7a6e4ff8b4261fe04349357bc00b783ee /src/components/atoms/layout/section.tsx
parent03331c44276ec56e9f235e4d5ee75030455a753f (diff)
refactor: use named export for everything except pages
Next expect a default export for pages so only those components should use default exports. Everything else should use named exports to reduce the number of import statements.
Diffstat (limited to 'src/components/atoms/layout/section.tsx')
-rw-r--r--src/components/atoms/layout/section.tsx25
1 files changed, 11 insertions, 14 deletions
diff --git a/src/components/atoms/layout/section.tsx b/src/components/atoms/layout/section.tsx
index cb727ff..107e80a 100644
--- a/src/components/atoms/layout/section.tsx
+++ b/src/components/atoms/layout/section.tsx
@@ -1,18 +1,17 @@
-import { FC, ReactNode } from 'react';
-import Heading from '../headings/heading';
+import { FC, HTMLAttributes, ReactNode } from 'react';
+import { Heading } from '../headings';
import styles from './section.module.scss';
export type SectionVariant = 'dark' | 'light';
-export type SectionProps = {
- /**
- * Set additional classnames to the section element.
- */
- className?: string;
+export type SectionProps = Omit<
+ HTMLAttributes<HTMLElement>,
+ 'children' | 'content'
+> & {
/**
* The section content.
*/
- content: ReactNode;
+ content: ReactNode | ReactNode[];
/**
* The section title.
*/
@@ -32,20 +31,20 @@ export type SectionProps = {
*
* Render a section element.
*/
-const Section: FC<SectionProps> = ({
+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
- className={`${styles.wrapper} ${borderClass} ${variantClass} ${className}`}
- >
+ <section {...props} className={sectionClass}>
<Heading level={2} className={styles.title}>
{title}
</Heading>
@@ -53,5 +52,3 @@ const Section: FC<SectionProps> = ({
</section>
);
};
-
-export default Section;