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

[페이먼츠 미션 Step 2] 윤생(이윤성) 미션 제출합니다. #258

Merged
merged 102 commits into from
May 5, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
c4166e0
fix: card 데이터 id 누락 문제 해결
2yunseong Apr 25, 2023
60cff6b
fix: 카드 크기가 변경되는 오류 해결
2yunseong Apr 25, 2023
0206747
refactor: public 폴더 변경
2yunseong Apr 25, 2023
150615f
feat: css 파일 분리 및 스타일링 변경
2yunseong Apr 25, 2023
58a0a69
refactor: custom hook 네이밍 변경
2yunseong Apr 25, 2023
2ec399e
refactor: 로직에서 메서드 분리
2yunseong Apr 25, 2023
cbaae51
refactor: StrictMode 적용
2yunseong Apr 25, 2023
8a13ccf
refactor: 이벤트 매개변수 타입 구체화
2yunseong Apr 25, 2023
5c14ee2
refactor: 기능 응집도 증가
2yunseong Apr 25, 2023
00b1e1f
refactor: storybook default export 개선
2yunseong Apr 25, 2023
904df4c
feat: CardOwner 스토리북 구현
2yunseong Apr 25, 2023
22df1f8
refactor: decorator에서 사용되는 스타일 속성 상수화
2yunseong Apr 25, 2023
6c421cb
feat: AddCardPasswordInput 스토리북 생성
2yunseong Apr 25, 2023
ca2a223
feat: AddCardSecurityCodeInput 스토리북 구현
2yunseong Apr 25, 2023
a71d5c1
fix: expireDateInput 입력 오류 해결
2yunseong Apr 26, 2023
b3ab878
refactor: 디렉터리 변경
2yunseong Apr 26, 2023
fcd6e01
docs: 추가된 요구사항 최신화
2yunseong Apr 26, 2023
e5ec76e
feat: BottomSheet 컴포넌트 기본 틀 작성
2yunseong Apr 26, 2023
a0e4176
refactor: children 빌트인 타입 적용
2yunseong Apr 26, 2023
c8f5c16
refactor: import 와 코드 분리
2yunseong Apr 26, 2023
0c61235
refactor: 프로젝트 index.html 커스텀
2yunseong Apr 26, 2023
5840ed7
refactor: 범용적으로 쓰이는 변수 상수 파일로 분리
2yunseong Apr 26, 2023
71962f7
feat: 유효성 상태까지 가지는 Custom Hook 작성
2yunseong Apr 26, 2023
ac77922
feat: 재사용하는 InputContainer, ErrorMessage
2yunseong Apr 26, 2023
52998ee
feat: ErrorMessage 컴포넌트 구현
2yunseong Apr 26, 2023
e0f6fa4
refactor: Input Status 타입 공통 파일에 주입
2yunseong Apr 26, 2023
ad10502
feat: Input Container 컴포넌트 구체화
2yunseong Apr 26, 2023
562fecc
feat: expireDate 컴포넌트 새로운 Custom Hook으로 변경
2yunseong Apr 26, 2023
3a44154
feat: SecurityCodeInput 컴포넌트 새로운 Custom Hook으로 변경
2yunseong Apr 26, 2023
7e56d1a
feat: OwnerInput 컴포넌트 새로운 Custom Hook으로 변경
2yunseong Apr 26, 2023
c7efe74
feat: Password 컴포넌트 새로운 Custom Hook으로 변경
2yunseong Apr 26, 2023
aebb7af
feat: CardNumber 컴포넌트 새로운 Custom Hook으로 변경
2yunseong Apr 26, 2023
bb1e645
refactor: 디렉터리 구조 개편으로 인한 파일명 간단히 축약
2yunseong Apr 26, 2023
e3d432e
refactor: deprecated 된 코드 제거
2yunseong Apr 26, 2023
f200e88
refactor: 컴포넌트 변경에 따른 스토리북 수정
2yunseong Apr 26, 2023
af58f38
refactor: 디렉터리 이동
2yunseong Apr 26, 2023
c2e58d0
refactor: 공통 컨테이너 스타일 추가
2yunseong Apr 26, 2023
776e0e1
feat: 상태에 따라 입력 유효성 오류 메세지 보여주는 로직 구현
2yunseong Apr 26, 2023
31f8abf
chore: card 사 아이콘 추가
2yunseong Apr 27, 2023
e2c20e8
feat: CardSelectButton 컴포넌트 구현
2yunseong Apr 27, 2023
ff3cf57
feat: BottomSheet 열기/닫기 기능 전달
2yunseong Apr 27, 2023
14472db
feat: CardNameBottomSheet 구현
2yunseong Apr 27, 2023
83ac68a
feat: 카드 클릭시 토글 동작하기 및 선택 회사에 따른 색상 변경
2yunseong Apr 27, 2023
33f983e
feat: 카드 회사명 Card Component에 전달
2yunseong Apr 27, 2023
459feab
refactor: 현재 등록된 카드 데이터 Context로 관리
2yunseong Apr 27, 2023
2b680df
feat: 카드 별명 등록창 생성
2yunseong Apr 27, 2023
5111925
feat: PrivateRoute 구현
2yunseong Apr 27, 2023
7c188a7
refactor: 파일 이름 수정
2yunseong Apr 27, 2023
00fc069
refactor: 카드 데이터 타입 변경 및 범용성이 늘어난 유틸함수 export
2yunseong Apr 27, 2023
a5e8fef
feat: 입력 유효값에 따라 버튼 활성화/비활성화
2yunseong Apr 28, 2023
f567b36
refactor: 모듈 외부로 분리
2yunseong Apr 28, 2023
dffbe25
feat: bottom sheet 상태 custom hook으로 관리
2yunseong Apr 28, 2023
489aac6
refactor: 인덱스 프로퍼티 대신 Record 사용
2yunseong Apr 28, 2023
095efb2
feat: 카드 상태관리에 따른 custom hook 생성
2yunseong Apr 28, 2023
2142e5b
fix: 빈 유효년도를 에러로 인식하지 않는 오류 해결
2yunseong Apr 28, 2023
7bccfcc
feat: css 스타일링
2yunseong Apr 28, 2023
798224d
fix: 의존성 배열 수정
2yunseong Apr 28, 2023
11b53f7
refactor: 경로 변경
2yunseong Apr 29, 2023
e7df492
refactor: 불분명한 네이밍 변경
2yunseong Apr 29, 2023
2818bea
refactor: import 순서 및 가독성 개선
2yunseong Apr 29, 2023
9972a62
refactor: 타입 선언 외부로 분리
2yunseong Apr 29, 2023
ebd050a
test: 가짜 이벤트 객체를 반환하는 함수 생성
2yunseong Apr 29, 2023
cef89d9
test: useInput 카드 번호 테스트
2yunseong Apr 29, 2023
98f3572
test: useInput 카드 만료일(년도) 테스트
2yunseong Apr 29, 2023
6a66921
test: useInput 카드 만료일(월) 테스트
2yunseong Apr 29, 2023
d938f6f
test: useInput 카드 소유자 이름 테스트
2yunseong Apr 29, 2023
0a894c9
fix: 소유자 이름이 없을 때 에러가 발생하는 문제 해결
2yunseong Apr 29, 2023
993ba4e
test: useInput 보안번호(CVC/CVV) 테스트
2yunseong Apr 29, 2023
e79142b
test: useInput 카드 비밀번호 테스트
2yunseong Apr 29, 2023
b231ebb
test: 잘못된 테스트 제목 변경
2yunseong Apr 29, 2023
1d6c28d
refactor: 사용하지 않는 함수 제거
2yunseong May 1, 2023
b6925fb
refactor: 함수를 객체 리터럴로 변경
2yunseong May 2, 2023
aa0d89d
refactor: 추론할 수 있는 타입 제거
2yunseong May 2, 2023
80d4b86
refactor: 불필요하게 감싼 메서드 제거. named export 사용
2yunseong May 2, 2023
7ca547b
refactor: any 타입 제거
2yunseong May 2, 2023
83b6c3a
refactor: 인라인해서 사용하는 부분 선언해서 사용
2yunseong May 2, 2023
f50481d
refactor: props 전달 구조 변경
2yunseong May 2, 2023
a9a94e3
refactor: 하드코딩된 컴포넌트 리스트 컴포넌트로 변경
2yunseong May 2, 2023
d4306a6
refactor: 다소 의미가 다른 네이밍 수정
2yunseong May 2, 2023
7e6d49b
fix: 보안코드와 카드번호에 공백이 포함되어도 통과하는 로직 개선
2yunseong May 2, 2023
a08bd83
fix: 만료일 유효값 검증 로직 고도화
2yunseong May 2, 2023
2ed3d5c
fix: 만료일 입력 검증 변경에 따른 import 변경
2yunseong May 2, 2023
c081921
refactor: 상수로 분리
2yunseong May 2, 2023
cd4b984
refactor: 메모이제이션 적용 (React.memo)
2yunseong May 2, 2023
39bddef
refactor: 도메인 분리
2yunseong May 2, 2023
db7ad75
refactor: deprecated 된 코드 제거
2yunseong May 2, 2023
864e185
refactor: 네이밍 변경
2yunseong May 2, 2023
e898cc4
refactor: 표현이 중의적인 네이밍 변경
2yunseong May 2, 2023
cf114ef
refactor: 사용하지 않는 주석 제거
2yunseong May 2, 2023
df9eb96
refactor: 선언부 분리
2yunseong May 3, 2023
191d8fd
feat: createPortal 사용
2yunseong May 3, 2023
b194171
refactor: 디렉터리 경로 개편
2yunseong May 3, 2023
787c2c4
refactor: context api 더 좁은 범위로 축소
2yunseong May 3, 2023
fb98283
feat: 메모이제이션 적용
2yunseong May 3, 2023
5970d7f
fix: 불필요한 문자가 보이는 에러 해결
2yunseong May 4, 2023
ba87988
refactor: 응집도 개선
2yunseong May 4, 2023
92f44d8
fix: context api 제거
2yunseong May 4, 2023
4c5dfab
refactor: useEffect 분리
2yunseong May 4, 2023
2e17e73
refactor: 카드 등록 로직 분리
2yunseong May 4, 2023
3cc3a73
fix: deprecate된 코드 제거
2yunseong May 4, 2023
5ce6b68
refactor: useEffect 의존성 배열 값 추가
2yunseong May 4, 2023
4b5beee
fix: 소유자 이름이 선택 옵션으로 적용되지 않은 오류 해결
2yunseong May 4, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .storybook/main.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import type { StorybookConfig } from '@storybook/react-webpack5';

const config: StorybookConfig = {
stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'],
addons: [
Expand Down
3 changes: 2 additions & 1 deletion .storybook/preview.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import type { Preview } from '@storybook/react';
import '../src/components/FormCardAdd.css';

import '../src/pages/AddCard/components/AddCardForm.css';

const preview: Preview = {
parameters: {
Expand Down
4 changes: 4 additions & 0 deletions docs/REQUIREMENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,10 @@
- [x] 카드번호 뒷 8자리는 온점으로 표시한다.
- [x] "?" 버튼에 hover 상태면 cvc에 대한 설명을 보여줌.
- [x] (예외) 입력값이 잘못 들어오면 오류 메시지를 띄워준다.
- [x] 카드를 클릭하면 bottom sheet을 연다.
- [x] bottom sheet에서는 8개의 은행을 사용자가 선택할 수 있다. 은행을 선택하면 카드 좌측 상단에 선택된 카드 회사 이름이 뜨고, 카드 회사의 메인 색깔로 변경된다.
- [x] 카드 등록이 완료되면 카드에 별칭을 부여할 수 있다.
- [x] 별칭은 등록할 수도 있고 안할수도 있다.

### 카드 컴포넌트

Expand Down
Binary file modified public/favicon.ico
Binary file not shown.
35 changes: 4 additions & 31 deletions public/index.html
Original file line number Diff line number Diff line change
@@ -1,43 +1,16 @@
<!DOCTYPE html>
<html lang="en">
<html lang="ko">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
name="description"
content="Web site created using create-react-app"
/>
<meta name="description" content="react-payments-mission" />
<link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
<!--
manifest.json provides metadata used when your web app is installed on a
user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
-->
<link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
<!--
Notice the use of %PUBLIC_URL% in the tags above.
It will be replaced with the URL of the `public` folder during the build.
Only files inside the `public` folder can be referenced from the HTML.

Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>React App</title>
<title>💳 Payments</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
<noscript></noscript>
<div id="root"></div>
<!--
This HTML file is a template.
If you open it directly in the browser, you will see an empty page.

You can add webfonts, meta tags, or analytics to this file.
The build step will place the bundled scripts into the <body> tag.

To begin the development, run `npm start` or `yarn start`.
To create a production bundle, use `npm run build` or `yarn build`.
-->
</body>
</html>
Binary file removed public/logo192.png
Binary file not shown.
Binary file removed public/logo512.png
Binary file not shown.
14 changes: 2 additions & 12 deletions public/manifest.json
Original file line number Diff line number Diff line change
@@ -1,21 +1,11 @@
{
"short_name": "React App",
"name": "Create React App Sample",
"short_name": "페이먼츠",
"name": "우테코 - 페이먼츠 미션",
"icons": [
{
"src": "favicon.ico",
"sizes": "64x64 32x32 24x24 16x16",
"type": "image/x-icon"
},
{
"src": "logo192.png",
"type": "image/png",
"sizes": "192x192"
},
{
"src": "logo512.png",
"type": "image/png",
"sizes": "512x512"
}
],
"start_url": ".",
Expand Down
Binary file added src/asset/back_button.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/asset/bc_card.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/asset/hana_card.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/asset/hyundai_card.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/asset/kakao_bank.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/asset/kookmin_card.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/asset/lotte_card.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/asset/sinhan_card.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added src/asset/woori_card.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
18 changes: 0 additions & 18 deletions src/components/AddCardExpireDateInput.tsx

This file was deleted.

146 changes: 0 additions & 146 deletions src/components/AddCardForm.css

This file was deleted.

53 changes: 0 additions & 53 deletions src/components/AddCardForm.tsx

This file was deleted.

53 changes: 0 additions & 53 deletions src/components/AddCardNumberInput.tsx

This file was deleted.

20 changes: 0 additions & 20 deletions src/components/AddCardOwnerInput.tsx

This file was deleted.

Loading