From f861e6a269ba9f62700776d3cd13b644a9e836d4 Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Wed, 20 Sep 2023 16:38:54 +0200 Subject: 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. --- src/components/templates/page/index.ts | 1 + .../templates/page/page-layout.stories.tsx | 10 ++-- src/components/templates/page/page-layout.test.tsx | 2 +- src/components/templates/page/page-layout.tsx | 59 ++++++++++------------ 4 files changed, 32 insertions(+), 40 deletions(-) create mode 100644 src/components/templates/page/index.ts (limited to 'src/components/templates/page') diff --git a/src/components/templates/page/index.ts b/src/components/templates/page/index.ts new file mode 100644 index 0000000..cdd5a64 --- /dev/null +++ b/src/components/templates/page/index.ts @@ -0,0 +1 @@ +export * from './page-layout'; diff --git a/src/components/templates/page/page-layout.stories.tsx b/src/components/templates/page/page-layout.stories.tsx index 5fc5063..146204e 100644 --- a/src/components/templates/page/page-layout.stories.tsx +++ b/src/components/templates/page/page-layout.stories.tsx @@ -1,14 +1,10 @@ import { ComponentMeta, ComponentStory } from '@storybook/react'; -import ButtonLink from '../../atoms/buttons/button-link'; -import Heading from '../../atoms/headings/heading'; -import Link from '../../atoms/links/link'; +import { ButtonLink, Heading, Link } from '../../atoms'; +import { LinksListWidget, PostsList, Sharing } from '../../organisms'; import { comments } from '../../organisms/layout/comments-list.fixture'; -import PostsList from '../../organisms/layout/posts-list'; import { posts } from '../../organisms/layout/posts-list.fixture'; -import LinksListWidget from '../../organisms/widgets/links-list-widget'; -import Sharing from '../../organisms/widgets/sharing'; import { LayoutBase } from '../layout/layout.stories'; -import PageLayoutComponent from './page-layout'; +import { PageLayout as PageLayoutComponent } from './page-layout'; /** * PageLayout - Storybook Meta diff --git a/src/components/templates/page/page-layout.test.tsx b/src/components/templates/page/page-layout.test.tsx index 316ff58..9293c12 100644 --- a/src/components/templates/page/page-layout.test.tsx +++ b/src/components/templates/page/page-layout.test.tsx @@ -1,7 +1,7 @@ import { BreadcrumbList } from 'schema-dts'; import { render, screen } from '../../../../tests/utils'; import { comments } from '../../organisms/layout/comments-list.fixture'; -import PageLayout from './page-layout'; +import { PageLayout } from './page-layout'; const title = 'Incidunt ad earum'; const breadcrumb = [ diff --git a/src/components/templates/page/page-layout.tsx b/src/components/templates/page/page-layout.tsx index 6792724..3c6ff17 100644 --- a/src/components/templates/page/page-layout.tsx +++ b/src/components/templates/page/page-layout.tsx @@ -2,29 +2,26 @@ import Script from 'next/script'; import { FC, HTMLAttributes, ReactNode, useRef, useState } from 'react'; import { useIntl } from 'react-intl'; import { BreadcrumbList } from 'schema-dts'; -import { sendComment } from '../../../services/graphql/comments'; -import { SendCommentInput } from '../../../types/graphql/mutations'; -import useIsMounted from '../../../utils/hooks/use-is-mounted'; -import Heading from '../../atoms/headings/heading'; -import Notice, { type NoticeKind } from '../../atoms/layout/notice'; -import Sidebar from '../../atoms/layout/sidebar'; -import { MetaData } from '../../molecules/layout/meta'; -import PageFooter, { +import { sendComment } from '../../../services/graphql'; +import { SendCommentInput } from '../../../types'; +import { useIsMounted } from '../../../utils/hooks'; +import { Heading, Notice, type NoticeKind, Sidebar } from '../../atoms'; +import { + Breadcrumb, + type BreadcrumbItem, + MetaData, + PageFooter, type PageFooterProps, -} from '../../molecules/layout/page-footer'; -import PageHeader, { + PageHeader, type PageHeaderProps, -} from '../../molecules/layout/page-header'; -import Breadcrumb, { - type BreadcrumbItem, -} from '../../molecules/nav/breadcrumb'; -import CommentForm, { +} from '../../molecules'; +import { + CommentForm, type CommentFormProps, -} from '../../organisms/forms/comment-form'; -import CommentsList, { + CommentsList, type CommentsListProps, -} from '../../organisms/layout/comments-list'; -import TableOfContents from '../../organisms/widgets/table-of-contents'; + TableOfContents, +} from '../../organisms'; import styles from './page-layout.module.scss'; export type PageLayoutProps = { @@ -91,7 +88,7 @@ export type PageLayoutProps = { * * Render the pages layout. */ -const PageLayout: FC = ({ +export const PageLayout: FC = ({ children, allowComments = false, bodyAttributes, @@ -186,29 +183,29 @@ const PageLayout: FC = ({ return ( <>