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

[1단계 - 페이먼츠] - 초코(강다빈) 미션 제출합니다. #357

Merged
merged 47 commits into from
Apr 23, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
617e258
테스트커밋
00kang Apr 16, 2024
b4a71cd
테스트커밋2
00kang Apr 16, 2024
da71f64
chore : 외부 접근 허용을 위한 host 옵션 추가
00kang Apr 16, 2024
9933f1a
docs : STEP1 기능 요구 사항 정리
00kang Apr 16, 2024
1c75b40
docs : 피그마 기반 사용할 컴포넌트 설계
00kang Apr 16, 2024
e7b9d36
chore : emotion 라이브러리 설치
00kang Apr 16, 2024
b3917bf
chore : card brand logo 이미지
00kang Apr 16, 2024
a32b093
feat: CreditCardBrandLogo 컴포넌트 구현
00kang Apr 16, 2024
02ed61c
style : reset.css 설정
00kang Apr 16, 2024
8e7e5ff
refactor : creditCard type 파일 분리
00kang Apr 17, 2024
670a4c5
feat : creditCard 정보 표시
00kang Apr 17, 2024
e447adc
refactor : CreditCard 컴포넌트의 인풋 type을 string으로 변환
00kang Apr 17, 2024
f004c03
feat : input을 입력받는 커스텀 훅 구현
00kang Apr 17, 2024
736d019
fix : 배열로 생성되는 컴포넌트에 key 값 추가
00kang Apr 17, 2024
bc50a6a
feat : 재사용 가능한 InputBox 컴포넌트 구현
00kang Apr 17, 2024
1cf7667
feat : 카드 정보 입력에 필요한 텍스트를 상수로 선언
00kang Apr 17, 2024
4100822
feat : 카드 소유자 이름 입력 기능 구현
00kang Apr 17, 2024
1bcc06e
feat : creditCard 입력 type 추가
00kang Apr 17, 2024
1e9afc5
style : InputBox 컴포넌트 스타일 구현
00kang Apr 17, 2024
01fd01f
style : 카드 소유자 이름 입력 컴포넌트 스타일 추가
00kang Apr 17, 2024
f3313ef
feat : 유효 기간 입력 컴포넌트 구현
00kang Apr 17, 2024
777a8f8
feat : 카드 번호 입력 컴포넌트 구현
00kang Apr 17, 2024
df39a31
feat : 카드 번호 입력 컴포넌트 구현
00kang Apr 17, 2024
01a578f
style : 카드 컴포넌트 스타일 추가
00kang Apr 17, 2024
20e6207
feat : payments 페이지 구현
00kang Apr 17, 2024
5c13882
docs : 기능 요구 사항 업데이트
00kang Apr 17, 2024
07e02d0
feat : 입력 값의 유효성 검사 진행
00kang Apr 18, 2024
3e8d63a
feat : 유효성 검사에 따른 error 피드백 추가
00kang Apr 18, 2024
09d410c
style : credit card 정보의 섹션별 높이 지정
00kang Apr 18, 2024
25bef0e
docs : README.md 업데이트
00kang Apr 18, 2024
c778dd5
chore : prettier 세팅
00kang Apr 18, 2024
deecba8
chore : prettier width 수정
00kang Apr 18, 2024
f1bea32
feat : cardFormType 상수화
00kang Apr 18, 2024
5d4894b
feat : 부호 상수화
00kang Apr 18, 2024
d962edd
chore : card inputbox name 상수화
00kang Apr 18, 2024
2ea979a
fix : Storybook 서버 오픈 에러 해결
00kang Apr 21, 2024
cc54d9a
refactor : TypeScript: Sort Imports 활용해서 import문 정렬
00kang Apr 22, 2024
b65cd97
refactor : description이 없을 땐 margin-bottom 속성을 0으로 주기
00kang Apr 22, 2024
d704fea
refactor : CreditCardBrandLogo 함수에서 컴포넌트로 수정
00kang Apr 22, 2024
e619f64
refactor : inputError 네이밍 isInputError로 변경
00kang Apr 22, 2024
3a3458e
refactor : inputWidthSize 파일 분리
00kang Apr 22, 2024
ae04d3a
refactor : description이 있을 땐 margin-bottom을 16px 주기
00kang Apr 22, 2024
32e1278
refactor : 여러 개의 InputBox가 하나의 레이블을 공유하니 aria-labelledby 속성 사용
00kang Apr 22, 2024
ca70e66
refactor : CreditCardForm의 props drilling 해결
00kang Apr 22, 2024
a3edcf4
style : 줄바꿈
00kang Apr 22, 2024
54d0d26
fix : creditCard 컴포넌트 스타일링 조정
00kang Apr 22, 2024
9a39090
test : creditCard 컴포넌트 Storybook 테스트
00kang Apr 22, 2024
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
5 changes: 1 addition & 4 deletions .eslintrc.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,6 @@ module.exports = {
parser: "@typescript-eslint/parser",
plugins: ["react-refresh"],
rules: {
"react-refresh/only-export-components": [
"warn",
{ allowConstantExport: true },
],
"react-refresh/only-export-components": ["warn", { allowConstantExport: true }],
},
};
8 changes: 8 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"printWidth": 100,
"tabWidth": 2,
"trailingComma": "es5",
"semi": true,
"singleQuote": false,
"bracketSpacing": true
}
37 changes: 37 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1 +1,38 @@
# react-payments

## STEP1

### 기능 요구 사항

- [x] 재사용 가능한 Input Component를 개발한다.

- [x] 카드 번호를 입력한다.
- [x] 카드 유효기간을 입력한다.
- [x] 카드 소유자 이름 입력한다.

- [x] 입력 받은 카드 번호를 식별한다.

- Visa: 4로 시작하는 16자리 숫자
- MasterCard: 51~55로 시작하는 16자리 숫자

- [x] 입력 유효성 검사를 진행한다.

- [x] 카드 번호 입력은 숫자만 가능하다. -> 에러 발생
- [x] 카드 번호 입력은 최대 4자리까지 입력이 가능하다.
- [x] 카드 유효기간 입력은 범위 내의 숫자만 가능하다. -> 에러 발생
- [x] 카드 유효기간 입력은 각 최대 2자리까지 입력이 가능하다.
- [x] 카드 소유자 이름 입력은 영문자 대문자만 가능하다. -> 에러 발생
- [x] 카드 소유자 이름을 영어 소문자로 입력해도 영문자 대문자로 변환 해준다.
- [x] 유효하지 않은 값 입력 시 피드백을 제공한다.

- [x] 사용자의 카드 정보 입력에 따라 카드 프리뷰를 실시간으로 업데이트한다.

- [ ] Storybook을 사용하여 컴포넌트의 다양한 상태를 시각적으로 테스트한다.

### 컴포넌트 설계

- CreditCard
- CreditCardForm
- InputCreditCardNumber
- InputExpirationPeriod
- InputOwnerName
3 changes: 3 additions & 0 deletions babel.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
module.exports = {
presets: ["@babel/preset-typescript"],
};
2 changes: 1 addition & 1 deletion index.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
Expand Down
Loading