Skip to content

Commit

Permalink
[장바구니 협업 Step 1] 윤생(이윤성) 미션 제출합니다. (#88)
Browse files Browse the repository at this point in the history
* feat: 기본 코드 셋팅

* refactor: api 명세에 맞춰 fetchQuery 응답 형태 변경

* fix: 명세서에 따라 장바구니 아이템 추가 api 변경

* fix: 장바구니 아이템 추가, 수정, 삭제 api 인증 인가 로직 추가

* feat: 서버 엔드포인트를 select로 변경할 수 있는 기능 추가

* fix: 잘못된 base64 수정

* fix: cors 해결을 위해 http method 대소문자 변경

* fix: 응답 데이터가 없는 경우 핸들링

* feat: 요청 데이터에 맞는 응답 헤더 속성 추가

* fix: 응답 형식에 맞게 장바구니 응답 타입 변경

* fix: 응답 형식에 맞게 응답 데이터 형식 변경

* refactor: composedCartItemMutation 로직 가독성 있게 변경

* refactor: 발생한 에러가 CustomError인 경우 그대로 throw 하도록 변경

* refactor: 수량 변경 디바운싱 추가

* refactor: refresher 네이밍 변경

* refactor: api 관련 타입 분리

* refactor: EndpointRefresher 분리

* refactor: endpoint atom 디렉토리, 네이밍 변경

* refactor: App과 엔트리의 관심사 분리

* refactor: EndpointRefresher 분리

* refactor: endpoint atom 디렉토리, 네이밍 변경

* refactor: App과 엔트리의 관심사 분리

* chore: fix typo

* refactor: api response 네이밍 변경

- body > data

* refactor: atom 네이밍 일관성 부여

- products > productsSelector

* refactor: 최상위 loading fallback 변경

* refactor: defaultConfig private prefix 추가

* chore: 주석 제거

* refactor: 장바구니 아이템 선택 삭제 로직을 Promise.all로 변경

* refactor: debounce 로직 util 함수로 분리

* test: fetchQuery test

---------

Co-authored-by: n0eyes <doll4586633@naver.com>
  • Loading branch information
2yunseong and n0eyes authored May 25, 2023
1 parent 3942b06 commit 0f3bf02
Show file tree
Hide file tree
Showing 89 changed files with 45,227 additions and 4 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
node_modules/
.DS_Store
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,17 @@
<img src="https://techcourse-storage.s3.ap-northeast-2.amazonaws.com/3e6c6f30b11d4b098b5a3e81be19ce3a" width="400">
</p>
<h2 align="middle">Level2 - 장바구니</h2>
<p align="middle">React & Redux 장바구니 협업 미션</p>
<p align="middle">React & Redux 데스크탑 장바구니 애플리케이션</p>
</p>

## 🚀 Getting Started

백엔드와의 협업을 통해 실제 동작하는 애플리케이션을 만듭니다.
> 다수의 컴포넌트를 페이지로 구성하고 복잡해진 상태를 관리합니다.
<br>
✔️ `데스크탑 타겟`의 웹 앱을 구현하며 구매로 이어지는 것에 끊김이 없고 `재방문을 고려한 UI/UX`에 대해 고민해봅니다.
✔️ 상태 관리를 위해 `Flux Architecture` 기반의 `Redux`를 활용합니다.
✔️ `Router`를 활용해 여러 페이지 전환을 고려합니다.
✔️ [배민상회](https://mart.baemin.com) 서비스 참고

## 👏 Contributing

Expand All @@ -19,4 +22,4 @@

## 🐞 Bug Report

버그를 발견한다면, [Issues](https://github.com/woowacourse/react-shopping-cart-prod/issues)에 등록해주세요.
버그를 발견한다면, [Issues](https://github.com/woowacourse/react-shopping-cart/issues)에 등록해주세요.
10 changes: 10 additions & 0 deletions REQUIREMENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
# 도메인

- [x] 상품을 원하는 개수만큼 장바구니에 담을 수 있다

# UI

- [x] 장바구니 아이콘을 클릭하면 상품 수량 선택 인풋으로 변경된다
- [x] 상품 수량은 최대 100개까지 가능하다
- [x] 수량을 1미만으로 선택하면 장바구니 아이콘으로 돌아간다
- [x] 상품을 장바구니에 추가하면 장바구니 수량 뱃지가 갱신된다
6 changes: 6 additions & 0 deletions babel.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
module.exports = {
presets: [
['@babel/preset-env', { targets: { node: 'current' } }],
'@babel/preset-typescript',
],
};
1 change: 1 addition & 0 deletions jest.setup.js
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
import '@testing-library/jest-dom';
Loading

0 comments on commit 0f3bf02

Please sign in to comment.