# 5/23 월
# README
## 협업 관련
- Git 레포 파고 collaborator 추가해서 사용
- Git Branch 전략
- team-31 <= dev
- dev(PR 보내기용, 데모용)
- feat/task-name/issue-num <- 브랜치파서 Dev 로 PR
- Git Commit Convention
- feat : 기능
- env : 환경설정
- style : 코드에 영향을 주지 않는 변경 (오타, css 수정)
- fix : 버그 수정
- chore : 패키지관련 내용 수정(package.json)
- rename : 폴더구조변경, 네이밍 수정
- refactor : 같은 기능을 하는 코드의 개선
- docs : README 수정
- Git Issue Template
- 스토리-테스크 나누고 생각
- Milestone
- Git PR Template
```
issue #{num}
{필요시 할말}
-- 이부분은 확인 후 지워주세요 --
제목 컨벤션 -> `[<who>] short-description`
본문에 이슈번호 태그 -> ex) issue #37
```
### 그라운드 룰
- 웬만하면 문서로 이야기 될 수 있게
- 문서화 연습
- `~ 로직이 이해가 안되는데 설명해주세요` 는 문서or댓글로 설명해보자
- 지각 금지!!
- 페어할 때에는 의도적으로 휴식 (1시간+-, 10분)
### BE
- 숙소정보
- msw Backend ?
- API........
## 프로젝트 진행
- TypeScript
- MaterialUI + styled components
- CRA 말고 직접 환경설정 하기
- 상태관리
- useReducer + Context API 활용
- eslint
- airbnb
- prettier
- tabWidth: 2
### 코딩컨벤션
- 컴포넌트 구조
- 폴더/index.jsx
- 폴더/하위컴포넌트
- 컴포넌트(생성자함수, 클래스) -> 대문자
- Header
- Search/
- HeaderButton.jsx
- index.jsx // Header.jsx
## 1주차 - 환경설정 마무리, 메인페이지 - 디자인뽑기 + 레이아웃배치
- 화: 환경설정 세팅
- 수: 5시 PR
- 목: ~?
- 금: 2시 PR
- 수요일
- 디자인을 보고서 공통으로 쓰일 수 있는 컴포넌트 만들기
## 2주차
- 검색결과 페이지 - 디자인뽑기 + 레이아웃배치
- 모달
- msw 가 필요할 때 도입
### Story
- 로고, 메뉴 (숙소, 체험, 온라인체험) 마이페이지 기능을 하는 버튼이 GNB 상단에 위치한다.
- 메뉴들은 hover 효과가 있다.
- GNB 아래에는 검색바가 위치한다.
- 검색바에서 체크인/체크아웃 영역을 클릭하면 여행기간을 입력할 수 있는 **캘린더**가 모달창으로 뜬다.
- 캘린더는 2개월간의 일정을 볼 수 있다
- 화살표를 누르면 캘린더가 슬라이딩 된다.
- 검색바가 활성화되면 Focus 상태로 변한다
- 이미 지난 날짜 및 이미 예약된 날짜는 선택할 수 없다
### 캘린더 모달
- 날짜를 처음 클릭하면 체크인 필드에 해당 일자가 입력
- 다음 날짜를 클릭하면 체크아웃 필드에 해당 일자가 입력
- 다음 날짜가 처음 클릭한 날짜보다 이전인 경우 체크인-날짜가 두 번째 클릭 날짜로 변경, 체크아웃은 입력되지 않음
- 체크인 날짜보다 늦은 날짜를 클릭한 경우 체크아웃 날짜만 업데이트됨
- 같은 날짜를 클릭하면 체크인, 체크아웃이 같은 날짜로 입력됨
- 체크인/체크아웃 박스의 X 를 누르면 체크인/체크아웃 필드의 입력값이 초기화됨
- 모달창(캘린더) 이외의 영역을 누르면 모달창이 닫힌다
- 체크인/체크아웃을 눌렀을 시에는 리렌더링
### 요금 모달
- 검색바에서 요금 영역을 클릭하면 선택한 날짜를 기준으로 가격 범위를 표시한 모달창이 뜬다
- 레인지 슬라이더를 이용해 가격을 설정할 수 있다
- 가격범위 텍스트가 실시간으로 변경된다.
- 슬라이더는 양끝에 있고 가격정보에는 최저-최고 값으로 표시된다.
- 슬라이더는 서로 지나쳐 이동할수 없고 서로 완벽히 겹칠수 없다
- 값이 입력되면 X 버튼이 활성화 되고, X 버튼을 누르면 슬라이더의 값이 초기화 된다.
- 모달창 이외의 영역을 누르면 모달창이 닫힌다.
### 인원 조정 모달
- 인원 영역을 클릭하면 게스트 인원을 입력할 수 있는 모달창이 뜬다.
- 기본 및 최소값 : 0
- 최대값 : 8
- 더 감소하거나 증가할 수 없는 경우 버튼 비활성화
- 성인이 0이고 어린이, 유아가 입력된 경우 성인의 인원수가 1로 변경된다.
- 검색바에서 '성인, 어린이'는 게스트로 표기되며 '유아'는 유아로 표기된다.
- 값이 입력되면 X 버튼이 활성화 되고, X 버튼을 누르면 슬라이더의 값이 초기화 된다.
- 모달창 이외의 영역을 누르면 모달창이 닫힌다.