From 4f768afe543bbf9e1857c41d03804f8e37ab3512 Mon Sep 17 00:00:00 2001 From: Armand Philippot Date: Fri, 29 Sep 2023 21:29:45 +0200 Subject: refactor(components): rewrite List component * change `items` prop to children * replace `kind` prop with `isHierarchical`, `isOrdered` & `isInline` props * add `hideMarker` prop * add `spacing` prop to control item spacing * move lists styles to Sass placeholders to avoid repeats because of headless WordPress --- src/components/organisms/layout/comments-list.tsx | 31 +++++++++++++++-------- 1 file changed, 21 insertions(+), 10 deletions(-) (limited to 'src/components/organisms/layout/comments-list.tsx') diff --git a/src/components/organisms/layout/comments-list.tsx b/src/components/organisms/layout/comments-list.tsx index 1ce0cf5..103bfb4 100644 --- a/src/components/organisms/layout/comments-list.tsx +++ b/src/components/organisms/layout/comments-list.tsx @@ -1,7 +1,12 @@ -import { FC } from 'react'; -import { type SingleComment } from '../../../types'; +import type { FC } from 'react'; +import type { SingleComment } from '../../../types'; +import { List, ListItem } from '../../atoms'; + +// eslint-disable-next-line @typescript-eslint/no-shadow import { Comment, type CommentProps } from './comment'; -import styles from './comments-list.module.scss'; + +// eslint-disable-next-line @typescript-eslint/no-magic-numbers +export type CommentsListDepth = 0 | 1 | 2 | 3 | 4; export type CommentsListProps = Pick & { /** @@ -11,7 +16,7 @@ export type CommentsListProps = Pick & { /** * The maximum depth. Use `0` to not display nested comments. */ - depth: 0 | 1 | 2 | 3 | 4; + depth: CommentsListDepth; }; /** @@ -38,19 +43,25 @@ export const CommentsList: FC = ({ const isLastLevel = startLevel === depth; return commentsList.map(({ replies, ...comment }) => ( -
  • + - {replies && !isLastLevel && ( -
      {getItems(replies, startLevel + 1)}
    - )} -
  • + {replies.length && !isLastLevel ? ( + + {getItems(replies, startLevel + 1)} + + ) : null} + )); }; - return
      {getItems(comments, 0)}
    ; + return ( + + {getItems(comments, 0)} + + ); }; -- cgit v1.2.3