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

[김가영] Sprint12 #287

Conversation

gayeong0916
Copy link
Collaborator

@gayeong0916 gayeong0916 commented Aug 30, 2024

요구사항

기본

  • ‘상품 등록하기’ 버튼을 누르면 “/additem” 로 이동합니다.

  • 각 상품 클릭 시 상품 상세 페이지로 이동합니다.

  • 상품 상세 페이지 주소는 “/items/{productId}” 입니다.

  • 내가 등록한 상품일 경우 상품 수정, 삭제가 가능합니다.

  • 문의하기 input창에 값을 입력 후 ‘등록’ 버튼을 누르면 댓글이 등록됩니다.

  • 내가 등록한 댓글은 수정, 삭제가 가능합니다.

  • 이미지를 제외하고 input 에 모든 값을 입력하면 ‘등록' 버튼이 활성화 됩니다.

  • 활성화된 ‘등록' 버튼을 누르면 상품 등록이 완료됩니다.

  • 등록이 완료되면 해당 상품 상세 페이지로 이동합니다.

멘토에게

  • 나를 제외한 타인이 상품을 등록할 때, 타인의 정보를 가지고 올 수 있는 api가 없다고 생각해서 '나'의 정보로 api를 불러왔습니다!
  • 셀프 코드 리뷰를 통해 질문 이어가겠습니다.

@gayeong0916 gayeong0916 requested a review from dev-kjy August 30, 2024 10:34
@gayeong0916 gayeong0916 added the 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. label Aug 30, 2024
@@ -3,6 +3,7 @@
"version": "0.1.0",
"private": true,
"dependencies": {
Copy link
Collaborator

Choose a reason for hiding this comment

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

dependencies 항목 중 devDependencies에 포함되어도 무방한 패키지들이 있습니다. 테스트와 타입관련 패키지들은 대표적으로 devDependencies에 설치하는 항목입니다. 이렇게 devDependencies를 구분하게 되면 빌드 진행 시 최소한의 패키지 설치로 웹 페이지를 빌드할 수 있기 때문에 추후 프로젝트 진행 시에는 참고하시면 좋을 것 같아요. 😁


//상품 등록하기
export async function postAddItem(ProductData: FormData) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

postAddItem에서 post와 add의 의미가 비슷하보니 조금 어색한 것 같습니다. 🥲 addItem 정도의 이름이 더 자연스러운 것 같아 추천드려요!

import logo from "../images/logo.svg";
import logoMobile from "../images/logo_m.svg";
import { Link, NavLink, useLocation } from "react-router-dom";
import user from "../images/user.svg";
Copy link
Collaborator

Choose a reason for hiding this comment

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

이름으로만 봐서는 이미지가 아니라 상태값으로 오해할 수도 있을 것 같아 조금 더 특정적으로 이름을 붙이면 좋을 것 같습니다

interface ProductCommentProps{
comment:CommentList;
interface Props {
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를 가진 배열이기 때문에 coments가 되는 것이 더 자연스러울 것 같아요!

width="24"
height="24"
/>
{isOpen === com.id && (
Copy link
Collaborator

Choose a reason for hiding this comment

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

isOpen === com.id, 불리언 타입과 숫자 타입을 비교하고 있는 로직이라 한 번 확인해보시면 좋을 것 같습니다.

return data;
} catch (error: any) {
throw new Error(`상품 수정에 실패했습니다: ${error.message}`);
Copy link
Collaborator

Choose a reason for hiding this comment

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

에러 메세지를 함수마다 특정적으로 작성해 주신 부분 좋습니다~!

onSuccess: () => {
console.log("댓글 등록 성공");
setComment("");
if(onSuccess) onSuccess();
Copy link
Collaborator

Choose a reason for hiding this comment

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

props로 받는 부분에서 ()=>{} 빈화살표 함수로 기본값을 설정해 주시면 좋을 것 같습니다. 😁

const handleInput = (
e: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>
) => {
let { name, value } = e.target;
Copy link
Collaborator

Choose a reason for hiding this comment

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

구조분해할당으로 처리해 주신 부분 좋습니다. 👍👍

) => {
let { name, value } = e.target;
if (name === "price") {
value = value.replace(/[^0-9]/g, "");
Copy link
Collaborator

Choose a reason for hiding this comment

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

trimmedValue 라는 별도의 변수를 선언하는 것이 조금 더 가독성이 좋을 것 같아요!

Comment on lines +10 to +11
type FieldName="email" | "nickname" | "password" | "passwordConfirmation";

Copy link
Collaborator

Choose a reason for hiding this comment

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

특정적인 타입으로 만들어두신 부분 좋습니다. 👍

@dev-kjy dev-kjy merged commit c44d99a into codeit-bootcamp-frontend:React-김가영 Sep 2, 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