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단계 - 페이먼츠 모듈] 초코(강다빈) 미션 제출합니다. #21

Merged
merged 56 commits into from
May 7, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
56 commits
Select commit Hold shift + click to select a range
3cc2ccd
docs : 기능 구현 목록 작성
0jenn0 Apr 30, 2024
17e417a
docs: 기능 구현 목록에 구현 목록 추가
0jenn0 Apr 30, 2024
e533b22
chore: prettier 설정
0jenn0 Apr 30, 2024
5251817
chore: emotion 라이브버리 peerDependency 설정
0jenn0 May 1, 2024
405ee16
feat: 사각형 버튼 컴포넌트 구현
0jenn0 May 1, 2024
b96d34c
feat: 모달 닫기 버튼 컴포넌트 구현
0jenn0 May 1, 2024
a0323dc
feat: 모달 컴포넌트 구현
0jenn0 May 1, 2024
f987e87
feat: useModal 커스텀 훅 구현
0jenn0 May 1, 2024
2d8fafc
feat: useModal 사용
0jenn0 May 1, 2024
6846ded
docs: 구현 완료 사항 체크
0jenn0 May 1, 2024
c79dcc4
style: Button,Modal 컴포넌트 css 수정
0jenn0 May 1, 2024
dadfef9
feat: Modal 컴포넌트 스토리북 구현
0jenn0 May 1, 2024
0b73cfe
chore: 빌드 및 배포 세팅
0jenn0 May 1, 2024
8926ef8
chore: 라이브러리명 변경 및 리드미 작성
0jenn0 May 1, 2024
13a9d0c
Refactor: Modal 라이브러리 재설치
0jenn0 May 1, 2024
d3fe47c
docs: 구현 목록 완료 사항 체크
0jenn0 May 1, 2024
565d1a8
feat: 카드 소유자 이름 유효성 검사 커스텀 훅 구현
0jenn0 May 2, 2024
a18eb77
feat: 카드 발급사 유효성 검사 커스텀 훅 구현
0jenn0 May 2, 2024
4acc610
feat: 카드 번호 유효성 검사 커스텀 훅 구현
0jenn0 May 2, 2024
9f486ec
feat: 카드 CVC 유효성 검사 커스텀 훅 구현
0jenn0 May 2, 2024
09b6a6b
feat: 카드 유효기간 유효성 검사 커스텀 훅 구현
0jenn0 May 2, 2024
ce7cb80
feat: 카드 비밀번호 유효성 검사 커스텀 훅 구현
0jenn0 May 2, 2024
3714097
feat: 유효성 커스텀 훅 에러 메시지 상수화
0jenn0 May 2, 2024
496a5c0
feat: 유효성 검사 커스텀훅 사용
0jenn0 May 2, 2024
53a56ad
feat: 구현 목록 완료 사항 체크
0jenn0 May 2, 2024
be42793
docs: 라이브러리명 변경 및 리드미 작성
0jenn0 May 2, 2024
4de19d5
feat: payments hook 라이브러리 설치 및 사용
0jenn0 May 2, 2024
1ccae80
chore: 스토리북 배포
0jenn0 May 2, 2024
fcda754
docs : README.md 업데이트
00kang May 2, 2024
7c6fa5b
docs: Modal 라이브러리 리드미 수정
0jenn0 May 2, 2024
4c65fad
Merge branch 'step1' of https://github.com/0jenn0/react-modules into …
00kang May 2, 2024
35548c7
style : 줄바꿈 수정, switch case로 묶기
00kang May 3, 2024
f06671a
refactor: closeButton의 children 타입 더 정확하게 명시
00kang May 3, 2024
8ba1345
refactor : 모달의 뒷배경 이름 ModalDim으로 변경
00kang May 3, 2024
9d6604f
refactor : 불필요한 함수 래퍼 삭제
00kang May 3, 2024
c8c004c
refactor : React.FC를 사용하지 않고 함수형 컴포넌트로 수정
00kang May 3, 2024
32567bd
refactor : 에러 메시지 NO_INPUT 문구 수정
00kang May 7, 2024
716ed65
refactor : 주석 삭제 및 카드이름 문자열배열로 수정
00kang May 7, 2024
a81f788
refactor : prop, return 문서 순서 수정
00kang May 7, 2024
e1a0aa0
refacotr : useModal 훅의 리턴값에서 모달컴포넌트 제거
00kang May 7, 2024
dcedb7c
refactor : choco-modal-component로 재배포 및 App.tsx에서 사용
00kang May 7, 2024
e849ac6
refactor : choco-payments-validation-hooks로 재배포 및 App.tsx에서 사용
00kang May 7, 2024
e6a1ffe
refactor : 모달 children 컨텐츠의 스타일 적용
00kang May 7, 2024
9ef92fb
fix : 카드사 선택 버튼 경우의 수에 맞게 수정
00kang May 7, 2024
7fc6e50
refactor : 수정된 모달 컴포넌트에 맞게 스토리북 수정
00kang May 7, 2024
56c2b84
fix : useCardHolder 커스텀 훅 유효성 검사 수정
00kang May 7, 2024
d0428ea
feat : useCardHolder 커스텀 훅 테스트 코드 구현
00kang May 7, 2024
c113984
feat : useCardIssuer 커스텀 훅 테스트 코드 구현
00kang May 7, 2024
6561ade
feat : useCardNumber 커스텀 훅 테스트 코드 구현
00kang May 7, 2024
1a522ce
feat : useCVC 커스텀 훅 테스트 코드 구현
00kang May 7, 2024
ed644d5
feat : useExpiryDate 커스텀 훅 테스트 코드 구현
00kang May 7, 2024
9476785
feat : usePassword 커스텀 훅 테스트 코드 구현
00kang May 7, 2024
394f548
feat : choco-payments-validation-hooks 라이브러리 버전 업데이트
00kang May 7, 2024
71aca54
docs : 라이브러리 README.md 수정
00kang May 7, 2024
050ae77
feat : choco-payments-validation-hooks 라이브러리 업데이트
00kang May 7, 2024
960d328
feat : choco-modal-component 라이브러리 업데이트
00kang May 7, 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
51 changes: 51 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1 +1,52 @@
# react-modules

### Modal component

- [x] 모달 props
- [x] 모달 위치
- [x] 모달 타이틀
- [x] 모달 내용
- [x] 모달 닫는 방식
- [x] prop 이름 : closeButtonPosition : 'top' | 'bottom'
- [x] 모달 event
- [x] 열기
- [x] 닫기 - deem 눌러도 닫혀야된다.
- [ ] 확인 - optional
- [x] npm으로 배포하기
- [x] 설치 후 import해서 사용하기

### Payment custom hook

- 유효성 검사 결과와 에러 정보를 반환한다.

- [x] useCardNumber
- [x] 숫자여야한다.
- [x] 16자리여야한다.
- [x] useCardHolder
- [x] 영어 대문자+공백만 입력가능하다.
- [x] 공백 포함 15자까지만 가능하다.
- [x] useExpiryDate
- [x] 월은 1~12만 입력 가능하다. (월도 두자리로 입력해달라는 description 추가 )
- [x] 년도 2자리 숫자만 입력 가능하다.
- [x] 년,월 조합을 봤을 때 오늘보다 과거이면 에러를 낸다.
- [x] useCVC
- [x] 3자리 숫자만 입력 가능하다.
- [x] useCardType
- [x] 선택한 값이 있는지 검증한다.
- [x] usePassword
- [x] 2자리 숫자만 입력 가능하다.
- [x] npm으로 배포하기
- [x] 설치 후 import해서 사용하기

### Storybook

- [x] 모달 위치에 대한 테스트 시나리오
- [x] 모달 내용에 대한 테스트 시나리오
- [x] 모달 이벤트 핸들러에 대한 테스트 시나리오

### RTL

- [ ] 페이먼트 유효성 검사 커스텀 훅의 동작을 검증
- [ ] 다양한 입력 값에 대한 커스텀 훅의 결과
- [ ] 유효성 통과하는 경우
- [ ] 유효성 통과하지 않는 경우
10 changes: 10 additions & 0 deletions components/.prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
{
"printWidth": 100,
"tabWidth": 2,
"trailingComma": "es5",
"semi": true,
"singleQuote": false,
"bracketSpacing": true,
"arrowParens": "always",
"endOfLine": "auto"
}
64 changes: 63 additions & 1 deletion components/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,63 @@
# Button Module
# choco-modal-component

## Install

이 라이브러리를 사용하기 위해서는 다음 패키지를 설치해야 합니다:

```bash
npm install choco-modal-component
```

## Usage

React 컴포넌트에서 모달 라이브러리를 사용하려면 다음 단계를 따르세요

```jsx
import { useModal, Modal } from "choco-modal-component";

function App() {
const { isOpen, openModal, closeModal } = useModal();

return (
<>
<button onClick={openModal}>Open Modal</button>

<Modal
modalPosition="bottom"
title="모달의 제목"
closeButtonPosition="top"
isOpen={isOpen}
onClose={closeModal}
>
{/* 모달 내용 */}
</Modal>
</>
);
}

export default App;
```

## API

### ModalComponent

`ModalComponent`는 다음 props를 받습니다:
Copy link

Choose a reason for hiding this comment

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

return > prop 순으로 문서를 구성하신 이유가 있나요? input > output의 개념이라면 prop > return 이 더 자연스럽지 않을까 하는 생각이 들어서요!

Copy link
Member Author

@00kang 00kang May 7, 2024

Choose a reason for hiding this comment

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

input ouput 개념으로 생각해보니 이렇게 문서를 구성하는 게 더 자연스러울 것 같네요. 이건 생각하지 못한 부분이라 짚어주셔서 감사합니다.
추가로 라이브러리 문서화에서 꼭 챙겨야 할 포인트 혹은 고려할 점이 있을까요??

Copy link

Choose a reason for hiding this comment

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

문서화는 지금 정도만 해도 충분하다고 생각합니다! 보통 널리 쓰이는 라이브러리들은 이 라이브러리가 어떤 목표를 가지고 만들어졌고, 어떤 것을 중점적으로 다루고 있는지 정도도 추가해주는 것 같습니다! '가볍다'던지 '쓰기 쉽다'던지 컨셉 느낌으로요!

Copy link
Member Author

Choose a reason for hiding this comment

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

이 라이브러리의 목적을 나타내면 사용자에게 더 좋은 경험을 제공할 수 있겠군요! 추가해보도록 하겠습니다~


| props | description |
| ---------------------------- | --------------------------------------------------------------- |
| `modalPosition` (필수) | 모달의 위치입니다. 가능한 값은 `"center"`와 `"bottom"`입니다. |
| `title` (필수) | 모달의 제목입니다. |
| `children` (필수) | 모달의 내용입니다. |
| `closeButtonPosition` (필수) | 닫기 버튼의 위치입니다. 가능한 값은 `"top"`과 `"bottom"`입니다. |

### useModal

`useModal` 훅은 다음 속성을 가진 객체를 반환합니다:

| props | description |
| ---------------- | --------------------------------------------------------- |
| `isOpen` | 모달이 현재 열려 있는지 여부를 나타내는 boolean 값입니다. |
| `openModal` | 모달을 열기 위한 함수입니다. |
| `closeModal` | 모달을 닫기 위한 함수입니다. |
| `ModalComponent` | 지정된 props로 모달을 렌더링하는 컴포넌트입니다. |
4 changes: 4 additions & 0 deletions components/custom.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
declare module "*.png" {
const value: string;
export default value;
}
Loading