From 2bac93df1264d23baaeb3923925a88d0a556366f Mon Sep 17 00:00:00 2001 From: heonq Date: Sun, 3 Nov 2024 09:02:18 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=83=81=ED=92=88=20=EB=93=B1=EB=A1=9D?= =?UTF-8?q?=20=EA=B8=B0=EB=8A=A5=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/sprint6.md | 22 +++++------ .../productRegistration/ProductNameInput.tsx | 2 +- .../productRegistration/ProductPriceInput.tsx | 9 ++++- .../ProductRegistrationComponent.tsx | 39 ++++++++++++++++--- .../productRegistration/ProductTagsInput.tsx | 1 + .../productRegistration/RegistrationTitle.tsx | 7 +++- src/jotai/atoms/productFormState.ts | 21 +++++++--- src/pages/Product.tsx | 10 +++++ src/router.tsx | 5 +++ 9 files changed, 90 insertions(+), 26 deletions(-) create mode 100644 src/pages/Product.tsx diff --git a/docs/sprint6.md b/docs/sprint6.md index 609f14d1..9f16be2b 100644 --- a/docs/sprint6.md +++ b/docs/sprint6.md @@ -11,25 +11,25 @@ - [x] 중고마켓 페이지 url path를 "/items"으로 설정하세요. - [x] 페이지 주소가 "/items" 일 때 상단내비게이션바의 "중고마켓" 버튼의 색상은 "3692FF"입니다. -- [ ] 중고마켓 페이지 판매 중인 상품은 본인이 만든 GET 메서드를 사용해 주세요. -- [ ] 다만 좋아요 순 정렬 기능은 제외해 주세요. -- [ ] 사진은 디폴트 이미지로 프론트엔드에서 처리해주세요. -- [ ] 베스트 상품 목록 조회는 구현하지 않습니다. -- [ ] '상품 등록하기' 버튼을 누르면 "/registration" 로 이동합니다. ( 빈 페이지 ) +- [x] 중고마켓 페이지 판매 중인 상품은 본인이 만든 GET 메서드를 사용해 주세요. +- [x] 다만 좋아요 순 정렬 기능은 제외해 주세요. +- [x] 사진은 디폴트 이미지로 프론트엔드에서 처리해주세요. +- [x] 베스트 상품 목록 조회는 구현하지 않습니다. +- [x] '상품 등록하기' 버튼을 누르면 "/registration" 로 이동합니다. ( 빈 페이지 ) ### 상품 등록 페이지 -- [ ] PC, Tablet, Mobile 디자인에 해당하는 상품 등록 페이지를 만들어 주세요. -- [ ] 상품 등록 url path는 "/registration"입니다. -- [ ] 상품 등록은 본인이 만든 POST 메서드를 사용해 주세요. -- [ ] 등록 성공 시, 해당 상품 상세 페이지로 이동합니다. (빈페이지) +- [x] PC, Tablet, Mobile 디자인에 해당하는 상품 등록 페이지를 만들어 주세요. +- [x] 상품 등록 url path는 "/registration"입니다. +- [x] 상품 등록은 본인이 만든 POST 메서드를 사용해 주세요. +- [x] 등록 성공 시, 해당 상품 상세 페이지로 이동합니다. (빈페이지) ## 심화 요구사항 ### 상품 등록 페이지 -- [ ] 모든 입력 input box에 빈 값이 있을 경우, 등록 버튼이 비활성화됩니다. -- [ ] 태그를 입력한 후 엔터키를 누르면, 그 태그가 칩 형태로 쌓입니다. +- [x] 모든 입력 input box에 빈 값이 있을 경우, 등록 버튼이 비활성화됩니다. +- [x] 태그를 입력한 후 엔터키를 누르면, 그 태그가 칩 형태로 쌓입니다. - [ ] 상품명, 상품 소개, 판매 가격, 태그에 대한 유효성 검사 Custom Hook을 만들어주세요. 유효성 검사를 통과하지 않을 경우, 각 input에 빨간색 테두리와, 각각의 Input 아래에 빨간색 에러 메시지를 보여주세요. - 유효한 조건 diff --git a/src/components/productRegistration/ProductNameInput.tsx b/src/components/productRegistration/ProductNameInput.tsx index e37ddaaa..c2310608 100644 --- a/src/components/productRegistration/ProductNameInput.tsx +++ b/src/components/productRegistration/ProductNameInput.tsx @@ -8,7 +8,7 @@ const ProductNameInput = () => { return ( 상품명 - setProductName(e.target.value)} /> + setProductName(e.target.value)} /> ); }; diff --git a/src/components/productRegistration/ProductPriceInput.tsx b/src/components/productRegistration/ProductPriceInput.tsx index b0aeb1ac..dceec917 100644 --- a/src/components/productRegistration/ProductPriceInput.tsx +++ b/src/components/productRegistration/ProductPriceInput.tsx @@ -1,5 +1,5 @@ import { useAtom } from "jotai"; -import { TextArea, ProductInputContainer, RegistrationH2 } from "./ProductRegistrationComponent"; +import { ProductInputContainer, RegistrationH2, Input } from "./ProductRegistrationComponent"; import { productPriceState } from "../../jotai/atoms/productFormState"; const ProductPriceInput = () => { @@ -8,7 +8,12 @@ const ProductPriceInput = () => { return ( 판매가격 -