Skip to content

Commit

Permalink
[1단계 - 음식점 목록] - 버건디(전태헌) 미션 제출합니다. (#104)
Browse files Browse the repository at this point in the history
* feat: setup build configurations and templates

* docs: 기능 구현 목록 작성

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* init: eslint setting

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 레스토랑 객체 생성

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 레스토랑 리스트 도메인 작업

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: index.js 추가

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* chore: 파일 이름 오타 수정

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: header 컴포넌트 생성

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: filter bar 컴포넌트 생성

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 레스토랑 리스트 컴포넌트 생성

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 레스토랑 컴포넌트 생성

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 도메인에서 로컬스토리지 사용

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 모달 컴포넌트 생성

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* chore: 사진 아이콘 import

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 레스토랑 컴포넌트 사진 임포트 및 컴포넌트 수정

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 모달 이벤트 리스너 작업

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 모달 오픈 이벤트 핸들러 작업

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: dimmer 클릭시 모달 닫기 기능 추가

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 모달 버튼 분리 및 카테고리 선택자 추가

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: modal 내부 컴포넌트 추가

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* chore: 탬플릿 변수 이름 수정

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 데이터 store 및 필터링 서비스 분리

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 카테고리 필터링 기능

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 문자열을 html dom 으로 변환하는 유틸

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 솔팅 메뉴 기능 추가

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 거리순 솔팅 중 같은 거리일 시 이름순으로 지정

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 솔팅과 필터링 모두 적용 작업

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 새로운 레스트랑 추가 기능 작업

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 변경사항 이후리랜더 기능 추가

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 레스토랑 추가 모달 내부 작업

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* refactor: filter bar 메서드 분리 및 format 함수 적용

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* refactor: header 메서드 분리 및 format 함수 적용

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* refactor: restaurant 컴포넌트 메서드 분리

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* refactor: modal content format 함수 적용

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: app 컴포넌트 생성

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* chore: template 이름 변경

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* refactor: 랜더 함수 호출 없애기

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 서브밋 버튼 클릭 후 validate 체크 및 에러 메세지 출력

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 에러 메세지 이후 수정시 메세지 삭제 기능 추가

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* refactor: 핸들러 함수 분리

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* chore: css 클래스 이름 변경

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 서브밋 시 이전 에러 메세지 삭제

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 폼 제출/취소시 이전 데이터 삭제

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* feat: 등록된 가게 중복 체크

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* refactor: 불필요한 메서드 병합

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* refactor: handler 분리 작업

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* refactor: handler 분리 작업 및 불필요한 라인 정리

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* refactor: eslint 세팅 후 리팩토링

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* refactor: mapped interface 사용

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* chore: 파일 이름 변경

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* chore: template 파일 이름 변경 후 import 수정

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* refactor: 랜더 핸들러 분리

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* chore: 사용하지 않는 선언 삭제

Co-Authored-By: JEON TAEHEON <109535991+brgndyy@users.noreply.github.com>

* chore: package.json 불필요한 내용 삭제

* refactor: 문자열 DOM요소 변환 유틸함수 DOMParser API 사용으로 변경

* refactor: eventHandler 파일명 수정 및 함수명 변경

* feat: 공용으로 사용할 Select 컴포넌트 생성

* style: prettier 룰 추가

* style: prettier 룰 적용

* feat: 받은 옵션을 통해 공용 Select 컴포넌트를 만들어주는 함수 생성

* feat: 셀렉트 태그 관련 정보들 상수로 분리 후 바인딩

* refactor: 음식점 리스트 컴포넌트 초기화 함수 랩핑 삭제

* refactor: 헤더 컴포넌트 이벤트 핸들러 관련 파일명 수정

* refactor: eslint 룰 맞게 임포트 수정

* refactor: 컴포넌트마다 렌더함수 삭제

* feat: 공용 버튼 컴포넌트 생성

* feat: 버튼 관련 컴포넌트 데이터 생성 및 바인딩

* feat: 공용 Label 컴포넌트 생성

* refactor: 컴포넌트 생성 유틸함수 파일명 변경

* refactor: 공용 컴포넌트 타입 파일 분리 및 적용

* style: prettier 적용

* feat: 공용 Input 컴포넌트 생성 및 바인딩

* feat: 공용 Span 컴포넌트 생성

* feat: 링크 컴포넌트 공용 컴포넌트로 바인딩

* refactor: 공용 span 컴포넌트 생성 유틸함수 임포트 순서 변경

* feat: 음식점 이름 입력 컴포넌트 공용 컴포넌트로 바인딩

* refactor: 내부 변수명 변경

* style: 기존 파일 prettier 적용

* refactor: Select 공용 컴포넌트 required 속성 받도록 수정

* feat: 모달 내 카테고리 셀렉트 공용 컴포넌트 바인딩

* feat: 음식점 카테고리 데이터 상수 분리

* refactor: 기존 handlers였던 파일명 eventHandlers로 변경

* style: 기존 헤더 템플릿 prettier 적용

* refactor: handlers 파일명 eventHandlers로 변경

* feat: 공용 TextArea 컴포넌트 생성 및 바인딩

* refactor: 음식점 셀렉트 옵션 데이터 상수 분리

* feat: 거리 선택 셀렉트 공용 컴포넌트로 바인딩

* refactor: 기존 handlers.ts eventHandlers.ts 로 파일명 변경

* feat: description 컴포넌트 공용 컴포넌트로 바인딩

* refactor: eslint룰에 맞게 수정

* refactor: 독립된 ui를 위해 컨테이너 클래스명 추가

* refactor: 컴포넌트 옵션 데이터들 폴더별로 분리

* refactor: Helper 클래스 폴더 분리

* refactor : isValid 프로퍼티 success 로 변경

* refactor: 에러메세지 상수 분리

* refactor: eslint 룰 맞게 수정

* refactor: 공용 컴포넌트 생성 Object.assign으로 변경

* refactor: App 메인 컴포넌트에서 render 함수 삭제

* refactor: 공용 TextArea 컴포넌트 수정

* reafctor: 파일명 수정

* refactor: 컴포넌트 관련 데이터 폴더 위치 변경

* refactor: 유틸함수 수정

* refactor: 함수명 수정

* refactor: 파일명 변경

* feat: 공용 컨테이너, 리스트 컴포넌트 생성

* feat: 공용 헤딩 컴포넌트 생성

* feat: 공용 이미지 컴포넌트 생성

* feat: 공용 P 컴포넌트 생성

* feat: RestaurantListItem 컴포넌트 생성 및 바인딩

---------

Co-authored-by: woowapark <shinyoung.park@woowahan.com>
Co-authored-by: Hyelim Choi <HyelimChoi01@gmail.com>
  • Loading branch information
3 people authored Mar 12, 2024
1 parent bd40be3 commit dc54253
Show file tree
Hide file tree
Showing 111 changed files with 13,285 additions and 7,503 deletions.
87 changes: 82 additions & 5 deletions .eslintrc.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,88 @@
{
"rules": {},
"rules": {
"import/extensions": ["off"],
"no-await-in-loop": "off",
"no-constant-condition": "off",
"max-lines-per-function": ["error", 10],
"max-depth": ["error", 1],
"no-console": "off",
"class-methods-use-this": "off",
"spaced-comment": "off",
"lines-between-class-members": [
"error",
"always",
{ "exceptAfterSingleLine": true }
],
"sort-imports": [
"error",
{
"ignoreCase": true,
"ignoreDeclarationSort": true,
"ignoreMemberSort": false,
"allowSeparatedGroups": true
}
],
"import/order": [
"error",
{
"newlines-between": "always",
"groups": [
["builtin", "external"],
"internal",
"parent",
"sibling",
"index"
],
"pathGroups": [
{
"pattern": "next",
"group": "builtin"
},
{
"pattern": "react",
"group": "builtin"
},
{
"pattern": "@MyDesignSystem/**",
"group": "internal"
},
{
"pattern": "src/**",
"group": "internal"
}
],
"pathGroupsExcludedImportTypes": ["src/**", "@MyDesignSystem/**"],
"alphabetize": {
"order": "asc",
"caseInsensitive": true
}
}
]
},
"env": {
"es6": true,
"node": true
"node": true,
"jest": true
},
"parserOptions": {
"ecmaVersion": "latest"
"ecmaVersion": 2023,
"sourceType": "module"
},
"extends": ["eslint:recommended", "plugin:prettier/recommended"]
"parser": "@typescript-eslint/parser",
"plugins": ["@typescript-eslint"],
"extends": [
"airbnb",
"airbnb/hooks",
"prettier",
"eslint:recommended",
"plugin:@typescript-eslint/eslint-recommended",
"plugin:@typescript-eslint/recommended"
],
"settings": {
"import/parsers": {
"@typescript-eslint/parser": [".ts", ".tsx"]
},
"import/resolver": {
"typescript": {}
}
}
}
8 changes: 8 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
{
"singleQuote": true,
"semi": true,
"useTabs": false,
"tabWidth": 2,
"trailingComma": "all",
"printWidth": 120,
"bracketSpacing": true,
"arrowParens": "always",
"endOfLine": "auto"
}
19 changes: 19 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,21 @@
# javascript-lunch

우아한테크코스 레벨1 점심 뭐 먹지 미션

### 1단계 - 기능 구현 목록

- [ ] 등록된 음식점 리스트를 확인할 수 있다.
- [ ] 음식점 리스트를 정렬 가능하다.
- [ ] 거리순
- [ ] 이름순
- [ ] 음식점을 카테고리로 필터링 할 수 있다.
- [ ] 새로운 음식점을 추가할 수 있다.
- [ ] 카테고리, 이름, 거리는 입력 필수
- [ ] 카테고리는 "한식", "중식", "일식", "아시안", "양식", "기타" 중 하나를 선택
- [ ] 거리는 캠퍼스로부터 도보로 걸리는 시간(분). 5, 10, 15, 20, 30 중 하나를 선택
- [ ] 설명, 참고 링크는 옵션
- [ ] 유효하지 않은 값 입력 시 텍스트 박스 하단에 에러 표시
- [ ] 새로고침해도 추가한 음식점 정보들이 유지해야한다.
- [ ] 기타 UX
- [ ] dimmer 클릭시 모달 닫힘
- [ ] 모바일 반응형으로 제작한다.
24 changes: 11 additions & 13 deletions index.html
Original file line number Diff line number Diff line change
@@ -1,15 +1,13 @@
<!DOCTYPE html>
<!doctype html>
<html lang="ko">

<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>점심 뭐 먹지</title>
</head>

<body>

</body>

<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>점심 뭐 먹지</title>
</head>

<body>
<script type="module" src="./src/index.js"></script>
</body>
</html>
Loading

0 comments on commit dc54253

Please sign in to comment.