From f23cdcbdec549a354ddc6fa9bb3770b8e9433aed Mon Sep 17 00:00:00 2001
From: Marshall Ku
Date: Mon, 12 Feb 2024 13:50:35 +0900
Subject: [PATCH] Add comment submit form
---
apps/blog/app/[category]/[...slug]/page.tsx | 2 +-
.../src/components/CommentAvatar/index.tsx | 6 +-
.../components/CommentForm/index.module.scss | 75 +++++++++++++++++++
.../blog/src/components/CommentForm/index.tsx | 65 ++++++++++++++++
.../components/CommentList/index.module.scss | 2 +-
.../components/PostComment/index.module.scss | 2 +
.../blog/src/components/PostComment/index.tsx | 6 +-
apps/blog/src/styles/reset.scss | 5 +-
8 files changed, 157 insertions(+), 6 deletions(-)
create mode 100644 apps/blog/src/components/CommentForm/index.module.scss
create mode 100644 apps/blog/src/components/CommentForm/index.tsx
diff --git a/apps/blog/app/[category]/[...slug]/page.tsx b/apps/blog/app/[category]/[...slug]/page.tsx
index 1a9e8b87..20816ff6 100644
--- a/apps/blog/app/[category]/[...slug]/page.tsx
+++ b/apps/blog/app/[category]/[...slug]/page.tsx
@@ -175,7 +175,7 @@ export default async function Post({ params: { category, slug } }: PostProps) {
- Loading...
}>
+ }>
diff --git a/apps/blog/src/components/CommentAvatar/index.tsx b/apps/blog/src/components/CommentAvatar/index.tsx
index 6ce2dbcd..79384847 100644
--- a/apps/blog/src/components/CommentAvatar/index.tsx
+++ b/apps/blog/src/components/CommentAvatar/index.tsx
@@ -1,6 +1,6 @@
"use client";
-import { useState } from "react";
+import { useEffect, useState } from "react";
import { toURL } from "#utils/url";
const AVATAR_SIZE = 40;
@@ -32,6 +32,10 @@ const getAvatar = (name: string, link?: string) => {
function CommentAvatar({ name, url, postAuthor }: CommentAvatarProps) {
const [src, setSrc] = useState(getAvatar(name, url));
+ useEffect(() => {
+ setSrc(getAvatar(name, url));
+ }, [name, url]);
+
if (postAuthor) {
return (
+
+
+
+ );
+}
+
+export default CommentForm;
diff --git a/apps/blog/src/components/CommentList/index.module.scss b/apps/blog/src/components/CommentList/index.module.scss
index 16821952..62ba6255 100644
--- a/apps/blog/src/components/CommentList/index.module.scss
+++ b/apps/blog/src/components/CommentList/index.module.scss
@@ -1,5 +1,5 @@
.comment-list {
width: clamp(0px, map-get($container-width, small), 100%);
- margin: 24px auto 36px;
+ margin: 24px auto;
padding: 0 12px;
}
diff --git a/apps/blog/src/components/PostComment/index.module.scss b/apps/blog/src/components/PostComment/index.module.scss
index 44bd0d57..ea7494d6 100644
--- a/apps/blog/src/components/PostComment/index.module.scss
+++ b/apps/blog/src/components/PostComment/index.module.scss
@@ -1,2 +1,4 @@
.post-comment {
+ border-top: 2px solid color(main);
+ border-bottom: 2px solid color(main);
}
diff --git a/apps/blog/src/components/PostComment/index.tsx b/apps/blog/src/components/PostComment/index.tsx
index 6217a3d2..34762d11 100644
--- a/apps/blog/src/components/PostComment/index.tsx
+++ b/apps/blog/src/components/PostComment/index.tsx
@@ -1,10 +1,11 @@
import { classNames } from "@marshallku/utils";
import { type CommentListResponse } from "#api";
+import CommentForm from "#components/CommentForm";
import CommentList from "#components/CommentList";
import styles from "./index.module.scss";
export interface PostCommentProps {
- data: CommentListResponse;
+ data?: CommentListResponse;
}
const cx = classNames(styles, "post-comment");
@@ -12,7 +13,8 @@ const cx = classNames(styles, "post-comment");
function PostComment({ data }: PostCommentProps) {
return (
-
+
+ {data && }
);
}
diff --git a/apps/blog/src/styles/reset.scss b/apps/blog/src/styles/reset.scss
index b041fe5a..7c5253da 100644
--- a/apps/blog/src/styles/reset.scss
+++ b/apps/blog/src/styles/reset.scss
@@ -59,6 +59,7 @@ caption,
tbody,
tfoot,
thead,
+textarea,
tr,
th,
td,
@@ -94,7 +95,9 @@ video {
vertical-align: baseline;
}
-html {
+html,
+input,
+textarea {
font-family:
"Pretendard Variable",
Pretendard,