-
Notifications
You must be signed in to change notification settings - Fork 38
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
The head ref may contain hidden characters: "React-\uAE40\uAC00\uC601-sprint12"
[김가영] Sprint12 #287
Conversation
@@ -3,6 +3,7 @@ | |||
"version": "0.1.0", | |||
"private": true, | |||
"dependencies": { |
There was a problem hiding this comment.
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) { |
There was a problem hiding this comment.
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"; |
There was a problem hiding this comment.
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[]; |
There was a problem hiding this comment.
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 && ( |
There was a problem hiding this comment.
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}`); |
There was a problem hiding this comment.
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(); |
There was a problem hiding this comment.
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; |
There was a problem hiding this comment.
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, ""); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
trimmedValue 라는 별도의 변수를 선언하는 것이 조금 더 가독성이 좋을 것 같아요!
type FieldName="email" | "nickname" | "password" | "passwordConfirmation"; | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
특정적인 타입으로 만들어두신 부분 좋습니다. 👍
요구사항
기본
‘상품 등록하기’ 버튼을 누르면 “/additem” 로 이동합니다.
각 상품 클릭 시 상품 상세 페이지로 이동합니다.
상품 상세 페이지 주소는 “/items/{productId}” 입니다.
내가 등록한 상품일 경우 상품 수정, 삭제가 가능합니다.
문의하기 input창에 값을 입력 후 ‘등록’ 버튼을 누르면 댓글이 등록됩니다.
내가 등록한 댓글은 수정, 삭제가 가능합니다.
이미지를 제외하고 input 에 모든 값을 입력하면 ‘등록' 버튼이 활성화 됩니다.
활성화된 ‘등록' 버튼을 누르면 상품 등록이 완료됩니다.
등록이 완료되면 해당 상품 상세 페이지로 이동합니다.
멘토에게