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

[염성진] Sprint6 #194

Conversation

MELATONIN99
Copy link
Collaborator

@MELATONIN99 MELATONIN99 commented Jun 28, 2024

요구사항

기본

  • 상품 등록 페이지 주소는 “/additem” 입니다.
  • 페이지 주소가 “/additem” 일때 상단네비게이션바의 '중고마켓' 버튼의 색상은 “3692FF”입니다.
  • 상품 이미지는 최대 한개 업로드가 가능합니다.
  • 각 input의 placeholder 값을 정확히 입력해주세요.
  • 이미지를 제외하고 input 에 모든 값을 입력하면 ‘등록' 버튼이 활성화 됩니다.
  • API를 통한 상품 등록은 추후 미션에서 적용합니다.

심화

  • 이미지 안의 X 버튼을 누르면 이미지가 삭제됩니다.
  • 추가된 태그 안의 X 버튼을 누르면 해당 태그는 삭제됩니다.

주요 변경사항

  • 모바일 버전 UI만 구현되어 있습니다 추후 다른 버전도 추가 예정입니다.( 추가 완료 )
  • 판매 가격 원화 적용 예정 중입니다.

스크린샷


멘토에게

  • 기능 구현을 하려다 보니 구글링, gpt 사용에 의존하는 것 같습니다 기능 구현을 하고 복습하는 게 좋을까요 천천히 최대한 혼자 해보는 게 좋을까요..?
  • 셀프 코드 리뷰를 통해 질문 이어가겠습니다.

* 웹 페이지 resize 시 페이지 크기에 맞는 fetch query 값으로 GET 리퀘스트 제출합니다.

* 받아온 데이터를 화면에 반응형으로 그려줍니다.
* 메인(홈)페이지 전환 완료했습니다.

* Login 페이지 작업 중입니다.
* 미완성이기에 모바일 UI과 기능만 구현하였습니다.
@MELATONIN99 MELATONIN99 requested a review from lisarnjs June 28, 2024 15:24
@MELATONIN99 MELATONIN99 added 매운맛🔥 뒤는 없습니다. 그냥 필터 없이 말해주세요. 책임은 제가 집니다. 미완성🫠 죄송합니다.. labels Jun 28, 2024
* 기존에 모바일 UI만 작업하여 데스크톱, 태블릿 UI를 추가하였습니다.
@MELATONIN99 MELATONIN99 removed the 미완성🫠 죄송합니다.. label Jul 1, 2024
Copy link
Collaborator

@lisarnjs lisarnjs left a comment

Choose a reason for hiding this comment

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

react에서는 .jsx 로 사용하는 게 대부분이니까 이제 저렇게 바꿔보세요!
사실 .js vs .jsx 는 진짜 별 차이가 없습니다만 jsx를 사용하면 react를 사용한다를 티를 낼 수 있는 정도..? ㅎㅎ
질문 주신건 오늘 멘토링에서 말씀드렸으니 해결됬을 거 같구용
이번주도 화이팅이에요!

useEffect(() => {
const handleKeyDown = (e) => {
if (e.key !== 'Enter') return;
e.preventDefault();
Copy link
Collaborator

Choose a reason for hiding this comment

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

여기서 e.preventDefault();를 사용해주신 이유가 따로 있을까요?
(질문의 의도는 기본 동작을 막을땐 신중해야하기 때문이에요!)

};
document.addEventListener('keydown', handleKeyDown);
return () => {
document.removeEventListener('keydown', handleKeyDown);
Copy link
Collaborator

Choose a reason for hiding this comment

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

clean up 너무 좋구요!


// 입력값 감지 후 조건 충족 시 등록 버튼 활성화
useEffect(() => {
function validation({ tags, price, description, name } = values) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

{ tags, price, description, name } = values 가 파라미터로 필요한 부분이 아니고 값을 외부에서 가져와서 구조 분해를 한거라면
함수 코드 내부에서 진행하셔도 좋을 것 같네요!

<section>
<div className="section-box">
<img
src={require('../../assets/images/mainPage/Img_home_hot_item.png')}
Copy link
Collaborator

Choose a reason for hiding this comment

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

컴포넌트 밖 상단에서 따로 불러오는 걸 추천해요!

import HotItem from '../../assets/images/mainPage/Img_home_hot_item.png'

<img src={HotItem} alt='HotItem' />

</div>
</div>
<img
src={require('../../assets/images/mainPage/Img_home_item_search.png')}
Copy link
Collaborator

Choose a reason for hiding this comment

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

require() vs import 기능적인 차이는 없지만 그래도 알아두면 좋을 내용들이 아티클에 있어서 읽어보시길 추천!
https://inpa.tistory.com/entry/NODE-%F0%9F%93%9A-require-%E2%9A%94%EF%B8%8F-import-CommonJs%EC%99%80-ES6-%EC%B0%A8%EC%9D%B4-1

}
};

if (pageWidth < 768) {
Copy link
Collaborator

Choose a reason for hiding this comment

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

요걸 객체 프로그래밍 방식으로 변환한 예시를 보여드릴게요!
어떤 게 더 편해보이시는지 판단해보셔도 좋을 거 같아요!

const pageWidthSizes = {
  768: {upperSize: '1', lowerSize: '4'},
  1199: {upperSize: '2', lowerSize: '6'},
}

const upperSize = pageWidthSizes[pageWidth].upperSize ?? '4'
const lowerSize =  pageWidthSizes[pageWidth].lowerSize ?? '4'
fetchData(upperSize, lowerSize, order)

@lisarnjs lisarnjs merged commit 9ca2e33 into codeit-bootcamp-frontend:React-염성진 Jul 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