+ {isToggle && }
+ >
+ )}
+
);
};
diff --git a/src/app/(MainLayout)/components/FeedCommentList/FeedCommentList.module.scss b/src/app/(MainLayout)/components/FeedCommentList/FeedCommentList.module.scss
index 87ce7f4..81fb65c 100644
--- a/src/app/(MainLayout)/components/FeedCommentList/FeedCommentList.module.scss
+++ b/src/app/(MainLayout)/components/FeedCommentList/FeedCommentList.module.scss
@@ -1,14 +1,17 @@
@use '../../../../styles/helpers/index' as *;
.container {
- height: 100%;
+ flex: 1;
+ display: flex;
+ flex-direction: column;
+}
+
+.comment_container {
padding: 1.25rem;
- overflow: scroll;
}
-.container_non_padding {
+.reply_container {
padding-left: 2rem;
- overflow: scroll;
}
.reply_comment {
diff --git a/src/app/(MainLayout)/components/FeedCommentList/FeedCommentList.tsx b/src/app/(MainLayout)/components/FeedCommentList/FeedCommentList.tsx
index 0554065..ea3226e 100644
--- a/src/app/(MainLayout)/components/FeedCommentList/FeedCommentList.tsx
+++ b/src/app/(MainLayout)/components/FeedCommentList/FeedCommentList.tsx
@@ -1,6 +1,7 @@
'use client';
-import { useEffect, useState } from 'react';
+import clsx from 'clsx';
+import { Fragment, useEffect, useState } from 'react';
import If from '@/components/common/If';
import ToggleWrapper from '@/components/common/ToggleWrapper';
@@ -8,25 +9,25 @@ import FeedComment, { FeedCommentType } from '../FeedComment/FeedComment';
import styles from './FeedCommentList.module.scss';
-const asyncMockDataResponse = async () => {
- let uniqueId = 1;
+const makeMockData = (id: number) => ({
+ // eslint-disable-next-line no-plusplus
+ commentId: Math.ceil(Math.random() * 6),
+ nickname: `홍길동${id + 1}`,
+ profileUrl:
+ 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT4vkwPhD-NHO6sV_3ailgWXjiP_WPM24J3IhkB3xZ-bQ&s',
+ feedContent:
+ '내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 \n내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력',
+ createdAt: '2024-10-25 20:08:22',
+ updatedAt: '2024-10-28 21:29:22',
+ likeCount: 1357345 + id,
+ childFeedComments: +id < 4 ? [4, 5, 6] : [],
+});
+
+const asyncMockDataResponse = () => {
return async (id: string) => {
- if (uniqueId < 4) {
+ if (+id < 7) {
return new Promise((res) => {
- const data = {
- // eslint-disable-next-line no-plusplus
- commentId: (uniqueId++).toString(),
- nickname: `홍길동${id + 1}`,
- profileUrl:
- 'https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcT4vkwPhD-NHO6sV_3ailgWXjiP_WPM24J3IhkB3xZ-bQ&s',
- feedContent:
- '내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 \n내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력 내용 입력',
- createdAt: '2024-10-25 20:08:22',
- updatedAt: '2024-10-28 21:29:22',
- likeCount: 1357345 + id,
- childFeedComments: +id < 4 ? [4, 5, 6] : [],
- };
-
+ const data = makeMockData(+id);
res(data);
});
}
@@ -37,61 +38,72 @@ const asyncMockDataResponse = async () => {
interface FeedCommentListProps {
feedId?: string;
+ commentId?: string;
feedCommentIds: string[];
}
-const FeedCommentList = ({ feedId, feedCommentIds }: FeedCommentListProps) => {
+const FeedCommentList = ({
+ feedId,
+ commentId,
+ feedCommentIds,
+}: FeedCommentListProps) => {
const [commentData, setCommentData] = useState([]);
useEffect(() => {
(async function () {
- const result = (await Promise.all(
- feedCommentIds.map(await asyncMockDataResponse()),
- )) as FeedCommentType[];
+ const requests = await feedCommentIds.map(await asyncMockDataResponse());
+ const result = (await Promise.all(requests)) as FeedCommentType[];
setCommentData(result);
})();
}, []);
return (
-