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

상품 등록페이지 구현 #60

Merged
merged 16 commits into from
Dec 12, 2019
Merged

Conversation

Johnie-Yeo
Copy link
Collaborator

PR에 대한 요약

  • 상품등록 페이지에 대하여 구현하였습니다.

PR에 대한 동기와 상황에 대한 설명 부탁드립니다.

  • 상품 등록을 위한 전반적인 기능을 구현하였습니다.
  • 업로드한 사진에 대하여 클라이언트에서 사진 리사이징 작업을 수행하고 서버로 보내는 것으로 구현하였습니다.

이번 코드는 어떻게 테스트 되었나요?

결과물 스크린샷 (선택) :

어떤 변화인가요?

  • Bug fix (큰 변화없이 이슈를 고칩니다.)
  • New feature (큰 변화없이 기능을 추가합니다.)
  • Breaking change (기능을 추가하거나, 수정함으로서 기존의 기능에 영향을 줄 수 있습니다.)

체크리스트:

  • 본 프로젝트의 코드 스타일을 따랐습니다.
  • [] 이번 변화에 대한 결과로, 본 프로젝트의 문서를 수정해야 합니다.
  • 이에 따라 본 프로젝트의 문서를 적절히 갱신하였습니다.

본 PR은 다음 이슈에 해당하는 내용입니다.

Closes #27

- 판매자가 물품을 판매하기 위한 UI입니다.
- 사진 업로드를 하면 먼저 클라이언트에서 큰 사진인지 판별하고 용량이 큰 파일에 대해서는 이미지 프로세싱 작업을 수행합니다.
- 이를 통해 서버에서 부담을 줄일 수 있고 사용자의 사용 환경에 따른 맞춤형 사진을 제공할 수 있습니다.
- 시간 제약으로 구조를 신경쓰지 않고 작성된 코드를 전반적으로 수정하였습니다.
- 이미지 업로드 에러처리로 사용자가 반드시 수정을 해야할수 있게 modal을 통해 에러를 알리게 하였습니다.
- 업로드한 사진목록을 캐로셀 형태로 보여줍니다.
- 팀회의 결과에 따라 캐로셀을 리스트 형식으로 변경하였습니다.
- localStorage를 활용하여 새로고침 시에도 사진이 사라지지 않게 하였습니다.
- 사진 삭제가 가능하도록 삭제 버튼을 추가하였습니다.
- 사진 삭제 기능 구현
- 새로 고침 시 등록중이던 사진이 사라지는 문제 해결
- 목데이터 삽입 방법 변경
- 폼데이터의 값들을 불러모아 서버로 전송하는 submit을 구현했습니다.
- 거래 유형의 경우 개발의 편의를 위해 기존의 radio button에서 radio group 형식으로 변경하였습니다.
- 경고 모달의 경우 여러가지 종류의 에러메세지를 보여 줄 수 있도록 수정하였습니다.
@Johnie-Yeo Johnie-Yeo added epic:상품관리 epic task 유저 스토리에 포함되어 있는 세부 테스크들 priority: 상 스크럼 작업을 위한 우선순위 (상) labels Dec 3, 2019
@Johnie-Yeo Johnie-Yeo self-assigned this Dec 3, 2019
@Johnie-Yeo Johnie-Yeo changed the title Client web/product enroll 상품 등록페이지 구현 Dec 3, 2019
Copy link
Collaborator

@sukjae sukjae left a comment

Choose a reason for hiding this comment

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

고생 많으셨습니다~

web-apps/client/src/components/addPicture.jsx Outdated Show resolved Hide resolved
web-apps/client/src/components/addPicture.jsx Outdated Show resolved Hide resolved
web-apps/client/src/components/addPicture.jsx Outdated Show resolved Hide resolved
web-apps/client/src/components/addPicture.jsx Outdated Show resolved Hide resolved
web-apps/client/src/components/alertDialog.jsx Outdated Show resolved Hide resolved
web-apps/client/src/components/drawer.jsx Outdated Show resolved Hide resolved
web-apps/client/src/components/drawer.jsx Outdated Show resolved Hide resolved
web-apps/client/src/components/imageList.jsx Outdated Show resolved Hide resolved
web-apps/client/src/components/productForm.jsx Outdated Show resolved Hide resolved
web-apps/client/src/components/productForm.jsx Outdated Show resolved Hide resolved
web-apps/client/src/components/addPicture.jsx Outdated Show resolved Hide resolved
web-apps/client/src/components/addPicture.jsx Outdated Show resolved Hide resolved
web-apps/client/src/components/addPicture.jsx Outdated Show resolved Hide resolved
web-apps/client/src/components/addPicture.jsx Outdated Show resolved Hide resolved
web-apps/client/src/contexts/imageStore.jsx Outdated Show resolved Hide resolved
web-apps/client/src/components/imageList.jsx Outdated Show resolved Hide resolved
web-apps/client/src/utils/apiCall.js Outdated Show resolved Hide resolved
web-apps/client/src/utils/apiCall.js Outdated Show resolved Hide resolved
web-apps/client/src/utils/imageProcess.js Show resolved Hide resolved
web-apps/client/src/utils/imageProcess.js Outdated Show resolved Hide resolved
Copy link
Collaborator Author

@Johnie-Yeo Johnie-Yeo left a comment

Choose a reason for hiding this comment

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

엄청 작업량이 많은 PR이었는데 세세한 리뷰 감사합니다.
바로 반영된 의견은 따봉만 달았습니다.
감사합니다!

web-apps/client/src/components/addPicture.jsx Outdated Show resolved Hide resolved
web-apps/client/src/components/addPicture.jsx Outdated Show resolved Hide resolved
web-apps/client/src/components/addPicture.jsx Outdated Show resolved Hide resolved
web-apps/client/src/components/addPicture.jsx Outdated Show resolved Hide resolved
Comment on lines 53 to 54
const preResized = files.map((_) => ({loading: true}));
setImages(preResized);
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

해당 부분은 context로 이미지가 로딩 중이라는 것을 form 컴포넌트에 전달하기 위해 작성되었습니다.

Comment on lines 76 to 85
const checkAllInfoFilled = (product) => {
const {
title,
userId,
price,
pictures,
contents,
productStatus,
category,
} = product;
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

product에 있는 모든 속성을 사용하지는 않기 때문입니다. 만약 저 부분을 수정하면 똑같은 객체가 3번 작성 되어야 합니다.(함수 호출 전 destructuring, 함수 호출에서 객체, 파라미터에서의 destructuring) 약간의 불필요한 인자도 넘어오긴 하지만 큰 문제는 되지 않고, 가독성을 위해 현재 상태가 더 좋다고 판단했습니다.

evt.preventDefault();

const images = window.localStorage.getItem('images');
const imageList = images.split(' ').slice(0, -1);
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

좋은 의견 감사합니다.

web-apps/client/src/components/productForm.jsx Outdated Show resolved Hide resolved
web-apps/client/src/contexts/imageStore.jsx Outdated Show resolved Hide resolved
web-apps/client/src/utils/imageProcess.js Show resolved Hide resolved
- 코드리뷰를 통해 지적받은 사항들을 전반적으로 수정하였습니다.
- submit의 유저 정보를 mock 데이터에서 실제 쿠키의 토큰값을 통해 얻어낸 유저 정보로 치환하였습니다.
- 선언 후 사용하지 않는 속성 제거
- font 설정
- UI 수정
- 이미지가 없을때 문구 출력
- 이미지 업로드 프로세스 custom hooks 처리
- 이미지 스크롤 속성을 auto 처리
- localstorage의 상태를 항상 현재 상태로 동기화
- 사진을 추가로 업로드 가능하도록 수정
- 사진 업로드 서버가 없을때에 대한 에러처리
- 사진 수 10개 제한
- 사용자가 입력하지 않은 항목에 대해 알려주기 위한 변경
- 반응형을 고려해 모든 항목에 대해 크기를 rem으로 지정하였고 index.css 에 vmin을 이용하여 폰트 크기를 설정함으로써 반응형이 어느정도 유지되도록 설정하였습니다.
- 가로 모드에서 전체 균형이 깨지는 문제를 수정하였습니다.
Copy link
Collaborator

@sukjae sukjae left a comment

Choose a reason for hiding this comment

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

고생 많으셨습니다~

Copy link
Contributor

@kgpyo kgpyo left a comment

Choose a reason for hiding this comment

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

고생하셨습니다!

@Johnie-Yeo Johnie-Yeo merged commit ee35654 into client-web/master Dec 12, 2019
@Johnie-Yeo Johnie-Yeo deleted the client-web/productEnroll branch December 12, 2019 09:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
epic:상품관리 epic priority: 상 스크럼 작업을 위한 우선순위 (상) task 유저 스토리에 포함되어 있는 세부 테스크들
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants