Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[정인재] sprint10 #292

Conversation

Injaeeee
Copy link
Collaborator

@Injaeeee Injaeeee commented Aug 16, 2024

요구사항

기본

  • 상품 등록 페이지 주소는 “/addboard” 입니다.
  • 
 게시판 이미지는 최대 한개 업로드가 가능합니다.
  • 각 input의 placeholder 값을 정확히 입력해주세요.
  • 이미지를 제외하고 input 에 모든 값을 입력하면 ‘등록' 버튼이 활성화 됩니다.
  • ‘등록’ 버튼을 누르면 게시물 상세 페이지로 이동합니다.
  • 상품 상세 페이지 주소는 “/addboard/{id}” 입니다.
  • 댓글 input 값을 입력하면 ‘등록' 버튼이 활성화 됩니다.
  • 활성화된 ‘등록' 버튼을 누르면 댓글이 등록됩니다

심화

  • 회원가입, 로그인 api를 사용하여 받은 accessToken을 사용하여 게시물 등록을 합니다.

주요 변경사항

스크린샷

image image

멘토에게

  • 셀프 코드 리뷰를 통해 질문 이어가겠습니다.

@Injaeeee Injaeeee requested a review from jyh0521 August 16, 2024 10:50
@Injaeeee Injaeeee added 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. 미완성🫠 죄송합니다.. labels Aug 16, 2024
Copy link
Collaborator

@jyh0521 jyh0521 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

과제하느라 고생하셨습니다 👍

@@ -68,23 +54,29 @@ const BoardItemContainer = styled.div`
@media (max-width: 744px) {
grid-template-columns: repeat(2, 1fr);

& > div:nth-child(3) {
& > :nth-child(3) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

css 선택자 잘 활용해주셨네요! 다만 이렇게 작성하셨을때, 추후에 수정하게 된다면 구조를 바꿔야하는 경우가 생길 수도 있습니다. (데이터 수가 3개보다 많아진다던지 등)

Comment on lines +27 to +28
width={72}
height={72}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Image의 fill 기능도 활용 한번 해보시면 좋을 것 같습니다.

Comment on lines +6 to +14
export default function CommentItemList({ comments }: CommentListPropsType) {
return (
<>
{comments.map((comment) => (
<CommentItem key={comment.id} comment={comment} />
))}
</>
);
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이정도 크기의 컴포넌트는 따로 분리하시지 않아도 괜찮을 것 같습니다.

Comment on lines +22 to +30
<Image
src={comment.writer.image}
alt="commentWriter"
width={32}
height={32}
/>
) : (
<Image src={user} alt="user" />
)}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Image의 에러 기능을 활용해보시는 것도 추천해드립니다.

display: flex;
flex-direction: column;
justify-content: space-between;
background-color: #fcfcfc;
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

컬러 변수 써주시면 좋을 것 같아요!

@@ -0,0 +1,10 @@
export interface articleType {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 타입의 첫글자도 타입명 작성 규칙의 일관성을 유지하기 위해 대문자로 바꿔주시면 좋을 것 같습니다.

Comment on lines +21 to +23
export interface BoardItemListProps {
boards: BoardItemType[];
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

저는 이런 경우 개인적으로 board가 여러개 들어가야하는 곳에 BoardItemType[]을 바로 작성하는 것을 좀 더 선호합니다.

Comment on lines +22 to +28
const handleTitleChange = (e: ChangeEvent<HTMLInputElement>) => {
setArticleValue((prev) => ({ ...prev, title: e.target.value }));
};

const handleContentChange = (e: ChangeEvent<HTMLTextAreaElement>) => {
setArticleValue((prev) => ({ ...prev, content: e.target.value }));
};
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

두 함수는 하나로 묶어볼 수 있을 것 같습니다!

Comment on lines +47 to +51
if (title && content) {
setDisabled(false);
} else {
setDisabled(true);
}
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이 부분은 disabled를 사용하는 곳에 title && content를 바로 넣어보시는 것은 어떨까요?


useEffect(() => {
async function fetchArticle() {
if (typeof id === "string") {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

이렇게 조건문을 걸어주는 방법도 있지만, await getArticleId(id.toString()) 이런식으로 형변환을 시키는 방법도 있습니다.

@jyh0521 jyh0521 merged commit 7e58628 into codeit-bootcamp-frontend:Next-정인재 Aug 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. 미완성🫠 죄송합니다..
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants