Skip to content

Commit

Permalink
[2단계 - 장바구니] 호프(김문희) 미션 제출합니다. (#107)
Browse files Browse the repository at this point in the history
* chore: 불필요한 파일 및 gitignore 제거

* docs: 요구사항 작성

* feat: msw 설정 및 모킹 핸들러 작성
- products list get mocking api 작성
- 개별 product get mocking api 작성

* feat: msw api 모킹 추가

* docs: 기능목록 수정

* refactor: useReduxState 범용적으로 수정

- 스토어에 여러 isLoading, isError 상태가 추가될 경우를 대비하여 범용성 있게 수정

* feat: 장바구니 추가 훅 (useAddCartItem) 작성 및 적용

* refactor: Cart 리듀서 수정
- succeed 상태 추가

* fix: handler endpoint 수정

* feat: msw 장바구니 추가 / 삭제 로직 추가

* feat: CartItem 컴포넌트 작성

* feat: CartContainer 컴포넌트 작성

* feat: PaymentBox 컴포넌트 작성

* feat: Title 컴포넌트 작성

* feat: Cart 페이지 UI 작성

* style : PaymentBox 스타일링 수정

* feat: CheckBox 컴포넌트 작성

* feat: 장바구니 데이터 불러오기 구현

* feat: 장바구니 상품 선택 / 해제 기능 구현

* refactor: 컴포넌트 분리

- CartControlBar를 CartContainer 로부터 분리

* feat: 선택한 상품 가격 반영하도록 구현

* refactor: Price Type number 로 수정

* fix: PaymentBox 결제금액 파싱 추가

* feat: 상품 수량 수정 버튼 구현

* feat: 상품 수량 변경 기능 추가

* feat: 수량에 따라 보여지는 가격 달라지도록 수정

* feat: 장바구니 상품 삭제 구현

* refactor: 삭제/수량수정 hook으로 수정

* refactor: Action Type 네이밍 수정 및 위치 수정

* refactor: 불필요한 변수 제거 및 줄맞춤

* fix: 선택된 상품 없을 시, 삭제 누르면 요청하지 않도록 수정

* refactor: 장바구니 비어있음 상태 처리

* refactor: 리듀서 성공상태 추가
- 성공 상태 추가하여, 스토어에 데이터 저장되어 있을 시 요청 다시 보내지 않도록 구현

* refactor: 네이밍 수정 (data->cartItems)

* refactor: 네이밍 수정 및 상수 분리

* feat: 헤더 메뉴 누르면 이동하도록 구현

* refactor: 반복되는 로직 함수로 분리

* refactor: 변수명 수정

* refactor: 장바구니 상품 삭제 로직 hooks 로 분리

* refactor: 장바구니 수량변경 로직 hooks 로 분리

* refactor: 불필요한 스타일링 제거

* refactor: Styled component 네이밍 수정

* refactor: image alt 수정

* feat: 썸네일 이미지 없을 경우 대응

* chore: test 환경 설정

* test: 장바구니 리듀서 단위 테스트 작성

* test: 개별 상품 리듀서 단위테스트 작성

* test: 전체 상품 목록 리듀서 단위 테스트 작성

* fix: 오타 수정

* test: useReduxState 커스텀 훅 테스트 작성

* docs: 요구사항 수정

* docs: 요구사항 수정

* chore: 불필요한 라이브러리 삭제

* fix: 체크박스 에러 수정

- 개별 아이템 선택 시 가격 반영 안되는 문제 해결

* chore: test script 수정

* reefactor: 변수명 수정

* refactor: setState -> useEffect 로 리팩토링
- 기존에 state 변경 시, setState 에서 실행해주던 함수를 useEffect 로 리팩토링

* feat: useFetch 커스텀 훅 작성

* refactor: 개별 상품 리덕스 스토어 제거

* refactor: 상품 목록 Redux 제거

* refactor : 함수명 수정 및 불필요한 로직 제거

* refactor: Cart 관련 api 요청 useFetch 로 수정 및 커스텀 훅 간소화

* refactor: 불필요한 훅 제거

* refactor: Method 상수화

* refactor: util 함수 폴더 구조 수정

* chore: 불필요한 공백 제거

* refactor: 썸네일 대체 이미지 이름 변경 및 상단에서 주입해주도록 수정

* refactor: 장바구니 아이템 삭제/수량 변경 함수 컴포넌트 내부로 이동
- 기존에 페이지에서 props 로 내려주던 방식에서 컴포넌트 내부에서 핸들링 하도록 수정

* style: 헤더 사이즈 조정

* refactor: 에러 처리 수정

* refactor: 선택된 상품 삭제하는 api 수정
- Promise.all 사용하여 구현

* refactor: props 네이밍 수정

* refactor: useCart 에 있는 초기 장바구니 상품 로딩 로직 useCartPage로 이동

* style: 불필요한 css 제거

* refactor: props 네이밍 수정

* refactor: props 네이밍 수정

* refactor: CheckBox input in label 로 수정

* test: 불필요한 테스트 파일 삭제

* test: 장바구니 리듀서 테스트 수정

* test: useFetch 커스텀훅 테스트 작성

* refactor: 가독성을 위해 공백 추가

* chore: 삭제된 테스트 복구 및 불필요한 파일 제거

* test: 불필요한 테스트 제거

* refactor: useFetch PropTypes 수정

* refactor: 테스트 설명 수정

* refactor: 불필요한 PropTypes 제거

* refactor: 불필요한 propTypes 제거

* refactor: style 파일 구조 및 이름 수정
- 기존에 객체로 export default -> 변수로 export 하도록 수정

* refactor: 누락된 스타일 구조 변경 반영

* refactor: 컴포넌트 폴더 구조 수정
- 도메인(페이지단위) 별로 분리

* refactor: isLoading, isError 상태 따로 return 하도록 수정
  • Loading branch information
moonheekim0118 authored May 27, 2022
1 parent 50dbe7d commit c5fd138
Show file tree
Hide file tree
Showing 100 changed files with 3,493 additions and 797 deletions.
1 change: 1 addition & 0 deletions .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ module.exports = {
browser: true,
es2021: true,
node: true,
jest: true,
},
extends: ['eslint:recommended', 'plugin:react/recommended'],
parserOptions: {
Expand Down
4 changes: 0 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,6 @@

# dependencies
/node_modules
/.pnp
.pnp.js

# testing
/coverage
Expand All @@ -19,7 +17,5 @@
.env.production.local

npm-debug.log*
yarn-debug.log*
yarn-error.log*

.env
22 changes: 20 additions & 2 deletions REQUIRENMENTS.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# 장바구니
# Step1

- [x] CDD - 컴포넌트 개발
- [x] Header 컴포넌트 만들기
Expand Down Expand Up @@ -32,4 +32,22 @@

- [x] cart 리듀서 만들기
- [x] 장바구니 넣기 기능(같은 아이템을 중복으로 장바구니에 넣을 경우 수량을 1개씩 증가한다)
- [ ] 장바구니 페이지

<br/>

# Step 2

- [x] MSW를 활용해 API mocking
- [x] 상품 리스트 가져오는 API 작성 (GET)
- [x] 개별 상품 가져오는 API 작성 (GET)
- [x] 장바구니 담기 API 작성 (POST)
- [x] 장바구니 가져오는 API 작성 (GET)
- [x] 장바구니 페이지
- [x] CartItem 컴포넌트 만들기
- [x] CartContainer 컴포넌트 만들기
- [x] PaymentBox 컴포넌트 만들기
- [x] Title 컴포넌트 만들기
- [x] CheckBox 컴포넌트 만들기
- [x] 단위 테스트 작성
- [x] 리듀서 테스트
- [x] useReduxState 테스트
Loading

0 comments on commit c5fd138

Please sign in to comment.