From 521e417fc6b5647bebef8f99b66eea6c293f34cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=8F=99=ED=98=B8?= <66300965+kdkdhoho@users.noreply.github.com> Date: Thu, 3 Aug 2023 16:59:00 +0900 Subject: [PATCH] =?UTF-8?q?release:=20=ED=94=84=EB=A1=A0=ED=8A=B8=EC=97=94?= =?UTF-8?q?=EB=93=9C=20v1=20(#244)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: 초기설정 Co-authored-by: Minjae Kim Co-authored-by: 황준승 * chore: 스토리북 패키지 설치 Co-authored-by: Minjae Kim Co-authored-by: 황준승 * chore: global style 설정 reset css, 메인 색상 상수화 Co-authored-by: Minjae Kim Co-authored-by: 황준승 * chore: 프론트엔드 환경설정웹팩 바벨 수정 (#31) * chore: ignorePatterns 속성 추가 (#30) lint 설정이 필요없는 파일 설정하기 * chore: @babel/preset-env useBuiltIn 속성 설정 추가 (#30) * chore: 이미지 로더 Webpack5 최신 문법으로 변경 (#30) Change: - url-loader: limit을 10000 -> 8kb로 변경 * chore: 웹팩 dev, common, prod 환경 분리 (#30) * fix: corejs 관련 설정 철자 오류 수정 (#30) * fix: ignorePatterns 에 모든 webpack 파일이 적용되도록 설정 변경 (#30) * chore: production 환경 js 파일 암호화 설정 (#30) * fix: import React 구문을 없애도 기능 동작하도록 변경 (#30) Add: - @babel/react에 runtime 속성 부여 * chore: webpack 파일 폴더로 묶기 (#30) * chore: 스토리북 글로벌 스타일 적용 (#35) * chore: global style 설정 (#33) reset css, 메인 색상 수정 * chore: 스토리북 addon styling 설치 (#33) * chore: 스토리북 global style 적용 (#33) * style: GlobalStyles로 파일명 수정 (#33) * chore: node 버전 설정 * fix: font 관련 globalStyle 수정 및 전역 declare types 설정 (#38) (#39) * feat: Label 컴포넌트 구현 (#41) * style: 폰트 사이즈 상수 컨벤션 적용 (#40) * feat: Label 컴포넌트 구현 * style: 오탈자 수정 * feat: border-radius 상수화 (#32) * feat: Label 컴포넌트 추상화 (#32) * style: Label 컴포넌트 파일 이동(#32) * feat: Label 컴포넌트 index 파일 생성 (#32) * feat: Header와 프로필 이미지를 만드는 컴포넌트 구현 (#42) * feat: Header 컴포넌트 구현(#28) * feat: ProfileImage 컴포넌트 구현(#28) * feat: ProfileImage와 Header 스토리북 추가(#28) * feat: 레스토랑 카드 컴포넌트 구현 (#49) * chore: webpack svg 관련 환경 설정 (#48) * feat: Restaurant 컴포넌트 생성 (#46) * feat: Label 컴포넌트 스토리북 args 추가 (#41) * feat: 레스토랑 카드 props 타입 수정 (#46) isAds optional 적용 및 default 값 적용 * feat: 레스토랑 카드 reviewCount view 수정 (#46) 999개 이상 시 999+ 적용 * fix: svg 스토리북 인식 오류 해결(#48) 스토리북 svg관련 룰 적용 * style: 레스토랑 카드 컴포넌트 내부 컴포넌트 수정 (#46) * test: 레스토랑 카드 컴포넌트 스토리북 항목 추가 (#46) 유료광고가 아닐 시 * feat: 레스토랑 대표 이미지 웹 접근성 적용 (#46) * refactor: 중복되는 코드 제거 (#46) * fix: px -> rem으로 수정 (#32)(#46) * feat: box-sizing 속성 적용 (#57) * Revert "fix: px -> rem으로 수정 (#32)(#46)" This reverts commit 820fceb14408c9c7dbb3b04d6273dcf101b0bd95. * refactor: defaultProps 삭제 (#46) * feat: button 추상화 컴포넌트 제작 (#52) * feat: Button 컴포넌트 구현 (#44) * chore: storybook 관련 라이브러리 위치 dependencies로 변경 (#44) * refactor: figma 시안에 맞추어 TextButton 컴포넌트의 추상화 개선 (#44) * refactor: defaultProps 삭제 (#44) * chore: storybook dependency 변경 (#44) * fix: 오타 수정 (#44) * chore: style폴더 파일들의 확장자를 tsx에서 ts로 변경 (#54) (#65) * refactor: 일부 lint 규칙 제거 (#66) * refactor: 2개의 lint 룰 off (#58) 다음 두 가지를 추가 "react/require-default-props": "off", "react/jsx-props-no-spreading": "off", * refactor: off 된 lint의 상단 disabled 제거 (#58) * fix: globalStyles에 존재하는 문제 개선 및 네이밍 수정 (#70) * fix: GlobalStyles 오류 및 개선사항 반영 (#69) * refactor: base에 button에 커서가 나오는 css 추가 (#69) * refactor: 기존에 작성한 cusor:pointer css 제거 (#69) * feat: 셀럽 베너 컴포넌트 구현 (#68) * feat: Button 컴포넌트 구현 (#44) * chore: storybook 관련 라이브러리 위치 dependencies로 변경 (#44) * refactor: figma 시안에 맞추어 TextButton 컴포넌트의 추상화 개선 (#44) * feat: celebBanner 컴포넌트 구현 (#43) * feat: 비디오 미리보기 컴포넌트 구현 (#53) * feat: iso 날짜의 포맷을 한국시로 바꾸는 util 구현 (#45) * feat: 일정이상 길이의 글을 특정 라인까지만 보여주는 css 함수 구현 (#45) * feat: VideoPreview 컴포넌트 구현 (#45) * feat: useBooleanState 훅 구현 (#45) * feat: useBooleanState 훅 구현 (#45) * refactor: truncateText의 문자열을 css로 래핑 (#45) * feat: SearchbarDropDown 컴포넌트 구현 (#56) * feat: SearchbarDropDown 기능 구현 (#34) 참고사항: 비제어 컴포넌트로 구현 * feat: SearchbarInput 컴포넌트 분리, 스타일 추가 및 구현 (#34) * feat: SearchbarSelectBox 컴포넌트 분리, 스타일 추가 및 구현 (#34) * refactor: useSearchBarRef 훅 분리 (#34) * feat: 돋보기 아이콘 가져오기 (#34) * feat: SearchbarDropDown 스타일 및 컴포넌트 구현 * fix: webpack resolve 속성 오타 수정 (#55) Changed: json -> .json * style: 스타일 변수명 Prefix에 Styled- 붙이기 (#34) * refactor: 타입 관련import -> import type로 변경 #34 * refactor: 테스트를 위한 option배열 value 다른 값 주입 (#34) * refactor: SearchbarInput Styled관련 변수 네이밍 수정 (#34) * refactor: inputRef 속성 타입 변경 (#34) * fix: dev, prod환경에서 svg 컴포넌트가 보여지지 않는 에러 해결(#78) * feat: SearchIcon import 방식 수정 (#34) * refactor: styles/common 에 적용해놓은 상수값 적용 (#34) * refactor: SearchbarDropDownProps 타입 변경 (#34) * style: 변수 네이밍 변경 (#34) Changed: SearchInput -> SearchbarDropDown * refactor: ProfileImage 컴포넌트 적용 (#34) * refactor: SearchbarDropDown width 속성 추가 및 input 태그 width 속성 변경 (#34) * style: StyledSearchbarDropDown 변수 코드 위 수정 (#34) * feat: SearcDropDownProps에 placeholder 속성 추가 (#34) * refactor: 스타일 컴포넌트 구조분해할당 문법으로 변경 (#34) * refactor: padding 단축형 설정으로 변경 (#34) * refactor: 타입 네이밍 Option -> CelebsSearchbarOption 수정 (#34) * feat: 지도 컴포넌트 구현 (#71) * chore: 환경변수 환경 설정 (#64) * feat: 실제 지도를 그리는 Javascript API를 불러오기 (#64) * feat: 지도 크기, 주소를 입력 받아 지도 생성 기능 구현 (#51) * chore: 스토리북 실행시 카카오맵 자바스크립트 API 불러오기 (#51) * feat: 지도 컴포넌트 스토리북 구현 (#51) * feat: 디폴트 좌표 선릉캠퍼스로 설정 (#51) * feat: 주소 혹은 좌표를 통해 지도 기능 구현 (#51) * feat: 지도 컴포넌트 props 추가 (#51) level(지도 확대 정도) * refactor: 주석제거 (#51) * feat: 여러 마크 생성 기능 구현(#51) * refactor: SearchBar 컴포넌트 스펠링 변경 및 import 에러 해결 (#94) (#95) * fix: 파일명 대소문자가 적용되지 않아 발생한 에러 해결 (#106) (#107) * fix: 폴더 중복 생성 오류 (#120) * infra: 이슈 템플릿 & PR 템플릿 작성 (#86) * infra: 이슈 템플릿 작성 (#84) * infra: PR 템플릿 작성 (#84) * style: 폴더 삭제 (#106) * style: 폴더 중복 문제 해결 (#106) * Revert "infra: 이슈 템플릿 & PR 템플릿 작성 (#86)" This reverts commit c065f969e2b5fb87165c3d83b5672bd009c1560e. --------- Co-authored-by: Donghun Shin * fix: storybook/@react가devDependcies와 dependencies 둘 다 적혀져있는 오류 해결 (#144) (#116) * chore: msw 초기환경 세팅 (#92) * chore: msw 초기환경 세팅 * style: 불필요한 코드 및 주석 제거 (#88) * refactor: develop환경에서 worker 설정 (#88) * fix: mockServiceWorker 경로 못읽는 오류 해결 (#88) * chore: style-lint 설정 (#125) * chore: style-components 관련 style-lint 설치 (#124) * chore: style-lint-order 패키지 설치 및 설정파일 수정 (#124) * style: style-lint-order에 맞게 css 코드 수정 (#124) * chore: style-lint vscode 적용되는 설정 추가 (#124) * chore: style-lint 적용 시 코드 변경 사항 수정 (#124) * chore: react-testing-library 설치 및 설정 (#126) (#127) * feat: 레스토랑 카드 수정된 디자인 반영 (#122) (#123) * design: 레스토랑 카드 수정된 디자인 반영 (#122) * refactor: stylelint 그룹별 개행설정(#122) * design: 레스토랑 카드 음식점명 스타일 수정 (#122) * feat: Footer 컴포넌트 구현 (#137) (#138) * fix: production 과 dev 관련 설정으로 배포 안되던 에러 해결 (#143) * 143 infra 프론트엔드 cicd 셋팅 (#144) * infra: 이슈 템플릿 & PR 템플릿 작성 (#86) * infra: 이슈 템플릿 작성 (#84) * infra: PR 템플릿 작성 (#84) * Create frontend-ci.yml * Update frontend-ci.yml * Update frontend-ci.yml * fail test * Update formatDateToKorean.ts * Update frontend-ci.yml * Create frontend-dev-cd.yml * Update frontend-dev-cd.yml * Update frontend-dev-cd.yml * Update frontend-dev-cd.yml * Update frontend-dev-cd.yml --------- Co-authored-by: Taeyeon <90550065+TaeyeonRoyce@users.noreply.github.com> * feat: 메인페이지 구현 (#150) * refactor: 음식점 API 타입 지정 (#134) Co-authored-by: Minjae Kim Co-authored-by: 황준승 * fix: Map 컴포넌트 위경도 뒤바뀜 오류 수정 (#134) * refactor: 음식점 카드 컴포넌트 API명세에 맞게 수정 (#134) * refactor: 불필요한 export 제거 (#134) Co-authored-by: Minjae Kim Co-authored-by: 황준승 * refactor: handler 타입 지정 (#134) Co-authored-by: Minjae Kim Co-authored-by: 황준승 * feat: 메인페이지 UI구현 (#134) Co-authored-by: Minjae Kim Co-authored-by: 황준승 * style: 위경도 타입 파일로 분리 (#134) Co-authored-by: Minjae Kim Co-authored-by: 황준승 * feat: 음식점 카드 클릭시 메인좌표 이동 기능 구현 (#134) Co-authored-by: Minjae Kim Co-authored-by: 황준승 * design: footer 문구 수정 (#138) Co-authored-by: Minjae Kim Co-authored-by: 황준승 * feat: 음식점 클릭시 마커 구분 (#134) * refactor: 메인페이지 scroll 개선 및 footer 추가 (#134) * feat: 맵 모달 구현 (#134) * refactor: MainPage 파일 제거 * refactor: MainPage 파일 복구 (#134) * feat: 데이터 생성 (#134) * refactor: search bar 파일 제거 (#134) * feat: 음식점 카드 클릭시 기능 구현 (#134) * feat: 지도 모달 안의 컨텐츠 구성 (#134) * refactor: 메인페이지 디자인 수정 및 음식점 개수 동기화 (#134) * design: 모달 내 폰트사이즈 수정 (#134) * refactor: 지도 2중 생성 오류 처리 및 훅 분리 (#134) 지도 생성 로직 분리 * feat: 지도 마커 클릭시 음식점 정보 확인 기능 구현 (#134) * refactor: 불필요한 코드 삭제 (#134) * fix: 이미지 import 오류 해결 (#134) * fix: lint 오류 해결 (#134) --------- Co-authored-by: Minjae Kim Co-authored-by: 황준승 * feat: google map 지도로 변경 (#162) * refactor: 음식점 API 타입 지정 (#134) Co-authored-by: Minjae Kim Co-authored-by: 황준승 * fix: Map 컴포넌트 위경도 뒤바뀜 오류 수정 (#134) * refactor: 음식점 카드 컴포넌트 API명세에 맞게 수정 (#134) * refactor: 불필요한 export 제거 (#134) Co-authored-by: Minjae Kim Co-authored-by: 황준승 * refactor: handler 타입 지정 (#134) Co-authored-by: Minjae Kim Co-authored-by: 황준승 * feat: 메인페이지 UI구현 (#134) Co-authored-by: Minjae Kim Co-authored-by: 황준승 * style: 위경도 타입 파일로 분리 (#134) Co-authored-by: Minjae Kim Co-authored-by: 황준승 * feat: 음식점 카드 클릭시 메인좌표 이동 기능 구현 (#134) Co-authored-by: Minjae Kim Co-authored-by: 황준승 * design: footer 문구 수정 (#138) Co-authored-by: Minjae Kim Co-authored-by: 황준승 * feat: 음식점 클릭시 마커 구분 (#134) * refactor: 메인페이지 scroll 개선 및 footer 추가 (#134) * feat: 맵 모달 구현 (#134) * refactor: MainPage 파일 제거 * refactor: MainPage 파일 복구 (#134) * feat: 데이터 생성 (#134) * refactor: search bar 파일 제거 (#134) * feat: 음식점 카드 클릭시 기능 구현 (#134) * feat: 지도 모달 안의 컨텐츠 구성 (#134) * refactor: 메인페이지 디자인 수정 및 음식점 개수 동기화 (#134) * design: 모달 내 폰트사이즈 수정 (#134) * refactor: 지도 2중 생성 오류 처리 및 훅 분리 (#134) 지도 생성 로직 분리 * feat: 지도 마커 클릭시 음식점 정보 확인 기능 구현 (#134) * refactor: 불필요한 코드 삭제 (#134) * fix: 이미지 import 오류 해결 (#134) * fix: lint 오류 해결 (#134) * refactor: 카카오 지도 코드 제거 (#151) * chore: 구글 지도 환경 설정 (#151) react-wrapper 라이브러리 설치 * feat: 구글 지도 기본 화면 구현 (#151) * feat: property명 구글 api에 맞게 수정 (#151) latitude -> lat, longitude-> lng * feat: 지도에 레스토랑 마커 구현 (#151) * feat: 레스토랑 카드 클릭 시 해당 좌표로 지도 이동 (#151) * feat: 마커 클릭 시 해당 좌표로 지도 이동 및 모달 슬라이드업 구현 (#151) * feat: 지도 언어 한국어로 설정 (#151) * feat: 지도 컴포넌트 스토리북 구현 (#151) * fix: 변수명 오류 수정 (#151) * feat: 전제조회 비동기 구현 (#151) * fix: lint error 수정 (#151) --------- Co-authored-by: Minjae Kim Co-authored-by: 황준승 * fix: bug-frontend-cd 파일 오타 수정 fronted -> frontend (#156) (#157) * Update and rename frontend-dev-cd.yml to frontend-cd.yml * fix: cd workflow (#164) * feat: google map 보강 (#168) * feat: 레스토랑 카드를 반응형으로 스타일링 (#167) * feat: Overlay 추가, Map에 추가 메서드 추가 및 훅 분리, 그에 따른 변경사항 적용 (#167) * refactor: 네이밍 변경, Overlay 구조 변경 (#167) * feat: 로딩 컴포넌트 및 스켈레톤 구현 (#140) * feat: 로딩 애니메이션 컴포넌트 구현 (#90) * refactor: loadingAnimation 도형 간 간격 조정 (#90) * feat: skeleton css 및 컴포넌트 구현 (#90) * feat: LoadingDots 추가 * refactor: Loading 관련 컴포넌트를 한 폴더로 분리 (#90) * design: celuveat 아이콘 픽셀 단위 조정 (#90) * design: celuveat 아이콘 크기를 조절할 수 있게 svg 코드 수정 (#90) * refactor: 폴더 구조 변경, 네이밍 변경 (#90) * refactor: svg width props 제거, 일부 스타일 수정 (#90) * feat: 내 위치 기반 음식점 조회 기능 추가 (#177) * feat: LoadingDots 추가 (#171) * refactor: 일부 네이밍 변경 (#171) * chore: 지도에 사용할 svg 추가 (#171) * feat: 기본적인 map ui 구성 (#171) * chore: 더하기 빼기 svg 파일 변경 (#171) * chore: zoom 관련 ui 스타일 지정 및 기능 연결 (#171) * fix: common styles 파일의 lint 에러 수정 (#171) * feat: 리스트와 지도 바운더리 내의 레스토랑 연동 기능 구현 (#176) * feat: LoadingDots 추가 (#171) * refactor: 일부 네이밍 변경 (#171) * chore: 지도에 사용할 svg 추가 (#171) * feat: 기본적인 map ui 구성 (#171) * feat: 리스트와 지도 바운더리 내의 레스토랑 연동 기능 구현 (#169) * feat: fetch함수 추상화 및 적용 (#169) * refactor: onIdle 함수 리팩터링 (#169) * fix: 맵 모달에 이미지 import오류 해결 (#169) --------- Co-authored-by: d0dam * fix: react testing library 사용 시 에러 이미지 import 시 에러 발생 (#155) * infra: 이슈 템플릿 & PR 템플릿 작성 (#86) * infra: 이슈 템플릿 작성 (#84) * infra: PR 템플릿 작성 (#84) * fix: jest svg, png 관련 컴포넌트 발생 에러 해결 (#154) --------- Co-authored-by: Donghun Shin * feat: CelebDropDown, NavButton 컴포넌트 기능 구현 (#179) * feat: NavButton 컴포넌트 구현 (#170) * feat: CelebDropDown 컴포넌트 구현 (#170) * feat: isEqual 유틸함수 구현 (#170) * chore: fastFood 아이콘 추가 (#170) * chore: Seach Icon 컴포넌트 스타일 수정 (#170) * feat: CategoryNavbar 컴포넌트 기능 구현 (#170) * refactor: 불필요한 파일 삭제 (#170) * refactor: 타입 수정 (#170) Changed: 1) RestaurantCategory 타입 추가 2) Celebs 타입 export 제거 * refactor: 타입 변경으로 인한 코드 수정 (#170) * fix: lint 에러 수정 (#170) * fix: 빌드 시 타입 에러 해결 (#170) * refactor: 빌드 시 타입 에러 해결 (#170) * feat: 셀럽 및 카테고리 별 필터링 기능 구현 (#190) * refactor: 지도 boundary 타입 추가 및 음식점 카테고리 타입 일부 수정 (#180) * feat: 셀럽 및 음식점 카테고리 별 필터링 기능 추가 (#180) * refactor: getQueryString 로직 분리 및 적용 (#180) * refactor: 헤더 스타일 변경 (#180) * refactor: after, hover 시 디자인 추가 (#180) * refactor: 필터 카테고리 navbar 디자인 구현 (#180) * refactor: 로고 및 카테고리 아이콘 추가 , 관련 스타일 수정 (#180) * fix: svg import 방식 수정 (#180) * feat: 지도 전체보기 기능 추가 (#180) * refactor: nav button 클릭시 아이콘이 강조되도록 변경 (#180) * fix: fetchRestaurant 에 query 인자를 추가 (#180) --------- Co-authored-by: Jeremy <102432453+shackstack@users.noreply.github.com> * fix: response 형식 변경 대응 (#180) * feat: 음식점 리스트 중복 필터링 기능 구현 (#186) * refactor: 지도 boundary 타입 추가 및 음식점 카테고리 타입 일부 수정 (#180) * feat: 셀럽 및 음식점 카테고리 별 필터링 기능 추가 (#180) * refactor: getQueryString 로직 분리 및 적용 (#180) * feat: CelebDropDown 및 CategoryNavbar에 전체 버튼 추가 (#184) * fix: 필터링 클릭 시 렌더링이 한 박자 늦게되는 오류 해결 (#184) * refactor: Map 컴포넌트에서 사용하지 않는 props 속성 제거 (#184) * refactor: celeb 전체를 나타내는 상태값을 -1로 변경 (#184) * feat: CelebDropDown blur 기능 추가 (#184) * fix: 불필요한 useEffect dependency 제거 (#184) * feat: Restaurant_Category에 전체 옵션 추가 (#184) * fix: CelebId 초기값 수정 (#184) * fix: API 명세서 수정에 따른 데이터 타입 변경 (#184) * refactor: NavButton props 프로퍼티 수정으로 인한 코드 수정 (#184) * refactor: css 선언방식을 삼항연산자를 && 로 변경 (#184) * fix: NavButton 불필요한 hover 기능 제거 (#184) Changed: hover 이벤트 && 연산자를 삼항연산자 사용으로 변경 * refactor: NavButton 컴포넌트를 NavItem 컴포넌트로 네이밍 수정 (#184) --------- Co-authored-by: d0dam Co-authored-by: Jeremy <102432453+shackstack@users.noreply.github.com> * design: 전체 카테고리에 해당하는 이미지 수정 (#195) (#196) * feat: 레스토랑 카드 및 마커 클릭 이벤트 변경 (#198) * feat: 마커 호버시 마커를 맨 앞으로 가져오기 (#192) * style: 마커 호버시 마커 강조 (#192) * feat: 마커 클릭시 레스토랑 카드 띄우기 (#192) * refactor: 불필요한 코드 제거 (#192) - 레스토랑 카드 클릭시 맵 모달 이벤트 제거 - 마커 클릭시 맵 모달 이벤트 제거 * feat: 마커클릭 시 마커 위치에 따라 카드모달 위치 조정 (#192) * style: 레스토랑 오버레이 스타일 수정 (#192) * refactor: restaurantCard 컴포넌트를 용도에 따라 스타일 다르게 설정 (#192) * feat: 마커 클릭시 강조 효과 주기 (#192) * Squashed commit of the following: commit 3442d16c306a3a1f478a5ee58c9664daa271bf3f Author: Minjae Kim Date: Fri Jul 28 15:06:21 2023 +0900 design: 전체 카테고리에 해당하는 이미지 수정 (#195) (#196) commit 21128038e8dbd0953497950833f65dc918ffc40b Author: 황준승 <78203399+turtle601@users.noreply.github.com> Date: Thu Jul 27 16:45:06 2023 +0900 feat: 음식점 리스트 중복 필터링 기능 구현 (#186) * refactor: 지도 boundary 타입 추가 및 음식점 카테고리 타입 일부 수정 (#180) * feat: 셀럽 및 음식점 카테고리 별 필터링 기능 추가 (#180) * refactor: getQueryString 로직 분리 및 적용 (#180) * feat: CelebDropDown 및 CategoryNavbar에 전체 버튼 추가 (#184) * fix: 필터링 클릭 시 렌더링이 한 박자 늦게되는 오류 해결 (#184) * refactor: Map 컴포넌트에서 사용하지 않는 props 속성 제거 (#184) * refactor: celeb 전체를 나타내는 상태값을 -1로 변경 (#184) * feat: CelebDropDown blur 기능 추가 (#184) * fix: 불필요한 useEffect dependency 제거 (#184) * feat: Restaurant_Category에 전체 옵션 추가 (#184) * fix: CelebId 초기값 수정 (#184) * fix: API 명세서 수정에 따른 데이터 타입 변경 (#184) * refactor: NavButton props 프로퍼티 수정으로 인한 코드 수정 (#184) * refactor: css 선언방식을 삼항연산자를 && 로 변경 (#184) * fix: NavButton 불필요한 hover 기능 제거 (#184) Changed: hover 이벤트 && 연산자를 삼항연산자 사용으로 변경 * refactor: NavButton 컴포넌트를 NavItem 컴포넌트로 네이밍 수정 (#184) --------- Co-authored-by: d0dam Co-authored-by: Jeremy <102432453+shackstack@users.noreply.github.com> * feat: 다른 마커 클릭시 기존 마커 모달 닫기 기능 구현 (#192) * style: 파일명 오류 수정 (#192) * refactor: baseURL 환경변수 설정 및 type import 분리 * feat: RestaurantCard 컴포넌트 props 수정 (#192) onClick을 optional로 수정 * refactor: getQuadrant 리팩터링 (#192) * style: 상태 네이밍 수정 (#192) mainPosition -> currentCenter * feat: 음식점 카드 호버시 해당 음식점 마커 강조 (#192) * design: 강조시 애니메이션 효과 추가 및 음식점 리스트 스타일 수정 (#192) * refactor: 음식점 카드 호버시 마커 강조 로직 변경 (#192) * refactor: 프로필 이미지 컴포넌트 Props 타입 수정 (#192) size: number => string * fix: setHoverId가 없을 때 default value 설정 (#192) * feat: 레스토랑 카드에 loading 상태 추가 및 skeleton 반영 (#202) * feat: 마커 호버시 마커를 맨 앞으로 가져오기 (#192) * style: 마커 호버시 마커 강조 (#192) * feat: 마커 클릭시 레스토랑 카드 띄우기 (#192) * refactor: 불필요한 코드 제거 (#192) - 레스토랑 카드 클릭시 맵 모달 이벤트 제거 - 마커 클릭시 맵 모달 이벤트 제거 * feat: 마커클릭 시 마커 위치에 따라 카드모달 위치 조정 (#192) * style: 레스토랑 오버레이 스타일 수정 (#192) * refactor: restaurantCard 컴포넌트를 용도에 따라 스타일 다르게 설정 (#192) * feat: 마커 클릭시 강조 효과 주기 (#192) * Squashed commit of the following: commit 3442d16c306a3a1f478a5ee58c9664daa271bf3f Author: Minjae Kim Date: Fri Jul 28 15:06:21 2023 +0900 design: 전체 카테고리에 해당하는 이미지 수정 (#195) (#196) commit 21128038e8dbd0953497950833f65dc918ffc40b Author: 황준승 <78203399+turtle601@users.noreply.github.com> Date: Thu Jul 27 16:45:06 2023 +0900 feat: 음식점 리스트 중복 필터링 기능 구현 (#186) * refactor: 지도 boundary 타입 추가 및 음식점 카테고리 타입 일부 수정 (#180) * feat: 셀럽 및 음식점 카테고리 별 필터링 기능 추가 (#180) * refactor: getQueryString 로직 분리 및 적용 (#180) * feat: CelebDropDown 및 CategoryNavbar에 전체 버튼 추가 (#184) * fix: 필터링 클릭 시 렌더링이 한 박자 늦게되는 오류 해결 (#184) * refactor: Map 컴포넌트에서 사용하지 않는 props 속성 제거 (#184) * refactor: celeb 전체를 나타내는 상태값을 -1로 변경 (#184) * feat: CelebDropDown blur 기능 추가 (#184) * fix: 불필요한 useEffect dependency 제거 (#184) * feat: Restaurant_Category에 전체 옵션 추가 (#184) * fix: CelebId 초기값 수정 (#184) * fix: API 명세서 수정에 따른 데이터 타입 변경 (#184) * refactor: NavButton props 프로퍼티 수정으로 인한 코드 수정 (#184) * refactor: css 선언방식을 삼항연산자를 && 로 변경 (#184) * fix: NavButton 불필요한 hover 기능 제거 (#184) Changed: hover 이벤트 && 연산자를 삼항연산자 사용으로 변경 * refactor: NavButton 컴포넌트를 NavItem 컴포넌트로 네이밍 수정 (#184) --------- Co-authored-by: d0dam Co-authored-by: Jeremy <102432453+shackstack@users.noreply.github.com> * feat: 다른 마커 클릭시 기존 마커 모달 닫기 기능 구현 (#192) * feat: 음식점 카드에 사용하는 컴포넌트 스켈레톤 구현 (#199) * refactor: 음식점 카드 리스트 컴포넌트 분리, 로딩 상태 추가 (#199) * refactor: 이미지에 대해 loading lazy 속성 추가 (#199) * refactor: 로딩 애니메이션을 자연스럽게 수정 (#199) * refactor: Map에 data 로딩 상태 추가 (#199) * feat: 전 음식점 갯수만큼 음식점 스켈레톤을 표시하도록 수정 (#199) * refactor: Map이 로딩 상태일 때 스타일 추가 (#199) * Squashed commit of the following: commit 60f870732951b14a824138828074370862fe40a8 Author: Jeremy <102432453+shackstack@users.noreply.github.com> Date: Mon Jul 31 14:41:46 2023 +0900 feat: 레스토랑 카드 및 마커 클릭 이벤트 변경 (#198) * feat: 마커 호버시 마커를 맨 앞으로 가져오기 (#192) * style: 마커 호버시 마커 강조 (#192) * feat: 마커 클릭시 레스토랑 카드 띄우기 (#192) * refactor: 불필요한 코드 제거 (#192) - 레스토랑 카드 클릭시 맵 모달 이벤트 제거 - 마커 클릭시 맵 모달 이벤트 제거 * feat: 마커클릭 시 마커 위치에 따라 카드모달 위치 조정 (#192) * style: 레스토랑 오버레이 스타일 수정 (#192) * refactor: restaurantCard 컴포넌트를 용도에 따라 스타일 다르게 설정 (#192) * feat: 마커 클릭시 강조 효과 주기 (#192) * Squashed commit of the following: commit 3442d16c306a3a1f478a5ee58c9664daa271bf3f Author: Minjae Kim Date: Fri Jul 28 15:06:21 2023 +0900 design: 전체 카테고리에 해당하는 이미지 수정 (#195) (#196) commit 21128038e8dbd0953497950833f65dc918ffc40b Author: 황준승 <78203399+turtle601@users.noreply.github.com> Date: Thu Jul 27 16:45:06 2023 +0900 feat: 음식점 리스트 중복 필터링 기능 구현 (#186) * refactor: 지도 boundary 타입 추가 및 음식점 카테고리 타입 일부 수정 (#180) * feat: 셀럽 및 음식점 카테고리 별 필터링 기능 추가 (#180) * refactor: getQueryString 로직 분리 및 적용 (#180) * feat: CelebDropDown 및 CategoryNavbar에 전체 버튼 추가 (#184) * fix: 필터링 클릭 시 렌더링이 한 박자 늦게되는 오류 해결 (#184) * refactor: Map 컴포넌트에서 사용하지 않는 props 속성 제거 (#184) * refactor: celeb 전체를 나타내는 상태값을 -1로 변경 (#184) * feat: CelebDropDown blur 기능 추가 (#184) * fix: 불필요한 useEffect dependency 제거 (#184) * feat: Restaurant_Category에 전체 옵션 추가 (#184) * fix: CelebId 초기값 수정 (#184) * fix: API 명세서 수정에 따른 데이터 타입 변경 (#184) * refactor: NavButton props 프로퍼티 수정으로 인한 코드 수정 (#184) * refactor: css 선언방식을 삼항연산자를 && 로 변경 (#184) * fix: NavButton 불필요한 hover 기능 제거 (#184) Changed: hover 이벤트 && 연산자를 삼항연산자 사용으로 변경 * refactor: NavButton 컴포넌트를 NavItem 컴포넌트로 네이밍 수정 (#184) --------- Co-authored-by: d0dam Co-authored-by: Jeremy <102432453+shackstack@users.noreply.github.com> * feat: 다른 마커 클릭시 기존 마커 모달 닫기 기능 구현 (#192) * style: 파일명 오류 수정 (#192) * refactor: baseURL 환경변수 설정 및 type import 분리 * feat: RestaurantCard 컴포넌트 props 수정 (#192) onClick을 optional로 수정 * refactor: getQuadrant 리팩터링 (#192) * style: 상태 네이밍 수정 (#192) mainPosition -> currentCenter * feat: 음식점 카드 호버시 해당 음식점 마커 강조 (#192) * design: 강조시 애니메이션 효과 추가 및 음식점 리스트 스타일 수정 (#192) * refactor: 음식점 카드 호버시 마커 강조 로직 변경 (#192) * refactor: 프로필 이미지 컴포넌트 Props 타입 수정 (#192) size: number => string * fix: setHoverId가 없을 때 default value 설정 (#192) * fix: 충돌 해결 간 생긴 에러 및 lint 에러 수정 (#201) --------- Co-authored-by: Jeremy <102432453+shackstack@users.noreply.github.com> * feat: 음식점 카드에 필요한 컴포넌트 추가 (#205) * feat: 마커 호버시 마커를 맨 앞으로 가져오기 (#192) * style: 마커 호버시 마커 강조 (#192) * feat: 마커 클릭시 레스토랑 카드 띄우기 (#192) * refactor: 불필요한 코드 제거 (#192) - 레스토랑 카드 클릭시 맵 모달 이벤트 제거 - 마커 클릭시 맵 모달 이벤트 제거 * feat: 마커클릭 시 마커 위치에 따라 카드모달 위치 조정 (#192) * style: 레스토랑 오버레이 스타일 수정 (#192) * refactor: restaurantCard 컴포넌트를 용도에 따라 스타일 다르게 설정 (#192) * feat: 마커 클릭시 강조 효과 주기 (#192) * Squashed commit of the following: commit 3442d16c306a3a1f478a5ee58c9664daa271bf3f Author: Minjae Kim Date: Fri Jul 28 15:06:21 2023 +0900 design: 전체 카테고리에 해당하는 이미지 수정 (#195) (#196) commit 21128038e8dbd0953497950833f65dc918ffc40b Author: 황준승 <78203399+turtle601@users.noreply.github.com> Date: Thu Jul 27 16:45:06 2023 +0900 feat: 음식점 리스트 중복 필터링 기능 구현 (#186) * refactor: 지도 boundary 타입 추가 및 음식점 카테고리 타입 일부 수정 (#180) * feat: 셀럽 및 음식점 카테고리 별 필터링 기능 추가 (#180) * refactor: getQueryString 로직 분리 및 적용 (#180) * feat: CelebDropDown 및 CategoryNavbar에 전체 버튼 추가 (#184) * fix: 필터링 클릭 시 렌더링이 한 박자 늦게되는 오류 해결 (#184) * refactor: Map 컴포넌트에서 사용하지 않는 props 속성 제거 (#184) * refactor: celeb 전체를 나타내는 상태값을 -1로 변경 (#184) * feat: CelebDropDown blur 기능 추가 (#184) * fix: 불필요한 useEffect dependency 제거 (#184) * feat: Restaurant_Category에 전체 옵션 추가 (#184) * fix: CelebId 초기값 수정 (#184) * fix: API 명세서 수정에 따른 데이터 타입 변경 (#184) * refactor: NavButton props 프로퍼티 수정으로 인한 코드 수정 (#184) * refactor: css 선언방식을 삼항연산자를 && 로 변경 (#184) * fix: NavButton 불필요한 hover 기능 제거 (#184) Changed: hover 이벤트 && 연산자를 삼항연산자 사용으로 변경 * refactor: NavButton 컴포넌트를 NavItem 컴포넌트로 네이밍 수정 (#184) --------- Co-authored-by: d0dam Co-authored-by: Jeremy <102432453+shackstack@users.noreply.github.com> * feat: 다른 마커 클릭시 기존 마커 모달 닫기 기능 구현 (#192) * feat: 음식점 카드에 사용하는 컴포넌트 스켈레톤 구현 (#199) * refactor: 음식점 카드 리스트 컴포넌트 분리, 로딩 상태 추가 (#199) * refactor: 이미지에 대해 loading lazy 속성 추가 (#199) * refactor: 로딩 애니메이션을 자연스럽게 수정 (#199) * refactor: Map에 data 로딩 상태 추가 (#199) * feat: 전 음식점 갯수만큼 음식점 스켈레톤을 표시하도록 수정 (#199) * refactor: Map이 로딩 상태일 때 스타일 추가 (#199) * feat: ImageCarousel 컴포넌트 구현 (#201) * refactor: ImageCarousel 컴포넌트의 props 타입을 변경 (#201) * feat: WaterMarkImage 컴포넌트 구현 (#201) * refactor: 음식점 카드에 이미지 대신 케러셀 연결 (#201) * feat: 음식점 사진에 좋아요 아이콘 추가 (#201) * feat: ProfileImageList 구현 및 음식점 카드에 반영 (#201) * refactor: story에 size props 추가 (#201) * refactor: useBooleanState를 활용 가능한 상태를 해당 훅으로 변경 (#201) * Squashed commit of the following: commit cfb505f45c57e126c1266d596f03bc2b814759f9 Author: d0dam Date: Mon Jul 31 15:16:41 2023 +0900 fix: 충돌 해결 간 생긴 에러 및 lint 에러 수정 (#201) commit fbc4ff10e1ef002e75b22151d5cbec105df410bd Merge: 7dc4a3e 60f8707 Author: Minjae Kim Date: Mon Jul 31 15:13:46 2023 +0900 Merge branch 'develop-frontend' into 199-feat-레스토랑-카드에-loading-상태-추가-및-skeleton-반영 commit 7dc4a3e450c1fc54d292c9948d9871510a460f56 Author: d0dam Date: Mon Jul 31 15:10:42 2023 +0900 Squashed commit of the following: commit 60f870732951b14a824138828074370862fe40a8 Author: Jeremy <102432453+shackstack@users.noreply.github.com> Date: Mon Jul 31 14:41:46 2023 +0900 feat: 레스토랑 카드 및 마커 클릭 이벤트 변경 (#198) * feat: 마커 호버시 마커를 맨 앞으로 가져오기 (#192) * style: 마커 호버시 마커 강조 (#192) * feat: 마커 클릭시 레스토랑 카드 띄우기 (#192) * refactor: 불필요한 코드 제거 (#192) - 레스토랑 카드 클릭시 맵 모달 이벤트 제거 - 마커 클릭시 맵 모달 이벤트 제거 * feat: 마커클릭 시 마커 위치에 따라 카드모달 위치 조정 (#192) * style: 레스토랑 오버레이 스타일 수정 (#192) * refactor: restaurantCard 컴포넌트를 용도에 따라 스타일 다르게 설정 (#192) * feat: 마커 클릭시 강조 효과 주기 (#192) * Squashed commit of the following: commit 3442d16c306a3a1f478a5ee58c9664daa271bf3f Author: Minjae Kim Date: Fri Jul 28 15:06:21 2023 +0900 design: 전체 카테고리에 해당하는 이미지 수정 (#195) (#196) commit 21128038e8dbd0953497950833f65dc918ffc40b Author: 황준승 <78203399+turtle601@users.noreply.github.com> Date: Thu Jul 27 16:45:06 2023 +0900 feat: 음식점 리스트 중복 필터링 기능 구현 (#186) * refactor: 지도 boundary 타입 추가 및 음식점 카테고리 타입 일부 수정 (#180) * feat: 셀럽 및 음식점 카테고리 별 필터링 기능 추가 (#180) * refactor: getQueryString 로직 분리 및 적용 (#180) * feat: CelebDropDown 및 CategoryNavbar에 전체 버튼 추가 (#184) * fix: 필터링 클릭 시 렌더링이 한 박자 늦게되는 오류 해결 (#184) * refactor: Map 컴포넌트에서 사용하지 않는 props 속성 제거 (#184) * refactor: celeb 전체를 나타내는 상태값을 -1로 변경 (#184) * feat: CelebDropDown blur 기능 추가 (#184) * fix: 불필요한 useEffect dependency 제거 (#184) * feat: Restaurant_Category에 전체 옵션 추가 (#184) * fix: CelebId 초기값 수정 (#184) * fix: API 명세서 수정에 따른 데이터 타입 변경 (#184) * refactor: NavButton props 프로퍼티 수정으로 인한 코드 수정 (#184) * refactor: css 선언방식을 삼항연산자를 && 로 변경 (#184) * fix: NavButton 불필요한 hover 기능 제거 (#184) Changed: hover 이벤트 && 연산자를 삼항연산자 사용으로 변경 * refactor: NavButton 컴포넌트를 NavItem 컴포넌트로 네이밍 수정 (#184) --------- Co-authored-by: d0dam Co-authored-by: Jeremy <102432453+shackstack@users.noreply.github.com> * feat: 다른 마커 클릭시 기존 마커 모달 닫기 기능 구현 (#192) * style: 파일명 오류 수정 (#192) * refactor: baseURL 환경변수 설정 및 type import 분리 * feat: RestaurantCard 컴포넌트 props 수정 (#192) onClick을 optional로 수정 * refactor: getQuadrant 리팩터링 (#192) * style: 상태 네이밍 수정 (#192) mainPosition -> currentCenter * feat: 음식점 카드 호버시 해당 음식점 마커 강조 (#192) * design: 강조시 애니메이션 효과 추가 및 음식점 리스트 스타일 수정 (#192) * refactor: 음식점 카드 호버시 마커 강조 로직 변경 (#192) * refactor: 프로필 이미지 컴포넌트 Props 타입 수정 (#192) size: number => string * fix: setHoverId가 없을 때 default value 설정 (#192) commit 60f870732951b14a824138828074370862fe40a8 Author: Jeremy <102432453+shackstack@users.noreply.github.com> Date: Mon Jul 31 14:41:46 2023 +0900 feat: 레스토랑 카드 및 마커 클릭 이벤트 변경 (#198) * feat: 마커 호버시 마커를 맨 앞으로 가져오기 (#192) * style: 마커 호버시 마커 강조 (#192) * feat: 마커 클릭시 레스토랑 카드 띄우기 (#192) * refactor: 불필요한 코드 제거 (#192) - 레스토랑 카드 클릭시 맵 모달 이벤트 제거 - 마커 클릭시 맵 모달 이벤트 제거 * feat: 마커클릭 시 마커 위치에 따라 카드모달 위치 조정 (#192) * style: 레스토랑 오버레이 스타일 수정 (#192) * refactor: restaurantCard 컴포넌트를 용도에 따라 스타일 다르게 설정 (#192) * feat: 마커 클릭시 강조 효과 주기 (#192) * Squashed commit of the following: commit 3442d16c306a3a1f478a5ee58c9664daa271bf3f Author: Minjae Kim Date: Fri Jul 28 15:06:21 2023 +0900 design: 전체 카테고리에 해당하는 이미지 수정 (#195) (#196) commit 21128038e8dbd0953497950833f65dc918ffc40b Author: 황준승 <78203399+turtle601@users.noreply.github.com> Date: Thu Jul 27 16:45:06 2023 +0900 feat: 음식점 리스트 중복 필터링 기능 구현 (#186) * refactor: 지도 boundary 타입 추가 및 음식점 카테고리 타입 일부 수정 (#180) * feat: 셀럽 및 음식점 카테고리 별 필터링 기능 추가 (#180) * refactor: getQueryString 로직 분리 및 적용 (#180) * feat: CelebDropDown 및 CategoryNavbar에 전체 버튼 추가 (#184) * fix: 필터링 클릭 시 렌더링이 한 박자 늦게되는 오류 해결 (#184) * refactor: Map 컴포넌트에서 사용하지 않는 props 속성 제거 (#184) * refactor: celeb 전체를 나타내는 상태값을 -1로 변경 (#184) * feat: CelebDropDown blur 기능 추가 (#184) * fix: 불필요한 useEffect dependency 제거 (#184) * feat: Restaurant_Category에 전체 옵션 추가 (#184) * fix: CelebId 초기값 수정 (#184) * fix: API 명세서 수정에 따른 데이터 타입 변경 (#184) * refactor: NavButton props 프로퍼티 수정으로 인한 코드 수정 (#184) * refactor: css 선언방식을 삼항연산자를 && 로 변경 (#184) * fix: NavButton 불필요한 hover 기능 제거 (#184) Changed: hover 이벤트 && 연산자를 삼항연산자 사용으로 변경 * refactor: NavButton 컴포넌트를 NavItem 컴포넌트로 네이밍 수정 (#184) --------- Co-authored-by: d0dam Co-authored-by: Jeremy <102432453+shackstack@users.noreply.github.com> * feat: 다른 마커 클릭시 기존 마커 모달 닫기 기능 구현 (#192) * style: 파일명 오류 수정 (#192) * refactor: baseURL 환경변수 설정 및 type import 분리 * feat: RestaurantCard 컴포넌트 props 수정 (#192) onClick을 optional로 수정 * refactor: getQuadrant 리팩터링 (#192) * style: 상태 네이밍 수정 (#192) mainPosition -> currentCenter * feat: 음식점 카드 호버시 해당 음식점 마커 강조 (#192) * design: 강조시 애니메이션 효과 추가 및 음식점 리스트 스타일 수정 (#192) * refactor: 음식점 카드 호버시 마커 강조 로직 변경 (#192) * refactor: 프로필 이미지 컴포넌트 Props 타입 수정 (#192) size: number => string * fix: setHoverId가 없을 때 default value 설정 (#192) * refactor: 경로 수정 (#201) * fix: lint 에러 수정 (#201) --------- Co-authored-by: Jeremy <102432453+shackstack@users.noreply.github.com> * feat: 로그인 기능 구현 (#203) * chore: react-router-dom 라이브러리 설정 및 셋팅 (#193) * chore: naver, kakao 아이콘 셋팅 (#193) * feat: api 관련 상수 선언 (#193) * feat: 네이버, 카카오 로그인 버튼 구현 (#193) * feat: Oauth 기능 구현 (#193) * feat: 구글 로그인 버튼 ui 구현 (#193) * feat: 내 정보 아이콘 ui 구현 (#193) * feat: InfoDropDown컴포넌트 구현 (#193) * feat: Modal 컴포넌트 구현 (#193) * feat: LoginModalContnet 컴포넌트 구현 (#193) Explained: 로그인 모달창에 쓰이는 content를 컴포넌트로 구현 * feat: Header에 InfoButton 컴포넌트 적용 및 기능 구현 (#193) * refactor: Modal 컴포넌트 가운데에 정렬이 되도록 수정 (#193) * refactor: useBooleanstate 훅 활용 (#193) * refactor: 불필요한 파일 삭제 (#193) * chore: .vscode 파일 수정 (#193) * refactor: Oauth 타입 분리 및 적용 (#193) * refactor: DropDown 리스트 box-shadow 적용 (#193) * refactor: box shadow 변수 사용 (#193) * Squashed commit of the following: commit b81a58763000e0c3de734588ac1d501ac13f3dcf Author: Minjae Kim Date: Mon Jul 31 16:13:27 2023 +0900 feat: 음식점 카드에 필요한 컴포넌트 추가 (#205) * feat: 마커 호버시 마커를 맨 앞으로 가져오기 (#192) * style: 마커 호버시 마커 강조 (#192) * feat: 마커 클릭시 레스토랑 카드 띄우기 (#192) * refactor: 불필요한 코드 제거 (#192) - 레스토랑 카드 클릭시 맵 모달 이벤트 제거 - 마커 클릭시 맵 모달 이벤트 제거 * feat: 마커클릭 시 마커 위치에 따라 카드모달 위치 조정 (#192) * style: 레스토랑 오버레이 스타일 수정 (#192) * refactor: restaurantCard 컴포넌트를 용도에 따라 스타일 다르게 설정 (#192) * feat: 마커 클릭시 강조 효과 주기 (#192) * Squashed commit of the following: commit 3442d16c306a3a1f478a5ee58c9664daa271bf3f Author: Minjae Kim Date: Fri Jul 28 15:06:21 2023 +0900 design: 전체 카테고리에 해당하는 이미지 수정 (#195) (#196) commit 21128038e8dbd0953497950833f65dc918ffc40b Author: 황준승 <78203399+turtle601@users.noreply.github.com> Date: Thu Jul 27 16:45:06 2023 +0900 feat: 음식점 리스트 중복 필터링 기능 구현 (#186) * refactor: 지도 boundary 타입 추가 및 음식점 카테고리 타입 일부 수정 (#180) * feat: 셀럽 및 음식점 카테고리 별 필터링 기능 추가 (#180) * refactor: getQueryString 로직 분리 및 적용 (#180) * feat: CelebDropDown 및 CategoryNavbar에 전체 버튼 추가 (#184) * fix: 필터링 클릭 시 렌더링이 한 박자 늦게되는 오류 해결 (#184) * refactor: Map 컴포넌트에서 사용하지 않는 props 속성 제거 (#184) * refactor: celeb 전체를 나타내는 상태값을 -1로 변경 (#184) * feat: CelebDropDown blur 기능 추가 (#184) * fix: 불필요한 useEffect dependency 제거 (#184) * feat: Restaurant_Category에 전체 옵션 추가 (#184) * fix: CelebId 초기값 수정 (#184) * fix: API 명세서 수정에 따른 데이터 타입 변경 (#184) * refactor: NavButton props 프로퍼티 수정으로 인한 코드 수정 (#184) * refactor: css 선언방식을 삼항연산자를 && 로 변경 (#184) * fix: NavButton 불필요한 hover 기능 제거 (#184) Changed: hover 이벤트 && 연산자를 삼항연산자 사용으로 변경 * refactor: NavButton 컴포넌트를 NavItem 컴포넌트로 네이밍 수정 (#184) --------- Co-authored-by: d0dam Co-authored-by: Jeremy <102432453+shackstack@users.noreply.github.com> * feat: 다른 마커 클릭시 기존 마커 모달 닫기 기능 구현 (#192) * feat: 음식점 카드에 사용하는 컴포넌트 스켈레톤 구현 (#199) * refactor: 음식점 카드 리스트 컴포넌트 분리, 로딩 상태 추가 (#199) * refactor: 이미지에 대해 loading lazy 속성 추가 (#199) * refactor: 로딩 애니메이션을 자연스럽게 수정 (#199) * refactor: Map에 data 로딩 상태 추가 (#199) * feat: 전 음식점 갯수만큼 음식점 스켈레톤을 표시하도록 수정 (#199) * refactor: Map이 로딩 상태일 때 스타일 추가 (#199) * feat: ImageCarousel 컴포넌트 구현 (#201) * refactor: ImageCarousel 컴포넌트의 props 타입을 변경 (#201) * feat: WaterMarkImage 컴포넌트 구현 (#201) * refactor: 음식점 카드에 이미지 대신 케러셀 연결 (#201) * feat: 음식점 사진에 좋아요 아이콘 추가 (#201) * feat: ProfileImageList 구현 및 음식점 카드에 반영 (#201) * refactor: story에 size props 추가 (#201) * refactor: useBooleanState를 활용 가능한 상태를 해당 훅으로 변경 (#201) * Squashed commit of the following: commit cfb505f45c57e126c1266d596f03bc2b814759f9 Author: d0dam Date: Mon Jul 31 15:16:41 2023 +0900 fix: 충돌 해결 간 생긴 에러 및 lint 에러 수정 (#201) commit fbc4ff10e1ef002e75b22151d5cbec105df410bd Merge: 7dc4a3e 60f8707 Author: Minjae Kim Date: Mon Jul 31 15:13:46 2023 +0900 Merge branch 'develop-frontend' into 199-feat-레스토랑-카드에-loading-상태-추가-및-skeleton-반영 commit 7dc4a3e450c1fc54d292c9948d9871510a460f56 Author: d0dam Date: Mon Jul 31 15:10:42 2023 +0900 Squashed commit of the following: commit 60f870732951b14a824138828074370862fe40a8 Author: Jeremy <102432453+shackstack@users.noreply.github.com> Date: Mon Jul 31 14:41:46 2023 +0900 feat: 레스토랑 카드 및 마커 클릭 이벤트 변경 (#198) * feat: 마커 호버시 마커를 맨 앞으로 가져오기 (#192) * style: 마커 호버시 마커 강조 (#192) * feat: 마커 클릭시 레스토랑 카드 띄우기 (#192) * refactor: 불필요한 코드 제거 (#192) - 레스토랑 카드 클릭시 맵 모달 이벤트 제거 - 마커 클릭시 맵 모달 이벤트 제거 * feat: 마커클릭 시 마커 위치에 따라 카드모달 위치 조정 (#192) * style: 레스토랑 오버레이 스타일 수정 (#192) * refactor: restaurantCard 컴포넌트를 용도에 따라 스타일 다르게 설정 (#192) * feat: 마커 클릭시 강조 효과 주기 (#192) * Squashed commit of the following: commit 3442d16c306a3a1f478a5ee58c9664daa271bf3f Author: Minjae Kim Date: Fri Jul 28 15:06:21 2023 +0900 design: 전체 카테고리에 해당하는 이미지 수정 (#195) (#196) commit 21128038e8dbd0953497950833f65dc918ffc40b Author: 황준승 <78203399+turtle601@users.noreply.github.com> Date: Thu Jul 27 16:45:06 2023 +0900 feat: 음식점 리스트 중복 필터링 기능 구현 (#186) * refactor: 지도 boundary 타입 추가 및 음식점 카테고리 타입 일부 수정 (#180) * feat: 셀럽 및 음식점 카테고리 별 필터링 기능 추가 (#180) * refactor: getQueryString 로직 분리 및 적용 (#180) * feat: CelebDropDown 및 CategoryNavbar에 전체 버튼 추가 (#184) * fix: 필터링 클릭 시 렌더링이 한 박자 늦게되는 오류 해결 (#184) * refactor: Map 컴포넌트에서 사용하지 않는 props 속성 제거 (#184) * refactor: celeb 전체를 나타내는 상태값을 -1로 변경 (#184) * feat: CelebDropDown blur 기능 추가 (#184) * fix: 불필요한 useEffect dependency 제거 (#184) * feat: Restaurant_Category에 전체 옵션 추가 (#184) * fix: CelebId 초기값 수정 (#184) * fix: API 명세서 수정에 따른 데이터 타입 변경 (#184) * refactor: NavButton props 프로퍼티 수정으로 인한 코드 수정 (#184) * refactor: css 선언방식을 삼항연산자를 && 로 변경 (#184) * fix: NavButton 불필요한 hover 기능 제거 (#184) Changed: hover 이벤트 && 연산자를 삼항연산자 사용으로 변경 * refactor: NavButton 컴포넌트를 NavItem 컴포넌트로 네이밍 수정 (#184) --------- Co-authored-by: d0dam Co-authored-by: Jeremy <102432453+shackstack@users.noreply.github.com> * feat: 다른 마커 클릭시 기존 마커 모달 닫기 기능 구현 (#192) * style: 파일명 오류 수정 (#192) * refactor: baseURL 환경변수 설정 및 type import 분리 * feat: RestaurantCard 컴포넌트 props 수정 (#192) onClick을 optional로 수정 * refactor: getQuadrant 리팩터링 (#192) * style: 상태 네이밍 수정 (#192) mainPosition -> currentCenter * feat: 음식점 카드 호버시 해당 음식점 마커 강조 (#192) * design: 강조시 애니메이션 효과 추가 및 음식점 리스트 스타일 수정 (#192) * refactor: 음식점 카드 호버시 마커 강조 로직 변경 (#192) * refactor: 프로필 이미지 컴포넌트 Props 타입 수정 (#192) size: number => string * fix: setHoverId가 없을 때 default value 설정 (#192) commit 60f870732951b14a824138828074370862fe40a8 Author: Jeremy <102432453+shackstack@users.noreply.github.com> Date: Mon Jul 31 14:41:46 2023 +0900 feat: 레스토랑 카드 및 마커 클릭 이벤트 변경 (#198) * feat: 마커 호버시 마커를 맨 앞으로 가져오기 (#192) * style: 마커 호버시 마커 강조 (#192) * feat: 마커 클릭시 레스토랑 카드 띄우기 (#192) * refactor: 불필요한 코드 제거 (#192) - 레스토랑 카드 클릭시 맵 모달 이벤트 제거 - 마커 클릭시 맵 모달 이벤트 제거 * feat: 마커클릭 시 마커 위치에 따라 카드모달 위치 조정 (#192) * style: 레스토랑 오버레이 스타일 수정 (#192) * refactor: restaurantCard 컴포넌트를 용도에 따라 스타일 다르게 설정 (#192) * feat: 마커 클릭시 강조 효과 주기 (#192) * Squashed commit of the following: commit 3442d16c306a3a1f478a5ee58c9664daa271bf3f Author: Minjae Kim Date: Fri Jul 28 15:06:21 2023 +0900 design: 전체 카테고리에 해당하는 이미지 수정 (#195) (#196) commit 21128038e8dbd0953497950833f65dc918ffc40b Author: 황준승 <78203399+turtle601@users.noreply.github.com> Date: Thu Jul 27 16:45:06 2023 +0900 feat: 음식점 리스트 중복 필터링 기능 구현 (#186) * refactor: 지도 boundary 타입 추가 및 음식점 카테고리 타입 일부 수정 (#180) * feat: 셀럽 및 음식점 카테고리 별 필터링 기능 추가 (#180) * refactor: getQueryString 로직 분리 및 적용 (#180) * feat: CelebDropDown 및 CategoryNavbar에 전체 버튼 추가 (#184) * fix: 필터링 클릭 시 렌더링이 한 박자 늦게되는 오류 해결 (#184) * refactor: Map 컴포넌트에서 사용하지 않는 props 속성 제거 (#184) * refactor: celeb 전체를 나타내는 상태값을 -1로 변경 (#184) * feat: CelebDropDown blur 기능 추가 (#184) * fix: 불필요한 useEffect dependency 제거 (#184) * feat: Restaurant_Category에 전체 옵션 추가 (#184) * fix: CelebId 초기값 수정 (#184) * fix: API 명세서 수정에 따른 데이터 타입 변경 (#184) * refactor: NavButton props 프로퍼티 수정으로 인한 코드 수정 (#184) * refactor: css 선언방식을 삼항연산자를 && 로 변경 (#184) * fix: NavButton 불필요한 hover 기능 제거 (#184) Changed: hover 이벤트 && 연산자를 삼항연산자 사용으로 변경 * refactor: NavButton 컴포넌트를 NavItem 컴포넌트로 네이밍 수정 (#184) --------- Co-authored-by: d0dam Co-authored-by: Jeremy <102432453+shackstack@users.noreply.github.com> * feat: 다른 마커 클릭시 기존 마커 모달 닫기 기능 구현 (#192) * style: 파일명 오류 수정 (#192) * refactor: baseURL 환경변수 설정 및 type import 분리 * feat: RestaurantCard 컴포넌트 props 수정 (#192) onClick을 optional로 수정 * refactor: getQuadrant 리팩터링 (#192) * style: 상태 네이밍 수정 (#192) mainPosition -> currentCenter * feat: 음식점 카드 호버시 해당 음식점 마커 강조 (#192) * design: 강조시 애니메이션 효과 추가 및 음식점 리스트 스타일 수정 (#192) * refactor: 음식점 카드 호버시 마커 강조 로직 변경 (#192) * refactor: 프로필 이미지 컴포넌트 Props 타입 수정 (#192) size: number => string * fix: setHoverId가 없을 때 default value 설정 (#192) * refactor: 경로 수정 (#201) * fix: lint 에러 수정 (#201) --------- Co-authored-by: Jeremy <102432453+shackstack@users.noreply.github.com> commit 2977855a9662aa0a822f2d003e6fe5577b1e1618 Author: Minjae Kim Date: Mon Jul 31 16:05:17 2023 +0900 feat: 레스토랑 카드에 loading 상태 추가 및 skeleton 반영 (#202) * feat: 마커 호버시 마커를 맨 앞으로 가져오기 (#192) * style: 마커 호버시 마커 강조 (#192) * feat: 마커 클릭시 레스토랑 카드 띄우기 (#192) * refactor: 불필요한 코드 제거 (#192) - 레스토랑 카드 클릭시 맵 모달 이벤트 제거 - 마커 클릭시 맵 모달 이벤트 제거 * feat: 마커클릭 시 마커 위치에 따라 카드모달 위치 조정 (#192) * style: 레스토랑 오버레이 스타일 수정 (#192) * refactor: restaurantCard 컴포넌트를 용도에 따라 스타일 다르게 설정 (#192) * feat: 마커 클릭시 강조 효과 주기 (#192) * Squashed commit of the following: commit 3442d16c306a3a1f478a5ee58c9664daa271bf3f Author: Minjae Kim Date: Fri Jul 28 15:06:21 2023 +0900 design: 전체 카테고리에 해당하는 이미지 수정 (#195) (#196) commit 21128038e8dbd0953497950833f65dc918ffc40b Author: 황준승 <78203399+turtle601@users.noreply.github.com> Date: Thu Jul 27 16:45:06 2023 +0900 feat: 음식점 리스트 중복 필터링 기능 구현 (#186) * refactor: 지도 boundary 타입 추가 및 음식점 카테고리 타입 일부 수정 (#180) * feat: 셀럽 및 음식점 카테고리 별 필터링 기능 추가 (#180) * refactor: getQueryString 로직 분리 및 적용 (#180) * feat: CelebDropDown 및 CategoryNavbar에 전체 버튼 추가 (#184) * fix: 필터링 클릭 시 렌더링이 한 박자 늦게되는 오류 해결 (#184) * refactor: Map 컴포넌트에서 사용하지 않는 props 속성 제거 (#184) * refactor: celeb 전체를 나타내는 상태값을 -1로 변경 (#184) * feat: CelebDropDown blur 기능 추가 (#184) * fix: 불필요한 useEffect dependency 제거 (#184) * feat: Restaurant_Category에 전체 옵션 추가 (#184) * fix: CelebId 초기값 수정 (#184) * fix: API 명세서 수정에 따른 데이터 타입 변경 (#184) * refactor: NavButton props 프로퍼티 수정으로 인한 코드 수정 (#184) * refactor: css 선언방식을 삼항연산자를 && 로 변경 (#184) * fix: NavButton 불필요한 hover 기능 제거 (#184) Changed: hover 이벤트 && 연산자를 삼항연산자 사용으로 변경 * refactor: NavButton 컴포넌트를 NavItem 컴포넌트로 네이밍 수정 (#184) --------- Co-authored-by: d0dam Co-authored-by: Jeremy <102432453+shackstack@users.noreply.github.com> * feat: 다른 마커 클릭시 기존 마커 모달 닫기 기능 구현 (#192) * feat: 음식점 카드에 사용하는 컴포넌트 스켈레톤 구현 (#199) * refactor: 음식점 카드 리스트 컴포넌트 분리, 로딩 상태 추가 (#199) * refactor: 이미지에 대해 loading lazy 속성 추가 (#199) * refactor: 로딩 애니메이션을 자연스럽게 수정 (#199) * refactor: Map에 data 로딩 상태 추가 (#199) * feat: 전 음식점 갯수만큼 음식점 스켈레톤을 표시하도록 수정 (#199) * refactor: Map이 로딩 상태일 때 스타일 추가 (#199) * Squashed commit of the following: commit 60f870732951b14a824138828074370862fe40a8 Author: Jeremy <102432453+shackstack@users.noreply.github.com> Date: Mon Jul 31 14:41:46 2023 +0900 feat: 레스토랑 카드 및 마커 클릭 이벤트 변경 (#198) * feat: 마커 호버시 마커를 맨 앞으로 가져오기 (#192) * style: 마커 호버시 마커 강조 (#192) * feat: 마커 클릭시 레스토랑 카드 띄우기 (#192) * refactor: 불필요한 코드 제거 (#192) - 레스토랑 카드 클릭시 맵 모달 이벤트 제거 - 마커 클릭시 맵 모달 이벤트 제거 * feat: 마커클릭 시 마커 위치에 따라 카드모달 위치 조정 (#192) * style: 레스토랑 오버레이 스타일 수정 (#192) * refactor: restaurantCard 컴포넌트를 용도에 따라 스타일 다르게 설정 (#192) * feat: 마커 클릭시 강조 효과 주기 (#192) * Squashed commit of the following: commit 3442d16c306a3a1f478a5ee58c9664daa271bf3f Author: Minjae Kim Date: Fri Jul 28 15:06:21 2023 +0900 design: 전체 카테고리에 해당하는 이미지 수정 (#195) (#196) commit 21128038e8dbd0953497950833f65dc918ffc40b Author: 황준승 <78203399+turtle601@users.noreply.github.com> Date: Thu Jul 27 16:45:06 2023 +0900 feat: 음식점 리스트 중복 필터링 기능 구현 (#186) * refactor: 지도 boundary 타입 추가 및 음식점 카테고리 타입 일부 수정 (#180) * feat: 셀럽 및 음식점 카테고리 별 필터링 기능 추가 (#180) * refactor: getQueryString 로직 분리 및 적용 (#180) * feat: CelebDropDown 및 CategoryNavbar에 전체 버튼 추가 (#184) * fix: 필터링 클릭 시 렌더링이 한 박자 늦게되는 오류 해결 (#184) * refactor: Map 컴포넌트에서 사용하지 않는 props 속성 제거 (#184) * refactor: celeb 전체를 나타내는 상태값을 -1로 변경 (#184) * feat: CelebDropDown blur 기능 추가 (#184) * fix: 불필요한 useEffect dependency 제거 (#184) * feat: Restaurant_Category에 전체 옵션 추가 (#184) * fix: CelebId 초기값 수정 (#184) * fix: API 명세서 수정에 따른 데이터 타입 변경 (#184) * refactor: NavButton props 프로퍼티 수정으로 인한 코드 수정 (#184) * refactor: css 선언방식을 삼항연산자를 && 로 변경 (#184) * fix: NavButton 불필요한 hover 기능 제거 (#184) Changed: hover 이벤트 && 연산자를 삼항연산자 사용으로 변경 * refactor: NavButton 컴포넌트를 NavItem 컴포넌트로 네이밍 수정 (#184) --------- Co-authored-by: d0dam Co-authored-by: Jeremy <102432453+shackstack@users.noreply.github.com> * feat: 다른 마커 클릭시 기존 마커 모달 닫기 기능 구현 (#192) * style: 파일명 오류 수정 (#192) * refactor: baseURL 환경변수 설정 및 type import 분리 * feat: RestaurantCard 컴포넌트 props 수정 (#192) onClick을 optional로 수정 * refactor: getQuadrant 리팩터링 (#192) * style: 상태 네이밍 수정 (#192) mainPosition -> currentCenter * feat: 음식점 카드 호버시 해당 음식점 마커 강조 (#192) * design: 강조시 애니메이션 효과 추가 및 음식점 리스트 스타일 수정 (#192) * refactor: 음식점 카드 호버시 마커 강조 로직 변경 (#192) * refactor: 프로필 이미지 컴포넌트 Props 타입 수정 (#192) size: number => string * fix: setHoverId가 없을 때 default value 설정 (#192) * fix: 충돌 해결 간 생긴 에러 및 lint 에러 수정 (#201) --------- Co-authored-by: Jeremy <102432453+shackstack@users.noreply.github.com> commit 60f870732951b14a824138828074370862fe40a8 Author: Jeremy <102432453+shackstack@users.noreply.github.com> Date: Mon Jul 31 14:41:46 2023 +0900 feat: 레스토랑 카드 및 마커 클릭 이벤트 변경 (#198) * feat: 마커 호버시 마커를 맨 앞으로 가져오기 (#192) * style: 마커 호버시 마커 강조 (#192) * feat: 마커 클릭시 레스토랑 카드 띄우기 (#192) * refactor: 불필요한 코드 제거 (#192) - 레스토랑 카드 클릭시 맵 모달 이벤트 제거 - 마커 클릭시 맵 모달 이벤트 제거 * feat: 마커클릭 시 마커 위치에 따라 카드모달 위치 조정 (#192) * style: 레스토랑 오버레이 스타일 수정 (#192) * refactor: restaurantCard 컴포넌트를 용도에 따라 스타일 다르게 설정 (#192) * feat: 마커 클릭시 강조 효과 주기 (#192) * Squashed commit of the following: commit 3442d16c306a3a1f478a5ee58c9664daa271bf3f Author: Minjae Kim Date: Fri Jul 28 15:06:21 2023 +0900 design: 전체 카테고리에 해당하는 이미지 수정 (#195) (#196) commit 21128038e8dbd0953497950833f65dc918ffc40b Author: 황준승 <78203399+turtle601@users.noreply.github.com> Date: Thu Jul 27 16:45:06 2023 +0900 feat: 음식점 리스트 중복 필터링 기능 구현 (#186) * refactor: 지도 boundary 타입 추가 및 음식점 카테고리 타입 일부 수정 (#180) * feat: 셀럽 및 음식점 카테고리 별 필터링 기능 추가 (#180) * refactor: getQueryString 로직 분리 및 적용 (#180) * feat: CelebDropDown 및 CategoryNavbar에 전체 버튼 추가 (#184) * fix: 필터링 클릭 시 렌더링이 한 박자 늦게되는 오류 해결 (#184) * refactor: Map 컴포넌트에서 사용하지 않는 props 속성 제거 (#184) * refactor: celeb 전체를 나타내는 상태값을 -1로 변경 (#184) * feat: CelebDropDown blur 기능 추가 (#184) * fix: 불필요한 useEffect dependency 제거 (#184) * feat: Restaurant_Category에 전체 옵션 추가 (#184) * fix: CelebId 초기값 수정 (#184) * fix: API 명세서 수정에 따른 데이터 타입 변경 (#184) * refactor: NavButton props 프로퍼티 수정으로 인한 코드 수정 (#184) * refactor: css 선언방식을 삼항연산자를 && 로 변경 (#184) * fix: NavButton 불필요한 hover 기능 제거 (#184) Changed: hover 이벤트 && 연산자를 삼항연산자 사용으로 변경 * refactor: NavButton 컴포넌트를 NavItem 컴포넌트로 네이밍 수정 (#184) --------- Co-authored-by: d0dam Co-authored-by: Jeremy <102432453+shackstack@users.noreply.github.com> * feat: 다른 마커 클릭시 기존 마커 모달 닫기 기능 구현 (#192) * style: 파일명 오류 수정 (#192) * refactor: baseURL 환경변수 설정 및 type import 분리 * feat: RestaurantCard 컴포넌트 props 수정 (#192) onClick을 optional로 수정 * refactor: getQuadrant 리팩터링 (#192) * style: 상태 네이밍 수정 (#192) mainPosition -> currentCenter * feat: 음식점 카드 호버시 해당 음식점 마커 강조 (#192) * design: 강조시 애니메이션 효과 추가 및 음식점 리스트 스타일 수정 (#192) * refactor: 음식점 카드 호버시 마커 강조 로직 변경 (#192) * refactor: 프로필 이미지 컴포넌트 Props 타입 수정 (#192) size: number => string * fix: setHoverId가 없을 때 default value 설정 (#192) commit 3442d16c306a3a1f478a5ee58c9664daa271bf3f Author: Minjae Kim Date: Fri Jul 28 15:06:21 2023 +0900 design: 전체 카테고리에 해당하는 이미지 수정 (#195) (#196) * refactor: BASE_URL 값 수정 (#193) * refactor: react query, zustand, axios 설치 (#212) * chore: 전역상태관리 및 비동기 라이브러리 설치 (#210) * refactor: 리액트 쿼리 및 axios 적용 (#210) * bug: 지도 버그 수정 (#217) * fix: 카드 모달 에러 수정 (#216) 카드 모달 클릭 시 꺼져버리는 버그 수정 * fix: 마커 호버시 호버된 마커 최상단으로 오지 않는 버그 수정 (#216) * design: 지도 커스텀 (#219) * fix: 카드 모달 에러 수정 (#216) 카드 모달 클릭 시 꺼져버리는 버그 수정 * fix: 마커 호버시 호버된 마커 최상단으로 오지 않는 버그 수정 (#216) * feat: 지도 커스텀 (#218) * feat: 웹 접근성 적용 (#220) (#223) * feat: 로그인 로그아웃 기능 구현 (#225) * feat: 로그인 및 로그아웃 기능 구현 (#215) * fix: 셀럽 버튼 blur 이벤트 버그 수정 (#227) * feat: CelebDropDown 의 Options를 서버에서 셀럽 데이터 받아오기 (#215) * fix: celeb 데이터에 전체 속성 추가 시 동작하지 않는 에러 해결 (#215) * refactor: 불필요한 주석 제거 (#215) * refactor: 중복된 코드 제거 (#215) * refactor: 셀럽 전체 카테고리 변수를 다른 파일로 분리 (#215) * refactor: restaurantList 데이터 수정 (#215) * refactor: useEffect에 의존 배열에 celebOptions 제거 (#215) * refactor: zustand persist 설정으로 localStorage 동기화 구현(#215) * feat: 음식점 조회 시 페이징 적용 (#221) * fix: 카드 모달 에러 수정 (#216) 카드 모달 클릭 시 꺼져버리는 버그 수정 * fix: 마커 호버시 호버된 마커 최상단으로 오지 않는 버그 수정 (#216) * feat: 지도 커스텀 (#218) * feat: PageNationBar 구현 (#178) * feat: PageNationBar 음식점 카드 목록에 연결 (#178) * style: 컨벤션에 맞게 수정 (#178) * feat: feat: 이전 다음 버튼 기능 구현 (#178) * Merge commit '3b0692ccc2e3893c3e50d37ccdf73d79c552a2da' * Squashed commit of the following: commit 2c4e694ca24454fbe549e3ffbf60b0d3864e4777 Author: 황준승 <78203399+turtle601@users.noreply.github.com> Date: Tue Aug 1 16:50:38 2023 +0900 feat: 로그인 로그아웃 기능 구현 (#225) * feat: 로그인 및 로그아웃 기능 구현 (#215) * fix: 셀럽 버튼 blur 이벤트 버그 수정 (#227) * feat: CelebDropDown 의 Options를 서버에서 셀럽 데이터 받아오기 (#215) * fix: celeb 데이터에 전체 속성 추가 시 동작하지 않는 에러 해결 (#215) * refactor: 불필요한 주석 제거 (#215) * refactor: 중복된 코드 제거 (#215) * refactor: 셀럽 전체 카테고리 변수를 다른 파일로 분리 (#215) * refactor: restaurantList 데이터 수정 (#215) * refactor: useEffect에 의존 배열에 celebOptions 제거 (#215) * refactor: zustand persist 설정으로 localStorage 동기화 구현(#215) commit 3b0692ccc2e3893c3e50d37ccdf73d79c552a2da Author: Jeremy <102432453+shackstack@users.noreply.github.com> Date: Tue Aug 1 12:11:41 2023 +0900 feat: 웹 접근성 적용 (#220) (#223) commit e48e9a0a5247b8ac7e95561bb9932e29f9e3e03b Author: Jeremy <102432453+shackstack@users.noreply.github.com> Date: Tue Aug 1 10:15:43 2023 +0900 design: 지도 커스텀 (#219) * fix: 카드 모달 에러 수정 (#216) 카드 모달 클릭 시 꺼져버리는 버그 수정 * fix: 마커 호버시 호버된 마커 최상단으로 오지 않는 버그 수정 (#216) * feat: 지도 커스텀 (#218) commit 9b153ef2925c966946ab5bfe2a1cacf3f193e767 Author: Jeremy <102432453+shackstack@users.noreply.github.com> Date: Tue Aug 1 10:15:32 2023 +0900 bug: 지도 버그 수정 (#217) * fix: 카드 모달 에러 수정 (#216) 카드 모달 클릭 시 꺼져버리는 버그 수정 * fix: 마커 호버시 호버된 마커 최상단으로 오지 않는 버그 수정 (#216) --------- Co-authored-by: Jeremy <102432453+shackstack@users.noreply.github.com> * chore: 도메인 설정을 위한 webpack 수정 (#234) * chore: chore-도메인-설정을-위한-webpack-수정 (#231) * fix: 서버가 안 뜨는 에러 해결 (#231) Changed: disableHostCheck 삭제 * fix: 도메인 설정을 위한 webpack 설정 수정(#231) * fix: 도메인 설정을 위한 webpack5 설정 수정(#231) * chore: webpack production 파일 수정 (#231) * fix: 도메인 배포 환경에서 Invalid 에러 해결 (#231) * fix: 도메인 수정으로 인한 meta 태그 수정(#231) * chore: 도메인 설정을 위한 webpack 수정 (#231) * fix: 도메인을 위한 Webpack 에러 수정 (#231) * chore: 이미지 정책을 위한 meta 수정 (#231) * [⚙️Chore] 도메인 설정을 위한 webpack 수정 (#236) * infra: 이슈 템플릿 & PR 템플릿 작성 (#86) * infra: 이슈 템플릿 작성 (#84) * infra: PR 템플릿 작성 (#84) * chore: chore-도메인-설정을-위한-webpack-수정 (#231) * fix: 서버가 안 뜨는 에러 해결 (#231) Changed: disableHostCheck 삭제 * fix: 도메인 설정을 위한 webpack 설정 수정(#231) * fix: 도메인 설정을 위한 webpack5 설정 수정(#231) * chore: webpack production 파일 수정 (#231) * fix: 도메인 배포 환경에서 Invalid 에러 해결 (#231) * fix: 도메인 수정으로 인한 meta 태그 수정(#231) * chore: 도메인 설정을 위한 webpack 수정 (#231) * fix: 도메인을 위한 Webpack 에러 수정 (#231) * chore: 이미지 정책을 위한 meta 수정 (#231) * fix: style-lint 에러 해결 (#231) * fix: 이미지 url 변경 (#231) * fix: prod 모드에서 react-devtools가 나오는 에러 해결 (#231) --------- Co-authored-by: Donghun Shin * feat: 반응형 페이지 구현 (#237) * chore: production 접근 포트 설정 (#229) * refactor: 파일 확장자명 변경 (#229) * feat: 미디어 쿼리 훅 구현 (#229) * feat: 반응형 구현(#229) * refactor: BottomSheet 상태를 전역으로 선언, 시트가 열렸을 때 지도 커버 추가 (#229) * feat: BottomSheet 제목 스켈레톤 추가 (#229) * feat: 이미지 캐러셀에 모바일 전용 이벤트 추가 (#229) * refactor: 모바일에서 지도가 리스트업시 축소되지 않도록 수정 (#229) * refactor: 이미지 케러셀이 모바일에서는 버튼이 보이지 않도록 수정 (#229) * refactor: 모바일 내의 음식점 리스트 반응형 구현 (#229) * fix: PageNationBar 의 이벤트 버블링 방지 (#229) * design: PageNationBar 작은 창에서의 크기 조절 (#229) * refactor: PageNationBar 스켈레톤과 같이 보이도록 수정 (#229) * Merge commit '05dab5a9d163eac00de06c6821eca2d2f6669ac1' * design: LoadingDots 의 dot을 svg로 변경 * fix: image 경로 수정 * infra: github workflow 변경 --------- Co-authored-by: Jeremy <102432453+shackstack@users.noreply.github.com> Co-authored-by: Minjae Kim Co-authored-by: 황준승 Co-authored-by: 황준승 <78203399+turtle601@users.noreply.github.com> Co-authored-by: Donghun Shin Co-authored-by: turtle601 Co-authored-by: Taeyeon <90550065+TaeyeonRoyce@users.noreply.github.com> Co-authored-by: TaeyeonRoyce --- .github/workflows/frontend-ci.yml | 35 + .github/workflows/frontend-dev-cd.yml | 23 + .github/workflows/frontend-prod-cd.yml | 24 + README.md | 13 - frontend/.babelrc | 35 + frontend/.eslintrc | 42 + frontend/.gitignore | 3 + frontend/.nvmrc | 1 + frontend/.prettierrc | 11 + frontend/.storybook/main.ts | 31 + frontend/.storybook/preview.ts | 19 + frontend/.stylelintrc | 101 + frontend/.vscode/settings.json | 15 + frontend/.webpack/webpack.common.js | 79 + frontend/.webpack/webpack.config.js | 16 + frontend/.webpack/webpack.dev.js | 18 + frontend/.webpack/webpack.prod.js | 13 + frontend/fileTransformer.js | 10 + frontend/jest.config.js | 14 + frontend/package.json | 101 + frontend/public/index.html | 16 + frontend/public/mockServiceWorker.js | 303 + frontend/src/@types/api.types.ts | 21 + frontend/src/@types/celeb.types.ts | 7 + frontend/src/@types/global.d.ts | 15 + frontend/src/@types/image.type.ts | 5 + frontend/src/@types/map.types.ts | 11 + frontend/src/@types/oauth.types.ts | 1 + frontend/src/@types/restaurant.types.ts | 18 + frontend/src/App.tsx | 20 + frontend/src/api/index.ts | 32 + frontend/src/api/oauth.ts | 12 + frontend/src/assets/all.png | Bin 0 -> 14819 bytes frontend/src/assets/fonts/SUIT-Bold.woff2 | Bin 0 -> 177832 bytes frontend/src/assets/fonts/SUIT-Medium.woff2 | Bin 0 -> 177208 bytes frontend/src/assets/fonts/SUIT-Regular.woff2 | Bin 0 -> 173624 bytes frontend/src/assets/icons/celeb.svg | 6 + frontend/src/assets/icons/celuveat_cel.svg | 3 + frontend/src/assets/icons/celuveat_eat.svg | 3 + frontend/src/assets/icons/celuveat_luv.svg | 3 + frontend/src/assets/icons/dot.svg | 3 + frontend/src/assets/icons/etc/menu.svg | 3 + frontend/src/assets/icons/etc/user.svg | 1 + frontend/src/assets/icons/exit.svg | 3 + frontend/src/assets/icons/fastFood.svg | 1 + frontend/src/assets/icons/github.svg | 20 + frontend/src/assets/icons/instagram.svg | 41 + frontend/src/assets/icons/left-bracket.svg | 3 + frontend/src/assets/icons/love.svg | 3 + frontend/src/assets/icons/minus.svg | 3 + frontend/src/assets/icons/my-location.svg | 10 + frontend/src/assets/icons/oauth/google.svg | 1 + frontend/src/assets/icons/oauth/kakao.svg | 2 + frontend/src/assets/icons/oauth/naver.svg | 2 + frontend/src/assets/icons/plus.svg | 3 + .../assets/icons/restaurantCategory/all.svg | 10 + .../icons/restaurantCategory/ijakaya.svg | 36 + .../icons/restaurantCategory/japanese.svg | 49 + .../icons/restaurantCategory/korean.svg | 53 + .../assets/icons/restaurantCategory/meat.svg | 63 + .../assets/icons/restaurantCategory/pasta.svg | 41 + .../assets/icons/restaurantCategory/pig.svg | 53 + .../assets/icons/restaurantCategory/pub.svg | 25 + .../icons/restaurantCategory/sashimi.svg | 2 + .../assets/icons/restaurantCategory/sushi.svg | 77 + .../assets/icons/restaurantCategory/wine.svg | 43 + frontend/src/assets/icons/right-bracket.svg | 3 + frontend/src/assets/icons/search.svg | 3 + frontend/src/assets/icons/star.svg | 3 + frontend/src/assets/logo.png | Bin 0 -> 2773 bytes .../@common/BottomSheet/BottomSheet.tsx | 80 + .../@common/BottomSheet/BottomSheetHeader.tsx | 59 + .../components/@common/BottomSheet/index.tsx | 3 + .../@common/Button/TextButton.stories.tsx | 59 + .../components/@common/Button/TextButton.tsx | 41 + .../src/components/@common/Button/index.tsx | 3 + .../@common/Footer/Footer.stories.tsx | 15 + .../src/components/@common/Footer/Footer.tsx | 66 + .../src/components/@common/Footer/index.tsx | 3 + .../@common/Header/Header.stories.tsx | 15 + .../src/components/@common/Header/Header.tsx | 68 + .../src/components/@common/Header/index.tsx | 3 + .../ImageCarousel/ImageCarousel.stories.tsx | 28 + .../@common/ImageCarousel/ImageCarousel.tsx | 159 + .../@common/ImageCarousel/index.tsx | 3 + .../@common/InfoButton/InfoButton.stories.tsx | 15 + .../@common/InfoButton/InfoButton.tsx | 47 + .../components/@common/InfoButton/index.tsx | 3 + .../@common/Label/Label.stories.tsx | 15 + .../src/components/@common/Label/Label.tsx | 27 + .../src/components/@common/Label/index.tsx | 3 + .../LoadingDots/LoadingDots.stories.tsx | 15 + .../@common/LoadingDots/LoadingDots.tsx | 54 + .../components/@common/LoadingDots/index.tsx | 3 + .../LoadingIndicator.stories.tsx | 15 + .../LoadingIndicator/LoadingIndicator.tsx | 76 + .../@common/LoadingIndicator/index.tsx | 3 + .../LoginButton/LoginButton.stories.tsx | 33 + .../@common/LoginButton/LoginButton.tsx | 74 + .../components/@common/LoginButton/index.tsx | 3 + .../components/@common/Map/Map.stories.tsx | 29 + frontend/src/components/@common/Map/Map.tsx | 203 + .../src/components/@common/Map/MapContent.tsx | 34 + .../@common/Map/Overlay/Overlay.tsx | 41 + .../Map/Overlay/domain/createOverlay.ts | 50 + .../components/@common/Map/Overlay/index.tsx | 3 + .../components/@common/Map/OverlayMarker.tsx | 110 + .../@common/Map/OverlayMyLocation.tsx | 56 + .../components/@common/Map/hooks/useMap.ts | 198 + frontend/src/components/@common/Map/index.tsx | 3 + .../src/components/@common/Modal/Modal.tsx | 11 + .../@common/Modal/ModalContent.stories.tsx | 20 + .../components/@common/Modal/ModalContent.tsx | 106 + .../src/components/@common/Modal/index.tsx | 4 + .../@common/NavButton/NavButton.stories.tsx | 20 + .../@common/NavButton/NavButton.tsx | 94 + .../components/@common/NavButton/index.tsx | 3 + .../PageNationBar/PageNationBar.stories.tsx | 19 + .../@common/PageNationBar/PageNationBar.tsx | 124 + .../@common/PageNationBar/index.tsx | 3 + .../ProfileImage/ProfileImage.stories.tsx | 19 + .../@common/ProfileImage/ProfileImage.tsx | 22 + .../ProfileImage/ProfileImageSkeleton.tsx | 21 + .../components/@common/ProfileImage/index.tsx | 3 + .../ProfileImageList.stories.tsx | 43 + .../ProfileImageList/ProfileImageList.tsx | 49 + .../@common/ProfileImageList/index.tsx | 3 + .../@common/Skeleton/Skeleton.stories.tsx | 18 + .../components/@common/Skeleton/Skeleton.tsx | 22 + .../src/components/@common/Skeleton/index.tsx | 3 + .../WaterMarkImage/WaterMarkImage.stories.tsx | 18 + .../@common/WaterMarkImage/WaterMarkImage.tsx | 51 + .../@common/WaterMarkImage/index.tsx | 3 + .../CategoryNavbar/CategoryNavbar.stories.tsx | 67 + .../CategoryNavbar/CategoryNavbar.tsx | 55 + .../src/components/CategoryNavbar/index.tsx | 3 + .../CelebBanner/CelebBanner.stories.tsx | 23 + .../components/CelebBanner/CelebBanner.tsx | 89 + frontend/src/components/CelebBanner/index.tsx | 3 + .../CelebDropDown/CelebDropDown.stories.tsx | 53 + .../CelebDropDown/CelebDropDown.tsx | 121 + .../src/components/CelebDropDown/index.tsx | 3 + .../InfoDropDown/InfoDropDown.stories.tsx | 36 + .../components/InfoDropDown/InfoDropDown.tsx | 120 + .../src/components/InfoDropDown/index.tsx | 3 + .../LoginModalContent.stories.tsx | 25 + .../LoginModalContent/LoginModalContent.tsx | 20 + .../components/LoginModalContent/index.tsx | 3 + .../components/MapModal/MapModal.stories.tsx | 37 + frontend/src/components/MapModal/MapModal.tsx | 84 + frontend/src/components/MapModal/index.tsx | 3 + .../MapModalContent/MapModalContent.tsx | 62 + .../src/components/MapModalContent/index.tsx | 3 + .../RestaurantCard/RestaurantCard.stories.tsx | 51 + .../RestaurantCard/RestaurantCard.tsx | 121 + .../RestaurantCard/RestaurantCardSkeleton.tsx | 92 + .../src/components/RestaurantCard/index.tsx | 3 + .../RestaurantCardList/RestaurantCardList.tsx | 112 + .../RestaurantCardListSkeleton.tsx | 53 + .../components/RestaurantCardList/index.tsx | 3 + .../VideoPreview/VideoPreview.stories.tsx | 39 + .../components/VideoPreview/VideoPreview.tsx | 123 + .../src/components/VideoPreview/index.tsx | 3 + frontend/src/constants/api.ts | 13 + frontend/src/constants/options.ts | 12 + frontend/src/constants/restaurantCategory.tsx | 66 + .../src/hooks/store/useBottomSheetStatus.ts | 15 + frontend/src/hooks/store/useTokenState.ts | 24 + frontend/src/hooks/useBooleanState.ts | 13 + frontend/src/hooks/useMapModal.ts | 20 + frontend/src/hooks/useMediaQuery.ts | 25 + frontend/src/hooks/useOnClickOutside.ts | 19 + frontend/src/hooks/useTouchMoveDirection.ts | 114 + frontend/src/index.tsx | 26 + frontend/src/mocks/browser.ts | 4 + frontend/src/mocks/handlers.ts | 4 + frontend/src/pages/MainPage.tsx | 247 + frontend/src/pages/OauthRedirectPage.tsx | 52 + frontend/src/styles/GlobalStyles.ts | 12 + frontend/src/styles/base.ts | 78 + frontend/src/styles/common.ts | 50 + frontend/src/styles/fonts.ts | 29 + frontend/src/styles/reset.ts | 142 + frontend/src/utils/compare.ts | 3 + frontend/src/utils/formatDateToKorean.ts | 12 + frontend/src/utils/getQuadrant.ts | 18 + frontend/src/utils/getQueryString.ts | 24 + frontend/tsconfig.json | 23 + frontend/yarn.lock | 11789 ++++++++++++++++ 189 files changed, 18271 insertions(+), 13 deletions(-) create mode 100644 .github/workflows/frontend-ci.yml create mode 100644 .github/workflows/frontend-dev-cd.yml create mode 100644 .github/workflows/frontend-prod-cd.yml delete mode 100644 README.md create mode 100644 frontend/.babelrc create mode 100644 frontend/.eslintrc create mode 100644 frontend/.gitignore create mode 100644 frontend/.nvmrc create mode 100644 frontend/.prettierrc create mode 100644 frontend/.storybook/main.ts create mode 100644 frontend/.storybook/preview.ts create mode 100644 frontend/.stylelintrc create mode 100644 frontend/.vscode/settings.json create mode 100644 frontend/.webpack/webpack.common.js create mode 100644 frontend/.webpack/webpack.config.js create mode 100644 frontend/.webpack/webpack.dev.js create mode 100644 frontend/.webpack/webpack.prod.js create mode 100644 frontend/fileTransformer.js create mode 100644 frontend/jest.config.js create mode 100644 frontend/package.json create mode 100644 frontend/public/index.html create mode 100644 frontend/public/mockServiceWorker.js create mode 100644 frontend/src/@types/api.types.ts create mode 100644 frontend/src/@types/celeb.types.ts create mode 100644 frontend/src/@types/global.d.ts create mode 100644 frontend/src/@types/image.type.ts create mode 100644 frontend/src/@types/map.types.ts create mode 100644 frontend/src/@types/oauth.types.ts create mode 100644 frontend/src/@types/restaurant.types.ts create mode 100644 frontend/src/App.tsx create mode 100644 frontend/src/api/index.ts create mode 100644 frontend/src/api/oauth.ts create mode 100644 frontend/src/assets/all.png create mode 100644 frontend/src/assets/fonts/SUIT-Bold.woff2 create mode 100644 frontend/src/assets/fonts/SUIT-Medium.woff2 create mode 100644 frontend/src/assets/fonts/SUIT-Regular.woff2 create mode 100644 frontend/src/assets/icons/celeb.svg create mode 100644 frontend/src/assets/icons/celuveat_cel.svg create mode 100644 frontend/src/assets/icons/celuveat_eat.svg create mode 100644 frontend/src/assets/icons/celuveat_luv.svg create mode 100644 frontend/src/assets/icons/dot.svg create mode 100644 frontend/src/assets/icons/etc/menu.svg create mode 100644 frontend/src/assets/icons/etc/user.svg create mode 100644 frontend/src/assets/icons/exit.svg create mode 100644 frontend/src/assets/icons/fastFood.svg create mode 100644 frontend/src/assets/icons/github.svg create mode 100644 frontend/src/assets/icons/instagram.svg create mode 100644 frontend/src/assets/icons/left-bracket.svg create mode 100644 frontend/src/assets/icons/love.svg create mode 100644 frontend/src/assets/icons/minus.svg create mode 100644 frontend/src/assets/icons/my-location.svg create mode 100644 frontend/src/assets/icons/oauth/google.svg create mode 100644 frontend/src/assets/icons/oauth/kakao.svg create mode 100644 frontend/src/assets/icons/oauth/naver.svg create mode 100644 frontend/src/assets/icons/plus.svg create mode 100644 frontend/src/assets/icons/restaurantCategory/all.svg create mode 100644 frontend/src/assets/icons/restaurantCategory/ijakaya.svg create mode 100644 frontend/src/assets/icons/restaurantCategory/japanese.svg create mode 100644 frontend/src/assets/icons/restaurantCategory/korean.svg create mode 100644 frontend/src/assets/icons/restaurantCategory/meat.svg create mode 100644 frontend/src/assets/icons/restaurantCategory/pasta.svg create mode 100644 frontend/src/assets/icons/restaurantCategory/pig.svg create mode 100644 frontend/src/assets/icons/restaurantCategory/pub.svg create mode 100644 frontend/src/assets/icons/restaurantCategory/sashimi.svg create mode 100644 frontend/src/assets/icons/restaurantCategory/sushi.svg create mode 100644 frontend/src/assets/icons/restaurantCategory/wine.svg create mode 100644 frontend/src/assets/icons/right-bracket.svg create mode 100644 frontend/src/assets/icons/search.svg create mode 100644 frontend/src/assets/icons/star.svg create mode 100644 frontend/src/assets/logo.png create mode 100644 frontend/src/components/@common/BottomSheet/BottomSheet.tsx create mode 100644 frontend/src/components/@common/BottomSheet/BottomSheetHeader.tsx create mode 100644 frontend/src/components/@common/BottomSheet/index.tsx create mode 100644 frontend/src/components/@common/Button/TextButton.stories.tsx create mode 100644 frontend/src/components/@common/Button/TextButton.tsx create mode 100644 frontend/src/components/@common/Button/index.tsx create mode 100644 frontend/src/components/@common/Footer/Footer.stories.tsx create mode 100644 frontend/src/components/@common/Footer/Footer.tsx create mode 100644 frontend/src/components/@common/Footer/index.tsx create mode 100644 frontend/src/components/@common/Header/Header.stories.tsx create mode 100644 frontend/src/components/@common/Header/Header.tsx create mode 100644 frontend/src/components/@common/Header/index.tsx create mode 100644 frontend/src/components/@common/ImageCarousel/ImageCarousel.stories.tsx create mode 100644 frontend/src/components/@common/ImageCarousel/ImageCarousel.tsx create mode 100644 frontend/src/components/@common/ImageCarousel/index.tsx create mode 100644 frontend/src/components/@common/InfoButton/InfoButton.stories.tsx create mode 100644 frontend/src/components/@common/InfoButton/InfoButton.tsx create mode 100644 frontend/src/components/@common/InfoButton/index.tsx create mode 100644 frontend/src/components/@common/Label/Label.stories.tsx create mode 100644 frontend/src/components/@common/Label/Label.tsx create mode 100644 frontend/src/components/@common/Label/index.tsx create mode 100644 frontend/src/components/@common/LoadingDots/LoadingDots.stories.tsx create mode 100644 frontend/src/components/@common/LoadingDots/LoadingDots.tsx create mode 100644 frontend/src/components/@common/LoadingDots/index.tsx create mode 100644 frontend/src/components/@common/LoadingIndicator/LoadingIndicator.stories.tsx create mode 100644 frontend/src/components/@common/LoadingIndicator/LoadingIndicator.tsx create mode 100644 frontend/src/components/@common/LoadingIndicator/index.tsx create mode 100644 frontend/src/components/@common/LoginButton/LoginButton.stories.tsx create mode 100644 frontend/src/components/@common/LoginButton/LoginButton.tsx create mode 100644 frontend/src/components/@common/LoginButton/index.tsx create mode 100644 frontend/src/components/@common/Map/Map.stories.tsx create mode 100644 frontend/src/components/@common/Map/Map.tsx create mode 100644 frontend/src/components/@common/Map/MapContent.tsx create mode 100644 frontend/src/components/@common/Map/Overlay/Overlay.tsx create mode 100644 frontend/src/components/@common/Map/Overlay/domain/createOverlay.ts create mode 100644 frontend/src/components/@common/Map/Overlay/index.tsx create mode 100644 frontend/src/components/@common/Map/OverlayMarker.tsx create mode 100644 frontend/src/components/@common/Map/OverlayMyLocation.tsx create mode 100644 frontend/src/components/@common/Map/hooks/useMap.ts create mode 100644 frontend/src/components/@common/Map/index.tsx create mode 100644 frontend/src/components/@common/Modal/Modal.tsx create mode 100644 frontend/src/components/@common/Modal/ModalContent.stories.tsx create mode 100644 frontend/src/components/@common/Modal/ModalContent.tsx create mode 100644 frontend/src/components/@common/Modal/index.tsx create mode 100644 frontend/src/components/@common/NavButton/NavButton.stories.tsx create mode 100644 frontend/src/components/@common/NavButton/NavButton.tsx create mode 100644 frontend/src/components/@common/NavButton/index.tsx create mode 100644 frontend/src/components/@common/PageNationBar/PageNationBar.stories.tsx create mode 100644 frontend/src/components/@common/PageNationBar/PageNationBar.tsx create mode 100644 frontend/src/components/@common/PageNationBar/index.tsx create mode 100644 frontend/src/components/@common/ProfileImage/ProfileImage.stories.tsx create mode 100644 frontend/src/components/@common/ProfileImage/ProfileImage.tsx create mode 100644 frontend/src/components/@common/ProfileImage/ProfileImageSkeleton.tsx create mode 100644 frontend/src/components/@common/ProfileImage/index.tsx create mode 100644 frontend/src/components/@common/ProfileImageList/ProfileImageList.stories.tsx create mode 100644 frontend/src/components/@common/ProfileImageList/ProfileImageList.tsx create mode 100644 frontend/src/components/@common/ProfileImageList/index.tsx create mode 100644 frontend/src/components/@common/Skeleton/Skeleton.stories.tsx create mode 100644 frontend/src/components/@common/Skeleton/Skeleton.tsx create mode 100644 frontend/src/components/@common/Skeleton/index.tsx create mode 100644 frontend/src/components/@common/WaterMarkImage/WaterMarkImage.stories.tsx create mode 100644 frontend/src/components/@common/WaterMarkImage/WaterMarkImage.tsx create mode 100644 frontend/src/components/@common/WaterMarkImage/index.tsx create mode 100644 frontend/src/components/CategoryNavbar/CategoryNavbar.stories.tsx create mode 100644 frontend/src/components/CategoryNavbar/CategoryNavbar.tsx create mode 100644 frontend/src/components/CategoryNavbar/index.tsx create mode 100644 frontend/src/components/CelebBanner/CelebBanner.stories.tsx create mode 100644 frontend/src/components/CelebBanner/CelebBanner.tsx create mode 100644 frontend/src/components/CelebBanner/index.tsx create mode 100644 frontend/src/components/CelebDropDown/CelebDropDown.stories.tsx create mode 100644 frontend/src/components/CelebDropDown/CelebDropDown.tsx create mode 100644 frontend/src/components/CelebDropDown/index.tsx create mode 100644 frontend/src/components/InfoDropDown/InfoDropDown.stories.tsx create mode 100644 frontend/src/components/InfoDropDown/InfoDropDown.tsx create mode 100644 frontend/src/components/InfoDropDown/index.tsx create mode 100644 frontend/src/components/LoginModalContent/LoginModalContent.stories.tsx create mode 100644 frontend/src/components/LoginModalContent/LoginModalContent.tsx create mode 100644 frontend/src/components/LoginModalContent/index.tsx create mode 100644 frontend/src/components/MapModal/MapModal.stories.tsx create mode 100644 frontend/src/components/MapModal/MapModal.tsx create mode 100644 frontend/src/components/MapModal/index.tsx create mode 100644 frontend/src/components/MapModalContent/MapModalContent.tsx create mode 100644 frontend/src/components/MapModalContent/index.tsx create mode 100644 frontend/src/components/RestaurantCard/RestaurantCard.stories.tsx create mode 100644 frontend/src/components/RestaurantCard/RestaurantCard.tsx create mode 100644 frontend/src/components/RestaurantCard/RestaurantCardSkeleton.tsx create mode 100644 frontend/src/components/RestaurantCard/index.tsx create mode 100644 frontend/src/components/RestaurantCardList/RestaurantCardList.tsx create mode 100644 frontend/src/components/RestaurantCardList/RestaurantCardListSkeleton.tsx create mode 100644 frontend/src/components/RestaurantCardList/index.tsx create mode 100644 frontend/src/components/VideoPreview/VideoPreview.stories.tsx create mode 100644 frontend/src/components/VideoPreview/VideoPreview.tsx create mode 100644 frontend/src/components/VideoPreview/index.tsx create mode 100644 frontend/src/constants/api.ts create mode 100644 frontend/src/constants/options.ts create mode 100644 frontend/src/constants/restaurantCategory.tsx create mode 100644 frontend/src/hooks/store/useBottomSheetStatus.ts create mode 100644 frontend/src/hooks/store/useTokenState.ts create mode 100644 frontend/src/hooks/useBooleanState.ts create mode 100644 frontend/src/hooks/useMapModal.ts create mode 100644 frontend/src/hooks/useMediaQuery.ts create mode 100644 frontend/src/hooks/useOnClickOutside.ts create mode 100644 frontend/src/hooks/useTouchMoveDirection.ts create mode 100644 frontend/src/index.tsx create mode 100644 frontend/src/mocks/browser.ts create mode 100644 frontend/src/mocks/handlers.ts create mode 100644 frontend/src/pages/MainPage.tsx create mode 100644 frontend/src/pages/OauthRedirectPage.tsx create mode 100644 frontend/src/styles/GlobalStyles.ts create mode 100644 frontend/src/styles/base.ts create mode 100644 frontend/src/styles/common.ts create mode 100644 frontend/src/styles/fonts.ts create mode 100644 frontend/src/styles/reset.ts create mode 100644 frontend/src/utils/compare.ts create mode 100644 frontend/src/utils/formatDateToKorean.ts create mode 100644 frontend/src/utils/getQuadrant.ts create mode 100644 frontend/src/utils/getQueryString.ts create mode 100644 frontend/tsconfig.json create mode 100644 frontend/yarn.lock diff --git a/.github/workflows/frontend-ci.yml b/.github/workflows/frontend-ci.yml new file mode 100644 index 000000000..01f013197 --- /dev/null +++ b/.github/workflows/frontend-ci.yml @@ -0,0 +1,35 @@ +name: 🍔 Celuveat Frontend CI 🍔 + +on: + push: + branches: + - develop-frontend + pull_request: + branches: + - develop-frontend + +jobs: + frontend-test: + runs-on: ubuntu-latest + env: + working-directory: ./frontend + + name: 🍔테스트 딱 대라 💢👊 + + steps: + - uses: actions/checkout@v3 + - uses: actions/setup-node@v3 + with: + node-version: '18.16.1' + + - name: 🍔 yarn install + run: yarn install + working-directory: ${{ env.working-directory }} + + - name: 🍔 eslint 테스트 + run: yarn lint + working-directory: ${{ env.working-directory }} + + - name: 🍔 React 프로젝트 빌드 + run: yarn build + working-directory: ${{ env.working-directory }} diff --git a/.github/workflows/frontend-dev-cd.yml b/.github/workflows/frontend-dev-cd.yml new file mode 100644 index 000000000..f40b08e1f --- /dev/null +++ b/.github/workflows/frontend-dev-cd.yml @@ -0,0 +1,23 @@ +name: 🍔 Celuveat frontend DEV CD 🍔 + +on: + push: + branches: + - develop-frontend + paths: + - 'frontend/**' + +jobs: + deploy-frontend: + runs-on: [self-hosted, dev] + + steps: + - name: 🍔 .env 파일 세팅 + run: | + touch ~/frontend-env/.env + echo GOOGLE_MAP_API_KEY=${{ secrets.GOOGLE_MAP_API_KEY }} > ~/frontend-env/.env + echo BASE_URL=${{ secrets.DEV_BASE_URL }} >> ~/frontend-env/.env + - name: 🍔 Run Frontend Deploy Script + run: | + cd ~ + sudo sh deploy-frontend.sh diff --git a/.github/workflows/frontend-prod-cd.yml b/.github/workflows/frontend-prod-cd.yml new file mode 100644 index 000000000..9d154bbdd --- /dev/null +++ b/.github/workflows/frontend-prod-cd.yml @@ -0,0 +1,24 @@ +name: 🍔 Celuveat frontend PROD CD 🍔 + +on: + push: + branches: + - main + paths: + - 'frontend/**' + +jobs: + deploy-frontend: + runs-on: [self-hosted, prod] + + steps: + - name: 🍔 .env 파일 세팅 + run: | + touch ~/frontend-env/.env + echo GOOGLE_MAP_API_KEY=${{ secrets.GOOGLE_MAP_API_KEY }} > ~/frontend-env/.env + echo BASE_URL=${{ secrets.PROD_BASE_URL }} >> ~/frontend-env/.env + + - name: 🍔 Run Frontend Deploy Script + run: | + cd ~ + sudo sh deploy-frontend.sh diff --git a/README.md b/README.md deleted file mode 100644 index 41a26b62a..000000000 --- a/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# Celuveat 소개 -셀럽 기반 맛집 탐색 서비스 - -
-
- -# 팀원 👨‍👨‍👧‍👧👩‍👦‍👦 -| Backend | Backend | Backend | Backend | Frontend | Frontend | Frontend | -| :--------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------: | :--------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------: | :------------------------------------------------------------------------------------: | -| 말랑 | 로이스 | 도기 | 오도 | 푸만능 | 제레미 | 도담 | -| [말랑](https://github.com/shin-mallang) | [로이스](https://github.com/taeyeonroyce) | [도기](https://github.com/kdkdhoho) | [오도](https://github.com/odo27) | [푸만능](https://github.com/turtle601) | [제레미](https://github.com/shackstack) | [도담](https://github.com/d0dam) | - - diff --git a/frontend/.babelrc b/frontend/.babelrc new file mode 100644 index 000000000..8f9ef2ccb --- /dev/null +++ b/frontend/.babelrc @@ -0,0 +1,35 @@ +{ + "presets": [ + [ + "@babel/preset-env", + { + "targets": { "browsers": ["last 2 versions", ">= 5% in KR"] }, + "useBuiltIns": "usage", // 폴리필 사용 방식 지정 + "corejs": { + "version": 3 // 폴리필 버전 지정 + } + } + ], + [ + "@babel/react", + { + "runtime": "automatic" + } + ], + "@babel/preset-typescript" + ], + "plugins": [ + [ + "babel-plugin-root-import", + { + "rootPathPrefix": "~", + "rootPathSuffix": "src" + } + ] + ], + "env": { + "development": { + "plugins": ["babel-plugin-styled-components"] + } + } +} diff --git a/frontend/.eslintrc b/frontend/.eslintrc new file mode 100644 index 000000000..8374c0efe --- /dev/null +++ b/frontend/.eslintrc @@ -0,0 +1,42 @@ +{ + "env": { + "browser": true, + "es2021": true, + "node": true, + "jest": true + }, + "extends": [ + "eslint:recommended", + "plugin:react/recommended", + "plugin:@typescript-eslint/recommended", + "airbnb", + "airbnb/hooks", + "airbnb-typescript", + "prettier" + ], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaFeatures": { + "jsx": true + }, + "ecmaVersion": "latest", + "sourceType": "module", + "project": "./tsconfig.json" + }, + "plugins": ["@typescript-eslint", "react"], + "settings": { + "react": { + "version": "detect" + } + }, + "ignorePatterns": ["build", "dist", "public", "webpack.**.js", "mocks", "fileTransformer.js"], + "rules": { + "no-console": "warn", + "react/react-in-jsx-scope": "off", + "@typescript-eslint/no-use-before-define": "off", + "react/require-default-props": "off", + "react/jsx-props-no-spreading": "off", + "import/extensions": "off", + "react-hooks/exhaustive-deps": "off" + } +} diff --git a/frontend/.gitignore b/frontend/.gitignore new file mode 100644 index 000000000..143a01960 --- /dev/null +++ b/frontend/.gitignore @@ -0,0 +1,3 @@ +/node_modules +/dist +/.env \ No newline at end of file diff --git a/frontend/.nvmrc b/frontend/.nvmrc new file mode 100644 index 000000000..8d2a45160 --- /dev/null +++ b/frontend/.nvmrc @@ -0,0 +1 @@ +18.16.1 \ No newline at end of file diff --git a/frontend/.prettierrc b/frontend/.prettierrc new file mode 100644 index 000000000..1d611d3b2 --- /dev/null +++ b/frontend/.prettierrc @@ -0,0 +1,11 @@ +{ + "printWidth": 120, + "tabWidth": 2, + "useTabs": false, + "semi": true, + "singleQuote": true, + "trailingComma": "all", + "arrowParens": "avoid", + "proseWrap": "never", + "endOfLine": "auto" +} diff --git a/frontend/.storybook/main.ts b/frontend/.storybook/main.ts new file mode 100644 index 000000000..58bd4fac3 --- /dev/null +++ b/frontend/.storybook/main.ts @@ -0,0 +1,31 @@ +import type { StorybookConfig } from '@storybook/react-webpack5'; +const config: StorybookConfig = { + stories: ['../src/**/*.mdx', '../src/**/*.stories.@(js|jsx|ts|tsx)'], + addons: ['@storybook/addon-links', '@storybook/addon-essentials', '@storybook/addon-interactions'], + framework: { + name: '@storybook/react-webpack5', + options: {}, + }, + docs: { + autodocs: 'tag', + }, + webpackFinal: async config => { + const imageRule = config.module?.rules?.find(rule => { + const test = (rule as { test: RegExp }).test; + + if (!test) return false; + + return test.test('.svg'); + }) as { [key: string]: any }; + + imageRule.exclude = /\.svg$/; + + config.module?.rules?.push({ + test: /\.svg$/, + use: ['@svgr/webpack'], + }); + + return config; + }, +}; +export default config; diff --git a/frontend/.storybook/preview.ts b/frontend/.storybook/preview.ts new file mode 100644 index 000000000..6555dd400 --- /dev/null +++ b/frontend/.storybook/preview.ts @@ -0,0 +1,19 @@ +import type { Preview } from '@storybook/react'; +import { withThemeFromJSXProvider } from '@storybook/addon-styling'; +import GlobalStyles from '../src/styles/GlobalStyles'; + +const preview: Preview = { + parameters: { + actions: { argTypesRegex: '^on[A-Z].*' }, + controls: { + matchers: { + color: /(background|color)$/i, + date: /Date$/, + }, + }, + }, +}; + +export const decorators = [withThemeFromJSXProvider({ GlobalStyles })]; + +export default preview; diff --git a/frontend/.stylelintrc b/frontend/.stylelintrc new file mode 100644 index 000000000..68a06c7a9 --- /dev/null +++ b/frontend/.stylelintrc @@ -0,0 +1,101 @@ +{ + "extends": ["stylelint-config-standard"], + "plugins": ["stylelint-order"], + "customSyntax": "postcss-styled-syntax", + "rules": { + "declaration-empty-line-before": [ + "always", + { + "ignore": ["first-nested", "after-comment", "after-declaration", "inside-single-line-block"] + } + ], + "order/order": ["custom-properties", "declarations"], + "declaration-property-unit-allowed-list": { + "/^border/": ["px", "%"], + "/^width|^height/": ["px", "%", "vh", "vw"], + "/^margin|^padding|^gap/": ["rem"] + }, + "order/properties-order": [ + { + "groupName": "display", + "emptyLineBefore": "always", + "noEmptyLineBetween": true, + "properties": [ + "display", + "flex", + "flex-direction", + "flex-grow", + "flex-shrink", + "flex-basis", + "flex-flow", + "justify-content", + "align-items", + "align-content", + "gap" + ] + }, + + { + "groupName": "positioning", + "emptyLineBefore": "always", + "noEmptyLineBetween": true, + "properties": ["position", "top", "right", "bottom", "left", "z-index"] + }, + { + "groupName": "float", + "emptyLineBefore": "always", + "noEmptyLineBetween": true, + "properties": ["float"] + }, + { + "groupName": "width / height", + "emptyLineBefore": "always", + "noEmptyLineBetween": true, + "properties": ["width", "min-width", "max-width", "height", "min-height", "max-height"] + }, + { + "groupName": "padding / margin", + "emptyLineBefore": "always", + "noEmptyLineBetween": true, + "properties": ["padding", "margin"] + }, + { + "groupName": "border / background", + "emptyLineBefore": "always", + "noEmptyLineBetween": true, + "properties": [ + "border", + "border-radius", + "background", + "background-color", + "background-image", + "background-repeat", + "background-position", + "background-size" + ] + }, + { + "groupName": "colors and typography", + "emptyLineBefore": "always", + "noEmptyLineBetween": true, + "properties": [ + "color", + "font", + "font-family", + "font-size", + "font-weight", + "line-height", + "text-align", + "text-transform", + "text-decoration" + ] + }, + { + "groupName": "other", + "emptyLineBefore": "always", + "noEmptyLineBetween": true, + "properties": ["cursor", "opacity", "transition", "transform"] + } + ] + } +} diff --git a/frontend/.vscode/settings.json b/frontend/.vscode/settings.json new file mode 100644 index 000000000..0f385ba75 --- /dev/null +++ b/frontend/.vscode/settings.json @@ -0,0 +1,15 @@ +{ + "editor.formatOnSave": true, + "editor.codeActionsOnSave": { + "source.fixAll.eslint": true, + "source.fixAll.stylelint": true + }, + "typescript.validate.enable": true, + + "editor.defaultFormatter": "esbenp.prettier-vscode", + + "stylelint.enable": true, + + "stylelint.config": null, + "stylelint.validate": ["css", "scss", "typescript", "typescriptreact"] +} diff --git a/frontend/.webpack/webpack.common.js b/frontend/.webpack/webpack.common.js new file mode 100644 index 000000000..6c55af818 --- /dev/null +++ b/frontend/.webpack/webpack.common.js @@ -0,0 +1,79 @@ +const path = require('path'); + +const HtmlWebpackPlugin = require('html-webpack-plugin'); +const ForkTsCheckerWebpackPlugin = require('fork-ts-checker-webpack-plugin'); + +const webpack = require('webpack'); +const dotenv = require('dotenv'); +dotenv.config(); + +const InterpolateHtmlPlugin = require('interpolate-html-plugin'); + +module.exports = { + entry: ['./src/index.tsx'], + output: { + path: path.resolve(__dirname, '../dist/'), + publicPath: '/', + clean: true, + }, + resolve: { + extensions: ['.tsx', '.ts', '.jsx', '.js', '.json'], + }, + module: { + rules: [ + { + test: /\.(ts|tsx)$/, + use: [ + 'babel-loader', + { + loader: 'ts-loader', + options: { + transpileOnly: true, + }, + }, + ], + exclude: /node_modules/, + }, + { + test: /\.(jpg|jpeg|gif|png|ico)?$/, + type: 'asset', + generator: { + filename: 'images/[name].[ext]', + }, + }, + { + test: /\.(woff|woff2|eot|ttf|otf)?$/, + type: 'asset', + generator: { + filename: 'fonts/[name].[ext]', + }, + }, + { + test: /\.svg$/, + use: ['@svgr/webpack'], + }, + ], + }, + + devServer: { + static: { + directory: path.resolve(__dirname, '../public'), + }, + hot: true, + open: true, + historyApiFallback: true, + allowedHosts: 'all', + }, + + plugins: [ + new HtmlWebpackPlugin({ + template: './public/index.html', + filename: 'index.html', + }), + new ForkTsCheckerWebpackPlugin(), + new webpack.DefinePlugin({ + 'process.env': JSON.stringify(process.env), + }), + new InterpolateHtmlPlugin({ KAKAO_MAP_API_KEY: process.env.KAKAO_MAP_API_KEY }), + ], +}; diff --git a/frontend/.webpack/webpack.config.js b/frontend/.webpack/webpack.config.js new file mode 100644 index 000000000..100fd5b4b --- /dev/null +++ b/frontend/.webpack/webpack.config.js @@ -0,0 +1,16 @@ +const { merge } = require('webpack-merge'); + +const commonConfig = require('./webpack.common.js'); +const productionConfig = require('./webpack.prod.js'); +const developmentConfig = require('./webpack.dev.js'); + +module.exports = (env, args) => { + switch (args.mode) { + case 'development': + return merge(commonConfig, developmentConfig); + case 'production': + return merge(commonConfig, productionConfig); + default: + throw new Error('No matching configuration was found!'); + } +}; diff --git a/frontend/.webpack/webpack.dev.js b/frontend/.webpack/webpack.dev.js new file mode 100644 index 000000000..9420d660b --- /dev/null +++ b/frontend/.webpack/webpack.dev.js @@ -0,0 +1,18 @@ +const path = require('path'); + +const CopyWebpackPlugin = require('copy-webpack-plugin'); + +module.exports = { + mode: 'development', + devtool: 'inline-source-map', + plugins: [ + new CopyWebpackPlugin({ + patterns: [ + { + from: 'public/mockServiceWorker.js', + to: 'mockServiceWorker.js', + }, + ], + }), + ], +}; diff --git a/frontend/.webpack/webpack.prod.js b/frontend/.webpack/webpack.prod.js new file mode 100644 index 000000000..88199ffa6 --- /dev/null +++ b/frontend/.webpack/webpack.prod.js @@ -0,0 +1,13 @@ +const TerserPlugin = require('terser-webpack-plugin'); + +module.exports = { + mode: 'production', + devtool: 'source-map', + optimization: { + minimize: true, + minimizer: [new TerserPlugin()], + }, + performance: { + hints: false, + }, +}; diff --git a/frontend/fileTransformer.js b/frontend/fileTransformer.js new file mode 100644 index 000000000..6ac5c63ea --- /dev/null +++ b/frontend/fileTransformer.js @@ -0,0 +1,10 @@ +// fileTransformer.js +const path = require('path'); + +module.exports = { + process(sourceText, sourcePath, options) { + return { + code: `module.exports = ${JSON.stringify(path.basename(sourcePath))};`, + }; + }, +}; diff --git a/frontend/jest.config.js b/frontend/jest.config.js new file mode 100644 index 000000000..c9f02b6e3 --- /dev/null +++ b/frontend/jest.config.js @@ -0,0 +1,14 @@ +module.exports = { + preset: 'ts-jest', + testEnvironment: 'jsdom', + moduleFileExtensions: ['ts', 'tsx', 'js', 'jsx'], + setupFilesAfterEnv: ['@testing-library/jest-dom/extend-expect'], + transform: { + '^.+\\.[tj]sx?$': 'babel-jest', + '\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|woff2|mp4|webm|wav|mp3|m4a|aac|oga)$': + '/fileTransformer.js', + }, + moduleNameMapper: { + '^\\~/(.*)$': '/src/$1', + }, +}; diff --git a/frontend/package.json b/frontend/package.json new file mode 100644 index 000000000..6584e885d --- /dev/null +++ b/frontend/package.json @@ -0,0 +1,101 @@ +{ + "name": "frontend", + "version": "1.0.0", + "main": "index.tsx", + "license": "MIT", + "scripts": { + "start": "webpack serve --open --mode development --port 3000", + "start:prod": "webpack serve --open --mode production --port 3000", + "build": "webpack --mode production", + "lint": "eslint \"src/**/*.{js,jsx,ts,tsx}\"", + "lint:css": "stylelint './src/**/*.{tsx,ts,jsx,js}'", + "lint:css:fix": "stylelint './src/**/*.{tsx,ts,jsx,js}' --fix", + "prettier": "prettier --write \"src/**/*.{js,jsx,ts,tsx}\"", + "storybook": "storybook dev -p 6006", + "build-storybook": "storybook build", + "test": "jest" + }, + "dependencies": { + "@googlemaps/react-wrapper": "^1.1.35", + "@storybook/react": "^7.0.25", + "@storybook/react-webpack5": "^7.0.25", + "@tanstack/react-query": "^4.32.0", + "@tanstack/react-query-devtools": "^4.32.0", + "@testing-library/jest-dom": "^5.16.5", + "@types/react": "^18.2.14", + "@types/react-dom": "^18.2.6", + "@types/styled-components": "^5.1.26", + "axios": "^1.4.0", + "babel-plugin-root-import": "^6.6.0", + "copy-webpack-plugin": "^11.0.0", + "dotenv": "^16.3.1", + "fork-ts-checker-webpack-plugin": "^8.0.0", + "html-webpack-plugin": "^5.5.3", + "interpolate-html-plugin": "^4.0.0", + "msw": "^1.2.2", + "react": "^18.2.0", + "react-dom": "^18.2.0", + "react-router-dom": "^6.14.2", + "storybook": "^7.0.25", + "styled-components": "^6.0.2", + "ts-loader": "^9.4.4", + "typescript": "^5.1.6", + "webpack": "^5.88.1", + "webpack-cli": "^5.1.4", + "webpack-dev-server": "^4.15.1", + "webpack-merge": "^5.9.0", + "zustand": "^4.3.9" + }, + "devDependencies": { + "@babel/core": "^7.22.5", + "@babel/preset-env": "^7.22.5", + "@babel/preset-react": "^7.22.5", + "@babel/preset-typescript": "^7.22.5", + "@storybook/addon-essentials": "^7.0.25", + "@storybook/addon-interactions": "^7.0.25", + "@storybook/addon-links": "^7.0.25", + "@storybook/addon-styling": "^1.3.2", + "@storybook/blocks": "^7.0.25", + "@storybook/testing-library": "^0.0.14-next.2", + "@stylelint/postcss-css-in-js": "^0.38.0", + "@svgr/webpack": "^8.0.1", + "@tanstack/eslint-plugin-query": "^4.29.25", + "@testing-library/react": "^14.0.0", + "@types/google.maps": "^3.53.5", + "@types/jest": "^29.5.3", + "@typescript-eslint/eslint-plugin": "^5.61.0", + "@typescript-eslint/parser": "^5.61.0", + "babel-jest": "^29.6.1", + "babel-loader": "^9.1.2", + "babel-plugin-styled-components": "^2.1.4", + "clean-webpack-plugin": "^4.0.0", + "core-js": "3", + "eslint": "^8.44.0", + "eslint-config-airbnb": "^19.0.4", + "eslint-config-airbnb-typescript": "^17.0.0", + "eslint-config-prettier": "^8.8.0", + "eslint-plugin-import": "^2.27.5", + "eslint-plugin-jsx-a11y": "^6.7.1", + "eslint-plugin-react": "^7.32.2", + "eslint-plugin-react-hooks": "^4.6.0", + "eslint-plugin-storybook": "^0.6.12", + "jest": "^29.6.1", + "jest-environment-jsdom": "^29.6.1", + "postcss-styled-syntax": "^0.4.0", + "prettier": "^2.8.8", + "stylelint": "^15.10.1", + "stylelint-config-prettier": "^9.0.5", + "stylelint-config-standard": "^34.0.0", + "stylelint-order": "^6.0.3", + "terser-webpack-plugin": "^5.3.9", + "ts-jest": "^29.1.1" + }, + "eslintConfig": { + "extends": [ + "plugin:storybook/recommended" + ] + }, + "msw": { + "workerDirectory": "public" + } +} diff --git a/frontend/public/index.html b/frontend/public/index.html new file mode 100644 index 000000000..615b5e221 --- /dev/null +++ b/frontend/public/index.html @@ -0,0 +1,16 @@ + + + + + + celuveat + + + +
+ + + diff --git a/frontend/public/mockServiceWorker.js b/frontend/public/mockServiceWorker.js new file mode 100644 index 000000000..8ee70b3e4 --- /dev/null +++ b/frontend/public/mockServiceWorker.js @@ -0,0 +1,303 @@ +/* eslint-disable */ +/* tslint:disable */ + +/** + * Mock Service Worker (1.2.2). + * @see https://github.com/mswjs/msw + * - Please do NOT modify this file. + * - Please do NOT serve this file on production. + */ + +const INTEGRITY_CHECKSUM = '3d6b9f06410d179a7f7404d4bf4c3c70' +const activeClientIds = new Set() + +self.addEventListener('install', function () { + self.skipWaiting() +}) + +self.addEventListener('activate', function (event) { + event.waitUntil(self.clients.claim()) +}) + +self.addEventListener('message', async function (event) { + const clientId = event.source.id + + if (!clientId || !self.clients) { + return + } + + const client = await self.clients.get(clientId) + + if (!client) { + return + } + + const allClients = await self.clients.matchAll({ + type: 'window', + }) + + switch (event.data) { + case 'KEEPALIVE_REQUEST': { + sendToClient(client, { + type: 'KEEPALIVE_RESPONSE', + }) + break + } + + case 'INTEGRITY_CHECK_REQUEST': { + sendToClient(client, { + type: 'INTEGRITY_CHECK_RESPONSE', + payload: INTEGRITY_CHECKSUM, + }) + break + } + + case 'MOCK_ACTIVATE': { + activeClientIds.add(clientId) + + sendToClient(client, { + type: 'MOCKING_ENABLED', + payload: true, + }) + break + } + + case 'MOCK_DEACTIVATE': { + activeClientIds.delete(clientId) + break + } + + case 'CLIENT_CLOSED': { + activeClientIds.delete(clientId) + + const remainingClients = allClients.filter((client) => { + return client.id !== clientId + }) + + // Unregister itself when there are no more clients + if (remainingClients.length === 0) { + self.registration.unregister() + } + + break + } + } +}) + +self.addEventListener('fetch', function (event) { + const { request } = event + const accept = request.headers.get('accept') || '' + + // Bypass server-sent events. + if (accept.includes('text/event-stream')) { + return + } + + // Bypass navigation requests. + if (request.mode === 'navigate') { + return + } + + // Opening the DevTools triggers the "only-if-cached" request + // that cannot be handled by the worker. Bypass such requests. + if (request.cache === 'only-if-cached' && request.mode !== 'same-origin') { + return + } + + // Bypass all requests when there are no active clients. + // Prevents the self-unregistered worked from handling requests + // after it's been deleted (still remains active until the next reload). + if (activeClientIds.size === 0) { + return + } + + // Generate unique request ID. + const requestId = Math.random().toString(16).slice(2) + + event.respondWith( + handleRequest(event, requestId).catch((error) => { + if (error.name === 'NetworkError') { + console.warn( + '[MSW] Successfully emulated a network error for the "%s %s" request.', + request.method, + request.url, + ) + return + } + + // At this point, any exception indicates an issue with the original request/response. + console.error( + `\ +[MSW] Caught an exception from the "%s %s" request (%s). This is probably not a problem with Mock Service Worker. There is likely an additional logging output above.`, + request.method, + request.url, + `${error.name}: ${error.message}`, + ) + }), + ) +}) + +async function handleRequest(event, requestId) { + const client = await resolveMainClient(event) + const response = await getResponse(event, client, requestId) + + // Send back the response clone for the "response:*" life-cycle events. + // Ensure MSW is active and ready to handle the message, otherwise + // this message will pend indefinitely. + if (client && activeClientIds.has(client.id)) { + ;(async function () { + const clonedResponse = response.clone() + sendToClient(client, { + type: 'RESPONSE', + payload: { + requestId, + type: clonedResponse.type, + ok: clonedResponse.ok, + status: clonedResponse.status, + statusText: clonedResponse.statusText, + body: + clonedResponse.body === null ? null : await clonedResponse.text(), + headers: Object.fromEntries(clonedResponse.headers.entries()), + redirected: clonedResponse.redirected, + }, + }) + })() + } + + return response +} + +// Resolve the main client for the given event. +// Client that issues a request doesn't necessarily equal the client +// that registered the worker. It's with the latter the worker should +// communicate with during the response resolving phase. +async function resolveMainClient(event) { + const client = await self.clients.get(event.clientId) + + if (client?.frameType === 'top-level') { + return client + } + + const allClients = await self.clients.matchAll({ + type: 'window', + }) + + return allClients + .filter((client) => { + // Get only those clients that are currently visible. + return client.visibilityState === 'visible' + }) + .find((client) => { + // Find the client ID that's recorded in the + // set of clients that have registered the worker. + return activeClientIds.has(client.id) + }) +} + +async function getResponse(event, client, requestId) { + const { request } = event + const clonedRequest = request.clone() + + function passthrough() { + // Clone the request because it might've been already used + // (i.e. its body has been read and sent to the client). + const headers = Object.fromEntries(clonedRequest.headers.entries()) + + // Remove MSW-specific request headers so the bypassed requests + // comply with the server's CORS preflight check. + // Operate with the headers as an object because request "Headers" + // are immutable. + delete headers['x-msw-bypass'] + + return fetch(clonedRequest, { headers }) + } + + // Bypass mocking when the client is not active. + if (!client) { + return passthrough() + } + + // Bypass initial page load requests (i.e. static assets). + // The absence of the immediate/parent client in the map of the active clients + // means that MSW hasn't dispatched the "MOCK_ACTIVATE" event yet + // and is not ready to handle requests. + if (!activeClientIds.has(client.id)) { + return passthrough() + } + + // Bypass requests with the explicit bypass header. + // Such requests can be issued by "ctx.fetch()". + if (request.headers.get('x-msw-bypass') === 'true') { + return passthrough() + } + + // Notify the client that a request has been intercepted. + const clientMessage = await sendToClient(client, { + type: 'REQUEST', + payload: { + id: requestId, + url: request.url, + method: request.method, + headers: Object.fromEntries(request.headers.entries()), + cache: request.cache, + mode: request.mode, + credentials: request.credentials, + destination: request.destination, + integrity: request.integrity, + redirect: request.redirect, + referrer: request.referrer, + referrerPolicy: request.referrerPolicy, + body: await request.text(), + bodyUsed: request.bodyUsed, + keepalive: request.keepalive, + }, + }) + + switch (clientMessage.type) { + case 'MOCK_RESPONSE': { + return respondWithMock(clientMessage.data) + } + + case 'MOCK_NOT_FOUND': { + return passthrough() + } + + case 'NETWORK_ERROR': { + const { name, message } = clientMessage.data + const networkError = new Error(message) + networkError.name = name + + // Rejecting a "respondWith" promise emulates a network error. + throw networkError + } + } + + return passthrough() +} + +function sendToClient(client, message) { + return new Promise((resolve, reject) => { + const channel = new MessageChannel() + + channel.port1.onmessage = (event) => { + if (event.data && event.data.error) { + return reject(event.data.error) + } + + resolve(event.data) + } + + client.postMessage(message, [channel.port2]) + }) +} + +function sleep(timeMs) { + return new Promise((resolve) => { + setTimeout(resolve, timeMs) + }) +} + +async function respondWithMock(response) { + await sleep(response.delay) + return new Response(response.body, response) +} diff --git a/frontend/src/@types/api.types.ts b/frontend/src/@types/api.types.ts new file mode 100644 index 000000000..e773b993a --- /dev/null +++ b/frontend/src/@types/api.types.ts @@ -0,0 +1,21 @@ +export interface RestaurantListData { + content: RestaurantData[]; + currentElementsCount: number; + currentPage: number; + pageSize: number; + totalElementsCount: number; + totalPage: number; +} + +export interface RestaurantData { + id: number; + name: string; + category: string; + roadAddress: string; + lat: number; + lng: number; + phoneNumber: string; + naverMapUrl: string; + celebs: { id: number; name: string; youtubeChannelName: string; profileImageUrl: string }[]; + images: { id: number; name: string; author: string; sns: string }[]; +} diff --git a/frontend/src/@types/celeb.types.ts b/frontend/src/@types/celeb.types.ts new file mode 100644 index 000000000..49fe204e8 --- /dev/null +++ b/frontend/src/@types/celeb.types.ts @@ -0,0 +1,7 @@ +import type { RestaurantData } from './api.types'; + +type Celebs = RestaurantData['celebs']; + +export type Celeb = Celebs[number]; + +export type CelebsSearchBarOptionType = Omit; diff --git a/frontend/src/@types/global.d.ts b/frontend/src/@types/global.d.ts new file mode 100644 index 000000000..e5edb4a74 --- /dev/null +++ b/frontend/src/@types/global.d.ts @@ -0,0 +1,15 @@ +/* eslint-disable @typescript-eslint/no-explicit-any */ + +declare module '*.png'; +declare module '*.woff2'; +declare module '*.svg' { + import * as React from 'react'; + + const ReactComponent: React.FunctionComponent>; + + export default ReactComponent; +} + +interface Window { + kakao: any; +} diff --git a/frontend/src/@types/image.type.ts b/frontend/src/@types/image.type.ts new file mode 100644 index 000000000..aadbc4cb2 --- /dev/null +++ b/frontend/src/@types/image.type.ts @@ -0,0 +1,5 @@ +import type { RestaurantData } from './api.types'; + +type RestaurantImages = RestaurantData['images']; + +export type RestaurantImage = RestaurantImages[number]; diff --git a/frontend/src/@types/map.types.ts b/frontend/src/@types/map.types.ts new file mode 100644 index 000000000..43654e612 --- /dev/null +++ b/frontend/src/@types/map.types.ts @@ -0,0 +1,11 @@ +export interface Coordinate { + lng: number; + lat: number; +} + +export interface CoordinateBoundary { + lowLatitude: string; + highLatitude: string; + lowLongitude: string; + highLongitude: string; +} diff --git a/frontend/src/@types/oauth.types.ts b/frontend/src/@types/oauth.types.ts new file mode 100644 index 000000000..3dbe5eb87 --- /dev/null +++ b/frontend/src/@types/oauth.types.ts @@ -0,0 +1 @@ +export type Oauth = 'google' | 'kakao' | 'naver'; diff --git a/frontend/src/@types/restaurant.types.ts b/frontend/src/@types/restaurant.types.ts new file mode 100644 index 000000000..0e88480db --- /dev/null +++ b/frontend/src/@types/restaurant.types.ts @@ -0,0 +1,18 @@ +import type { RestaurantData } from './api.types'; + +export type Restaurant = Omit; +export type RestaurantModalInfo = Omit; + +export type RestaurantCategory = + | '전체' + | '일식당' + | '한식' + | '초밥,롤' + | '생선회' + | '양식' + | '육류,고기요리' + | '이자카야' + | '돼지고기구이' + | '요리주점' + | '와인' + | '기타'; diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx new file mode 100644 index 000000000..f5eb41aa3 --- /dev/null +++ b/frontend/src/App.tsx @@ -0,0 +1,20 @@ +import { BrowserRouter, Routes, Route } from 'react-router-dom'; +import OauthRedirectPage from '~/pages/OauthRedirectPage'; +import MainPage from '~/pages/MainPage'; + +export const { BASE_URL } = process.env; + +function App() { + return ( + + + } /> + } /> + } /> + } /> + + + ); +} + +export default App; diff --git a/frontend/src/api/index.ts b/frontend/src/api/index.ts new file mode 100644 index 000000000..c51d4e5a3 --- /dev/null +++ b/frontend/src/api/index.ts @@ -0,0 +1,32 @@ +import axios from 'axios'; +import { Celeb } from '../@types/celeb.types'; + +import type { RestaurantListData } from '~/@types/api.types'; +import { CoordinateBoundary } from '~/@types/map.types'; +import { RestaurantCategory } from '~/@types/restaurant.types'; +import getQueryString from '~/utils/getQueryString'; + +export interface GetRestaurantsQueryParams { + boundary: CoordinateBoundary; + celebId: number; + category: RestaurantCategory; + page: number; +} + +export const apiClient = axios.create({ + baseURL: `${process.env.BASE_URL}/api`, + headers: { + 'Content-type': 'application/json', + }, +}); + +export const getRestaurants = async (queryParams: GetRestaurantsQueryParams) => { + const queryString = getQueryString(queryParams); + const response = await apiClient.get(`/restaurants?${queryString}`); + return response.data; +}; + +export const getCelebs = async () => { + const response = await apiClient.get('/celebs'); + return response.data; +}; diff --git a/frontend/src/api/oauth.ts b/frontend/src/api/oauth.ts new file mode 100644 index 000000000..7184580fd --- /dev/null +++ b/frontend/src/api/oauth.ts @@ -0,0 +1,12 @@ +import { BASE_URL } from '../constants/api'; + +import type { Oauth } from '~/@types/oauth.types'; +import { apiClient } from '~/api'; + +const getAccessToken = async (type: Oauth, code: string) => { + const response = await apiClient.get(`${BASE_URL}/api/oauth/login/${type}?code=${code}`); + // 통신 에러 되었을 때 로직 추가 + return response.data; +}; + +export default getAccessToken; diff --git a/frontend/src/assets/all.png b/frontend/src/assets/all.png new file mode 100644 index 0000000000000000000000000000000000000000..b608aef60b48c1ef6923976544f05de02306b328 GIT binary patch literal 14819 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 B`WgTL literal 0 HcmV?d00001 diff --git a/frontend/src/assets/fonts/SUIT-Bold.woff2 b/frontend/src/assets/fonts/SUIT-Bold.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..5bf0106e951ccc8278c77b6cb4969b3d9d685d09 GIT binary patch literal 177832 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

`ZR%(4!>ZZQ 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%0DN_T<`L0OA47Ubsc^D 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 z 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 z�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 Q*h5ZgYx=1sf*cC!KZ5!DH2?qr literal 0 HcmV?d00001 diff --git a/frontend/src/assets/fonts/SUIT-Medium.woff2 b/frontend/src/assets/fonts/SUIT-Medium.woff2 new file mode 100644 index 0000000000000000000000000000000000000000..35e8bee6b12c78c473d1b4b2317479415f90917e GIT binary patch literal 177208 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%0D-{b9WJIZ(oG2n> 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 literal 0 HcmV?d00001 diff --git a/frontend/src/assets/icons/celeb.svg b/frontend/src/assets/icons/celeb.svg new file mode 100644 index 000000000..1e6f7bedb --- /dev/null +++ b/frontend/src/assets/icons/celeb.svg @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/src/assets/icons/celuveat_cel.svg b/frontend/src/assets/icons/celuveat_cel.svg new file mode 100644 index 000000000..aac79088c --- /dev/null +++ b/frontend/src/assets/icons/celuveat_cel.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/assets/icons/celuveat_eat.svg b/frontend/src/assets/icons/celuveat_eat.svg new file mode 100644 index 000000000..ee2807b64 --- /dev/null +++ b/frontend/src/assets/icons/celuveat_eat.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/assets/icons/celuveat_luv.svg b/frontend/src/assets/icons/celuveat_luv.svg new file mode 100644 index 000000000..2a5823727 --- /dev/null +++ b/frontend/src/assets/icons/celuveat_luv.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/assets/icons/dot.svg b/frontend/src/assets/icons/dot.svg new file mode 100644 index 000000000..6aecd1bdc --- /dev/null +++ b/frontend/src/assets/icons/dot.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/assets/icons/etc/menu.svg b/frontend/src/assets/icons/etc/menu.svg new file mode 100644 index 000000000..f2063d991 --- /dev/null +++ b/frontend/src/assets/icons/etc/menu.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/assets/icons/etc/user.svg b/frontend/src/assets/icons/etc/user.svg new file mode 100644 index 000000000..23456087a --- /dev/null +++ b/frontend/src/assets/icons/etc/user.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/exit.svg b/frontend/src/assets/icons/exit.svg new file mode 100644 index 000000000..9adf7143c --- /dev/null +++ b/frontend/src/assets/icons/exit.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/assets/icons/fastFood.svg b/frontend/src/assets/icons/fastFood.svg new file mode 100644 index 000000000..690ddf707 --- /dev/null +++ b/frontend/src/assets/icons/fastFood.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/github.svg b/frontend/src/assets/icons/github.svg new file mode 100644 index 000000000..c13ec2cae --- /dev/null +++ b/frontend/src/assets/icons/github.svg @@ -0,0 +1,20 @@ + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/icons/instagram.svg b/frontend/src/assets/icons/instagram.svg new file mode 100644 index 000000000..4513c0c49 --- /dev/null +++ b/frontend/src/assets/icons/instagram.svg @@ -0,0 +1,41 @@ + + + + + \ No newline at end of file diff --git a/frontend/src/assets/icons/left-bracket.svg b/frontend/src/assets/icons/left-bracket.svg new file mode 100644 index 000000000..a408c1827 --- /dev/null +++ b/frontend/src/assets/icons/left-bracket.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/assets/icons/love.svg b/frontend/src/assets/icons/love.svg new file mode 100644 index 000000000..75a0db3be --- /dev/null +++ b/frontend/src/assets/icons/love.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/assets/icons/minus.svg b/frontend/src/assets/icons/minus.svg new file mode 100644 index 000000000..1cea0df66 --- /dev/null +++ b/frontend/src/assets/icons/minus.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/assets/icons/my-location.svg b/frontend/src/assets/icons/my-location.svg new file mode 100644 index 000000000..4b2109903 --- /dev/null +++ b/frontend/src/assets/icons/my-location.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/icons/oauth/google.svg b/frontend/src/assets/icons/oauth/google.svg new file mode 100644 index 000000000..138004410 --- /dev/null +++ b/frontend/src/assets/icons/oauth/google.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/frontend/src/assets/icons/oauth/kakao.svg b/frontend/src/assets/icons/oauth/kakao.svg new file mode 100644 index 000000000..1915a9b39 --- /dev/null +++ b/frontend/src/assets/icons/oauth/kakao.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/frontend/src/assets/icons/oauth/naver.svg b/frontend/src/assets/icons/oauth/naver.svg new file mode 100644 index 000000000..a9c147926 --- /dev/null +++ b/frontend/src/assets/icons/oauth/naver.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/frontend/src/assets/icons/plus.svg b/frontend/src/assets/icons/plus.svg new file mode 100644 index 000000000..d7331a426 --- /dev/null +++ b/frontend/src/assets/icons/plus.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/assets/icons/restaurantCategory/all.svg b/frontend/src/assets/icons/restaurantCategory/all.svg new file mode 100644 index 000000000..f066ec43f --- /dev/null +++ b/frontend/src/assets/icons/restaurantCategory/all.svg @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/icons/restaurantCategory/ijakaya.svg b/frontend/src/assets/icons/restaurantCategory/ijakaya.svg new file mode 100644 index 000000000..6ee54a623 --- /dev/null +++ b/frontend/src/assets/icons/restaurantCategory/ijakaya.svg @@ -0,0 +1,36 @@ + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/icons/restaurantCategory/japanese.svg b/frontend/src/assets/icons/restaurantCategory/japanese.svg new file mode 100644 index 000000000..d7663a0d2 --- /dev/null +++ b/frontend/src/assets/icons/restaurantCategory/japanese.svg @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/icons/restaurantCategory/korean.svg b/frontend/src/assets/icons/restaurantCategory/korean.svg new file mode 100644 index 000000000..a82872bb6 --- /dev/null +++ b/frontend/src/assets/icons/restaurantCategory/korean.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/icons/restaurantCategory/meat.svg b/frontend/src/assets/icons/restaurantCategory/meat.svg new file mode 100644 index 000000000..01a95aaf5 --- /dev/null +++ b/frontend/src/assets/icons/restaurantCategory/meat.svg @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/icons/restaurantCategory/pasta.svg b/frontend/src/assets/icons/restaurantCategory/pasta.svg new file mode 100644 index 000000000..3ef154cc5 --- /dev/null +++ b/frontend/src/assets/icons/restaurantCategory/pasta.svg @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/icons/restaurantCategory/pig.svg b/frontend/src/assets/icons/restaurantCategory/pig.svg new file mode 100644 index 000000000..a519c9a42 --- /dev/null +++ b/frontend/src/assets/icons/restaurantCategory/pig.svg @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/icons/restaurantCategory/pub.svg b/frontend/src/assets/icons/restaurantCategory/pub.svg new file mode 100644 index 000000000..65fcacba6 --- /dev/null +++ b/frontend/src/assets/icons/restaurantCategory/pub.svg @@ -0,0 +1,25 @@ + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/icons/restaurantCategory/sashimi.svg b/frontend/src/assets/icons/restaurantCategory/sashimi.svg new file mode 100644 index 000000000..0ab6f457a --- /dev/null +++ b/frontend/src/assets/icons/restaurantCategory/sashimi.svg @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/frontend/src/assets/icons/restaurantCategory/sushi.svg b/frontend/src/assets/icons/restaurantCategory/sushi.svg new file mode 100644 index 000000000..d87eaa6fd --- /dev/null +++ b/frontend/src/assets/icons/restaurantCategory/sushi.svg @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/icons/restaurantCategory/wine.svg b/frontend/src/assets/icons/restaurantCategory/wine.svg new file mode 100644 index 000000000..661adca9e --- /dev/null +++ b/frontend/src/assets/icons/restaurantCategory/wine.svg @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/frontend/src/assets/icons/right-bracket.svg b/frontend/src/assets/icons/right-bracket.svg new file mode 100644 index 000000000..bfe2f257b --- /dev/null +++ b/frontend/src/assets/icons/right-bracket.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/assets/icons/search.svg b/frontend/src/assets/icons/search.svg new file mode 100644 index 000000000..9c20b22c6 --- /dev/null +++ b/frontend/src/assets/icons/search.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/assets/icons/star.svg b/frontend/src/assets/icons/star.svg new file mode 100644 index 000000000..3f6adc318 --- /dev/null +++ b/frontend/src/assets/icons/star.svg @@ -0,0 +1,3 @@ + + + diff --git a/frontend/src/assets/logo.png b/frontend/src/assets/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..a13cf2584a6209d59c2c6b1241b588e72e84769c GIT binary patch literal 2773 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 ({ isOpen: state.isOpen, close: state.close }), shallow); + const ref = useRef(); + + useOnClickOutside(ref, close); + + return ( + + {title} + {children} + + ); +} + +export default BottomSheet; + +const Wrapper = styled.div<{ isOpen: boolean }>` + display: flex; + flex-direction: column; + align-items: center; + + position: fixed; + bottom: 0; + z-index: 10; + + width: 100%; + height: 74px; + + background-color: var(--white); + + border-top-left-radius: ${BORDER_RADIUS.lg}; + border-top-right-radius: ${BORDER_RADIUS.lg}; + + transition: height 0.8s ease-in-out; + + ${({ isOpen }) => + isOpen && + css` + position: absolute; + + height: calc(36vh + 74px); + `} + + &::before { + display: block; + + position: absolute; + top: 8px; + left: 50%; + + width: 40px; + height: 4px; + + border-radius: ${BORDER_RADIUS.sm}; + background-color: var(--gray-2); + + transform: translateX(-20px); + content: ''; + } +`; + +const StyledContent = styled.div` + width: 100%; + + background-color: var(--white); +`; diff --git a/frontend/src/components/@common/BottomSheet/BottomSheetHeader.tsx b/frontend/src/components/@common/BottomSheet/BottomSheetHeader.tsx new file mode 100644 index 000000000..1ef07c7a8 --- /dev/null +++ b/frontend/src/components/@common/BottomSheet/BottomSheetHeader.tsx @@ -0,0 +1,59 @@ +import { useEffect, useRef } from 'react'; +import styled, { css } from 'styled-components'; +import { shallow } from 'zustand/shallow'; +import { BORDER_RADIUS, FONT_SIZE, paintSkeleton } from '~/styles/common'; +import useBottomSheetStatus from '~/hooks/store/useBottomSheetStatus'; +import useTouchMoveDirection from '~/hooks/useTouchMoveDirection'; + +interface BottomSheetHeaderProps { + isLoading: boolean; + children: string; +} + +function BottomSheetHeader({ children, isLoading }: BottomSheetHeaderProps) { + const { open, close } = useBottomSheetStatus(state => ({ open: state.open, close: state.close }), shallow); + const ref = useRef(); + const { movingDirection } = useTouchMoveDirection(ref); + + useEffect(() => { + if (movingDirection.Y === 'up') open(); + if (movingDirection.Y === 'down') close(); + }, [movingDirection]); + + return ( + + {!isLoading && children} + + ); +} + +export default BottomSheetHeader; + +const Wrapper = styled.div` + display: flex; + flex-direction: column; + align-items: center; + + width: 100%; + min-width: 120px; + min-height: 74px; + + font-size: ${FONT_SIZE.md}; + font-weight: 900; + text-align: center; + padding-top: 3.2rem; + padding-bottom: 2.4rem; +`; + +const StyledBottomSheetTitle = styled.div<{ isLoading: boolean }>` + ${({ isLoading }) => + isLoading && + css` + ${paintSkeleton} + width: 200px; + height: 16px; + align-self: center; + + border-radius: ${BORDER_RADIUS.xs}; + `} +`; diff --git a/frontend/src/components/@common/BottomSheet/index.tsx b/frontend/src/components/@common/BottomSheet/index.tsx new file mode 100644 index 000000000..0402fcad4 --- /dev/null +++ b/frontend/src/components/@common/BottomSheet/index.tsx @@ -0,0 +1,3 @@ +import BottomSheet from './BottomSheet'; + +export default BottomSheet; diff --git a/frontend/src/components/@common/Button/TextButton.stories.tsx b/frontend/src/components/@common/Button/TextButton.stories.tsx new file mode 100644 index 000000000..a69583acf --- /dev/null +++ b/frontend/src/components/@common/Button/TextButton.stories.tsx @@ -0,0 +1,59 @@ +/* eslint-disable no-alert */ +import type { Meta, StoryObj } from '@storybook/react'; +import { styled } from 'styled-components'; +import TextButton from './TextButton'; + +function TextButtons() { + return ( + +

+

Dark Button

+
+
disabled
+ alert('clicked')} disabled /> +
default
+ alert('clicked')} /> +
+
+
+

light Button

+
+
disabled
+ alert('clicked')} disabled /> +
default
+ alert('clicked')} /> +
+
+ + ); +} + +const meta: Meta = { + title: 'TextButton', + component: TextButtons, +}; + +export default meta; + +type Story = StoryObj; + +export const Buttons: Story = {}; + +const StyledTextButtons = styled.div` + display: flex; + gap: 0 12.4rem; + + & > section > div { + display: grid; + grid-template-columns: 1fr 1fr; + grid-template-rows: 1fr 1fr; + + & > * { + display: flex; + justify-content: center; + align-items: center; + + margin: 0.8rem; + } + } +`; diff --git a/frontend/src/components/@common/Button/TextButton.tsx b/frontend/src/components/@common/Button/TextButton.tsx new file mode 100644 index 000000000..aae68a84f --- /dev/null +++ b/frontend/src/components/@common/Button/TextButton.tsx @@ -0,0 +1,41 @@ +import { styled } from 'styled-components'; +import { BORDER_RADIUS, FONT_SIZE } from '~/styles/common'; + +interface TextButtonProps extends React.HTMLAttributes { + type: 'button' | 'submit'; + text: string; + onClick: React.MouseEventHandler; + colorType: 'dark' | 'light'; + disabled?: boolean; +} + +function TextButton({ text, colorType, disabled = false, ...props }: TextButtonProps) { + return ( + + {text} + + ); +} + +export default TextButton; + +const StyledButton = styled.button<{ colorType: 'dark' | 'light' }>` + padding: 1.2rem 2.4rem; + + border: none; + border-radius: ${BORDER_RADIUS.sm}; + background-color: ${({ colorType }) => (colorType === 'dark' ? 'var(--primary-5)' : 'var(--primary-1)')}; + + color: ${({ colorType }) => (colorType === 'dark' ? 'var(--white)' : 'var(--primary-5)')}; + font-size: ${FONT_SIZE.md}; + + &:disabled { + background-color: ${({ colorType }) => (colorType === 'dark' ? 'var(--primary-3)' : 'var(--gray-1)')}; + + color: var(--white); + } + + &:not(:disabled):hover { + background-color: ${({ colorType }) => (colorType === 'dark' ? 'var(--primary-6);' : 'var(--primary-2)')}; + } +`; diff --git a/frontend/src/components/@common/Button/index.tsx b/frontend/src/components/@common/Button/index.tsx new file mode 100644 index 000000000..a3fbdbdde --- /dev/null +++ b/frontend/src/components/@common/Button/index.tsx @@ -0,0 +1,3 @@ +import TextButton from './TextButton'; + +export default TextButton; diff --git a/frontend/src/components/@common/Footer/Footer.stories.tsx b/frontend/src/components/@common/Footer/Footer.stories.tsx new file mode 100644 index 000000000..ac026906c --- /dev/null +++ b/frontend/src/components/@common/Footer/Footer.stories.tsx @@ -0,0 +1,15 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import Footer from './Footer'; + +const meta: Meta = { + title: 'Footer', + component: Footer, +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: {}, +}; diff --git a/frontend/src/components/@common/Footer/Footer.tsx b/frontend/src/components/@common/Footer/Footer.tsx new file mode 100644 index 000000000..33fe559ba --- /dev/null +++ b/frontend/src/components/@common/Footer/Footer.tsx @@ -0,0 +1,66 @@ +import styled from 'styled-components'; +import Instagram from '~/assets/icons/instagram.svg'; +import Github from '~/assets/icons/github.svg'; +import { FONT_SIZE } from '~/styles/common'; + +function Footer() { + return ( + + +

셀럽들이 다녀간 맛집을 찾아보세요!

+

셀럽 기반 맛집 탐색 플랫폼, 셀럽잇입니다.

+
+ CONTACT: celuveat@gmail.com + +
COPYRIGHT © 2023 CELUVEAT ALL RIGHTS RESERVED
+ + + + +
+
+ ); +} + +export default Footer; + +const StyledFooter = styled.footer` + display: flex; + flex-direction: column; + + position: relative; + + width: 100%; + + padding: 2.4rem; + + background-color: var(--gray-1); + + font-size: ${FONT_SIZE.sm}; +`; + +const StyledIntro = styled.div` + margin-bottom: 1.2rem; + + & > p { + padding: 0.2rem 0; + } +`; + +const StyledContact = styled.div` + margin-bottom: 1.2rem; +`; + +const StyledLastLine = styled.div` + display: flex; + justify-content: space-between; +`; + +const StyledSNSLinkButtonList = styled.div` + display: flex; + gap: 0 1.6rem; + + & > * { + cursor: pointer; + } +`; diff --git a/frontend/src/components/@common/Footer/index.tsx b/frontend/src/components/@common/Footer/index.tsx new file mode 100644 index 000000000..ced11e525 --- /dev/null +++ b/frontend/src/components/@common/Footer/index.tsx @@ -0,0 +1,3 @@ +import Footer from './Footer'; + +export default Footer; diff --git a/frontend/src/components/@common/Header/Header.stories.tsx b/frontend/src/components/@common/Header/Header.stories.tsx new file mode 100644 index 000000000..3f959ac4b --- /dev/null +++ b/frontend/src/components/@common/Header/Header.stories.tsx @@ -0,0 +1,15 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import Header from './Header'; + +const meta: Meta = { + title: 'Header', + component: Header, +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: {}, +}; diff --git a/frontend/src/components/@common/Header/Header.tsx b/frontend/src/components/@common/Header/Header.tsx new file mode 100644 index 000000000..6e9431c64 --- /dev/null +++ b/frontend/src/components/@common/Header/Header.tsx @@ -0,0 +1,68 @@ +import React, { useMemo } from 'react'; +import { styled } from 'styled-components'; +import Logo from '~/assets/logo.png'; +import { Modal, ModalContent } from '~/components/@common/Modal'; +import InfoDropDown from '~/components/InfoDropDown'; +import LoginModalContent from '~/components/LoginModalContent'; +import { OPTION_FOR_NOT_USER, OPTION_FOR_USER } from '~/constants/options'; +import useTokenStore from '~/hooks/store/useTokenState'; +import useBooleanState from '~/hooks/useBooleanState'; +import { isEmptyString } from '~/utils/compare'; +import useMediaQuery from '~/hooks/useMediaQuery'; + +function Header() { + const { isMobile } = useMediaQuery(); + const { value: isModalOpen, setTrue: openModal, setFalse: closeModal } = useBooleanState(false); + + const token = useTokenStore(state => state.token); + const clearToken = useTokenStore(state => state.clearToken); + + const options = useMemo(() => (isEmptyString(token) ? OPTION_FOR_NOT_USER : OPTION_FOR_USER), [token]); + + const handleInfoDropDown = (event: React.MouseEvent) => { + const currentOption = event.currentTarget.dataset.name; + + if (currentOption === '로그인') openModal(); + if (currentOption === '로그아웃') { + clearToken(); + } + }; + + return ( + <> + + + + + + + + + + + ); +} + +export default Header; + +const StyledHeader = styled.header<{ isMobile: boolean }>` + display: flex; + justify-content: space-between; + align-items: center; + + position: ${({ isMobile }) => (isMobile ? 'fixed' : 'sticky')}; + top: 0; + z-index: 20; + + width: 100%; + height: 80px; + + padding: 1.2rem 2.4rem; + + background-color: var(--white); + border-bottom: 1px solid var(--gray-1); +`; + +const StyledLogo = styled.img` + width: 136px; +`; diff --git a/frontend/src/components/@common/Header/index.tsx b/frontend/src/components/@common/Header/index.tsx new file mode 100644 index 000000000..a9ce1058c --- /dev/null +++ b/frontend/src/components/@common/Header/index.tsx @@ -0,0 +1,3 @@ +import Header from './Header'; + +export default Header; diff --git a/frontend/src/components/@common/ImageCarousel/ImageCarousel.stories.tsx b/frontend/src/components/@common/ImageCarousel/ImageCarousel.stories.tsx new file mode 100644 index 000000000..0c905dd92 --- /dev/null +++ b/frontend/src/components/@common/ImageCarousel/ImageCarousel.stories.tsx @@ -0,0 +1,28 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import ImageCarousel from './ImageCarousel'; + +const meta: Meta = { + title: 'ImageCarousel', + component: ImageCarousel, +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { + images: [ + { id: 1, name: 'https://picsum.photos/315/300', author: '@d0dam', sns: 'youtube' }, + { id: 2, name: 'https://picsum.photos/315/300', author: '@d0dam', sns: 'youtube' }, + { id: 3, name: 'https://picsum.photos/315/300', author: '@d0dam', sns: 'youtube' }, + { id: 4, name: 'https://picsum.photos/315/300', author: '@d0dam', sns: 'youtube' }, + ], + }, +}; + +export const OneImage: Story = { + args: { + images: [{ id: 1, name: 'https://picsum.photos/315/300', author: '@d0dam', sns: 'youtube' }], + }, +}; diff --git a/frontend/src/components/@common/ImageCarousel/ImageCarousel.tsx b/frontend/src/components/@common/ImageCarousel/ImageCarousel.tsx new file mode 100644 index 000000000..312fbc60f --- /dev/null +++ b/frontend/src/components/@common/ImageCarousel/ImageCarousel.tsx @@ -0,0 +1,159 @@ +import { useEffect, useRef, useState } from 'react'; +import styled, { css } from 'styled-components'; +import { RestaurantImage } from '~/@types/image.type'; +import LeftBracket from '~/assets/icons/left-bracket.svg'; +import RightBracket from '~/assets/icons/right-bracket.svg'; +import { BORDER_RADIUS } from '~/styles/common'; +import WaterMarkImage from '../WaterMarkImage'; +import useTouchMoveDirection from '~/hooks/useTouchMoveDirection'; +import useMediaQuery from '~/hooks/useMediaQuery'; + +interface ImageCarouselProps { + images: RestaurantImage[]; + type: 'list' | 'map'; +} + +function ImageCarousel({ images, type }: ImageCarouselProps) { + const { isMobile } = useMediaQuery(); + const ref = useRef(); + const { movingDirection } = useTouchMoveDirection(ref); + const [currentIndex, setCurrentIndex] = useState(0); + + const goToPrevious = () => setCurrentIndex(prevIndex => prevIndex - 1); + const goToNext = () => setCurrentIndex(prevIndex => prevIndex + 1); + + useEffect(() => { + if (movingDirection.X === 'left' && currentIndex !== images.length - 1) goToNext(); + if (movingDirection.X === 'right' && currentIndex !== 0) goToPrevious(); + }, [movingDirection.X]); + + return ( + + + {images.map(({ id, name, author }) => ( + + ))} + + {!isMobile && currentIndex !== 0 && ( + + + + )} + {!isMobile && currentIndex !== images.length - 1 && ( + + + + )} + {images.length > 1 && ( + + {Array.from({ length: images.length }, () => ( + + ))} + + )} + + ); +} + +export default ImageCarousel; + +const StyledCarouselContainer = styled.div<{ type: 'list' | 'map' }>` + position: relative; + + width: 100%; + overflow: hidden; + + border-radius: ${({ type }) => + type === 'list' ? `${BORDER_RADIUS.md};` : `${BORDER_RADIUS.md} ${BORDER_RADIUS.md} 0 0;`} + button { + visibility: hidden; + + display: flex; + justify-content: center; + align-items: center; + + position: absolute; + top: 50%; + + width: 32px; + height: 32px; + + border: none; + border-radius: 50%; + background-color: var(--white); + + cursor: pointer; + opacity: 0; + transition: transform 0.15s ease-in-out, opacity 0.2s ease-in-out; + transform: translateY(-50%); + box-shadow: var(--shadow); + outline: none; + + &:hover { + transform: translateY(-50%) scale(1.04); + } + } + + &:hover { + button { + visibility: visible; + + opacity: 0.85; + + &:hover { + opacity: 1; + } + } + } +`; + +const StyledLeftButton = styled.button` + left: 12px; +`; + +const StyledRightButton = styled.button` + right: 12px; +`; + +const StyledCarouselSlide = styled.div<{ currentIndex: number }>` + display: flex; + + width: 100%; + + transition: transform 0.3s ease-in-out; + transform: ${({ currentIndex }) => `translateX(-${currentIndex * 100}%)`}; + flex-wrap: nowrap; + + aspect-ratio: 1.05 / 1; +`; + +const StyledDots = styled.div<{ currentIndex: number }>` + display: flex; + justify-content: center; + align-items: center; + gap: 0 0.5rem; + + position: absolute; + bottom: 12px; + + width: 100%; + + ${({ currentIndex }) => css` + & > span:nth-child(${currentIndex + 1}) { + opacity: 1; + transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out; + transform: scale(1.1); + } + `} +`; + +const StyledDot = styled.span` + width: 6px; + height: 6px; + + border-radius: 50%; + background-color: var(--white); + + opacity: 0.2; + transition: transform 0.2s ease-in-out, opacity 0.2s ease-in-out; +`; diff --git a/frontend/src/components/@common/ImageCarousel/index.tsx b/frontend/src/components/@common/ImageCarousel/index.tsx new file mode 100644 index 000000000..d557e0a41 --- /dev/null +++ b/frontend/src/components/@common/ImageCarousel/index.tsx @@ -0,0 +1,3 @@ +import ImageCarousel from './ImageCarousel'; + +export default ImageCarousel; diff --git a/frontend/src/components/@common/InfoButton/InfoButton.stories.tsx b/frontend/src/components/@common/InfoButton/InfoButton.stories.tsx new file mode 100644 index 000000000..4be75506c --- /dev/null +++ b/frontend/src/components/@common/InfoButton/InfoButton.stories.tsx @@ -0,0 +1,15 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import InfoButton from './InfoButton'; + +const meta: Meta = { + title: 'InfoButton', + component: InfoButton, +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: {}, +}; diff --git a/frontend/src/components/@common/InfoButton/InfoButton.tsx b/frontend/src/components/@common/InfoButton/InfoButton.tsx new file mode 100644 index 000000000..10f5f0ad2 --- /dev/null +++ b/frontend/src/components/@common/InfoButton/InfoButton.tsx @@ -0,0 +1,47 @@ +import styled, { css } from 'styled-components'; + +import Menu from '~/assets/icons/etc/menu.svg'; +import User from '~/assets/icons/etc/user.svg'; + +interface InfoButtonProps { + isShow?: boolean; +} + +function InfoButton({ isShow = false }: InfoButtonProps) { + return ( + + + + + ); +} + +export default InfoButton; + +const StyledInfoButton = styled.button` + display: flex; + justify-content: space-between; + align-items: center; + + width: 77px; + + padding: 0.5rem 0.5rem 0.5rem 1.2rem; + + border: 1px solid #ddd; + border-radius: 21px; + background: transparent; + + cursor: pointer; + + ${({ isShow }) => + isShow && + css` + box-shadow: var(--shadow); + `} + + &:hover { + box-shadow: var(--shadow); + + transition: box-shadow 0.2s ease-in-out; + } +`; diff --git a/frontend/src/components/@common/InfoButton/index.tsx b/frontend/src/components/@common/InfoButton/index.tsx new file mode 100644 index 000000000..dac566eef --- /dev/null +++ b/frontend/src/components/@common/InfoButton/index.tsx @@ -0,0 +1,3 @@ +import InfoButton from '~/components/@common/InfoButton/InfoButton'; + +export default InfoButton; diff --git a/frontend/src/components/@common/Label/Label.stories.tsx b/frontend/src/components/@common/Label/Label.stories.tsx new file mode 100644 index 000000000..6b5502a38 --- /dev/null +++ b/frontend/src/components/@common/Label/Label.stories.tsx @@ -0,0 +1,15 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import Label from './Label'; + +const meta: Meta = { + title: 'Label', + component: Label, +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { text: '유료광고' }, +}; diff --git a/frontend/src/components/@common/Label/Label.tsx b/frontend/src/components/@common/Label/Label.tsx new file mode 100644 index 000000000..609a1f67f --- /dev/null +++ b/frontend/src/components/@common/Label/Label.tsx @@ -0,0 +1,27 @@ +import { styled } from 'styled-components'; +import { BORDER_RADIUS, FONT_SIZE } from '~/styles/common'; + +interface LabelProps { + text: string; +} + +function Label({ text }: LabelProps) { + return {text}; +} + +export default Label; + +const StyledDiv = styled.div` + display: flex; + justify-content: center; + align-items: center; + + width: 38px; + height: 14px; + + border-radius: ${BORDER_RADIUS.xs}; + background-color: var(--primary-3-transparent-25); + + color: var(--primary-6); + font-size: ${FONT_SIZE.xs}; +`; diff --git a/frontend/src/components/@common/Label/index.tsx b/frontend/src/components/@common/Label/index.tsx new file mode 100644 index 000000000..2b0c401bd --- /dev/null +++ b/frontend/src/components/@common/Label/index.tsx @@ -0,0 +1,3 @@ +import Label from './Label'; + +export default Label; diff --git a/frontend/src/components/@common/LoadingDots/LoadingDots.stories.tsx b/frontend/src/components/@common/LoadingDots/LoadingDots.stories.tsx new file mode 100644 index 000000000..1496eaabb --- /dev/null +++ b/frontend/src/components/@common/LoadingDots/LoadingDots.stories.tsx @@ -0,0 +1,15 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import LoadingDots from './LoadingDots'; + +const meta: Meta = { + title: 'Loading/LoadingDots', + component: LoadingDots, +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { size: 30 }, +}; diff --git a/frontend/src/components/@common/LoadingDots/LoadingDots.tsx b/frontend/src/components/@common/LoadingDots/LoadingDots.tsx new file mode 100644 index 000000000..e87ce43d2 --- /dev/null +++ b/frontend/src/components/@common/LoadingDots/LoadingDots.tsx @@ -0,0 +1,54 @@ +import styled, { keyframes } from 'styled-components'; +import Dot from '~/assets/icons/dot.svg'; + +function LoadingDots() { + return ( + + + + + + + + + + + + ); +} + +export default LoadingDots; + +const StyledLoadingDots = styled.div` + display: flex; + gap: 0 1.4rem; + + & > div:nth-child(2) { + animation-delay: 0.14s; + } + + & > div:nth-child(3) { + animation-delay: 0.28s; + } +`; + +const pulseAnimation = keyframes` + 0% { + transform: scale(0); + } + 90%, 100% { + transform: scale(10); + } +`; + +const StyledLoadingDot = styled.div` + display: flex; + justify-content: center; + align-items: center; + + width: 1.2px; + height: 1.2px; + + animation: ${pulseAnimation} 0.4s ease-in-out infinite alternate; + animation-timing-function: cubic-bezier(0, 0, 1, 1); +`; diff --git a/frontend/src/components/@common/LoadingDots/index.tsx b/frontend/src/components/@common/LoadingDots/index.tsx new file mode 100644 index 000000000..c819498e7 --- /dev/null +++ b/frontend/src/components/@common/LoadingDots/index.tsx @@ -0,0 +1,3 @@ +import LoadingDots from './LoadingDots'; + +export default LoadingDots; diff --git a/frontend/src/components/@common/LoadingIndicator/LoadingIndicator.stories.tsx b/frontend/src/components/@common/LoadingIndicator/LoadingIndicator.stories.tsx new file mode 100644 index 000000000..0df4eb8c4 --- /dev/null +++ b/frontend/src/components/@common/LoadingIndicator/LoadingIndicator.stories.tsx @@ -0,0 +1,15 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import LoadingIndicator from './LoadingIndicator'; + +const meta: Meta = { + title: 'Loading/LoadingIndicator', + component: LoadingIndicator, +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { size: 30 }, +}; diff --git a/frontend/src/components/@common/LoadingIndicator/LoadingIndicator.tsx b/frontend/src/components/@common/LoadingIndicator/LoadingIndicator.tsx new file mode 100644 index 000000000..4a0613210 --- /dev/null +++ b/frontend/src/components/@common/LoadingIndicator/LoadingIndicator.tsx @@ -0,0 +1,76 @@ +import styled, { keyframes } from 'styled-components'; +import Cel from '~/assets/icons/celuveat_cel.svg'; +import Luv from '~/assets/icons/celuveat_luv.svg'; +import Eat from '~/assets/icons/celuveat_eat.svg'; + +interface LoadingIndicatorProps { + size: number; +} + +function LoadingIndicator({ size }: LoadingIndicatorProps) { + return ( + + + + + + + + + + + + ); +} + +export default LoadingIndicator; + +const StyledLoadingAnimation = styled.div` + display: flex; + gap: 0.6rem; + + & > div:nth-child(2) { + animation-delay: 0.2s; + } + + & > div:nth-child(3) { + animation-delay: 0.4s; + } +`; + +const bounceAnimation = keyframes` + 0% { + top: 0px; + } + 25% { + top: 10px; + } + 30% { + transform: rotate(10deg); + } + 50% { + top: 0px; + } + 75% { + top: 10px; + } + 80% { + transform: rotate(-10deg); + } + 100% { + top: 0px; + } +`; + +const StyledBouncing = styled.div<{ size: number }>` + position: relative; + top: 0; + left: ${({ size }) => `${size}px`}; + + width: ${({ size }) => `${size}px`}; + height: ${({ size }) => `${size}px`}; + + border-radius: 50%; + background: none; + animation: ${bounceAnimation} 1.6s ease-in-out infinite; +`; diff --git a/frontend/src/components/@common/LoadingIndicator/index.tsx b/frontend/src/components/@common/LoadingIndicator/index.tsx new file mode 100644 index 000000000..334b5c42c --- /dev/null +++ b/frontend/src/components/@common/LoadingIndicator/index.tsx @@ -0,0 +1,3 @@ +import LoadingIndicator from './LoadingIndicator'; + +export default LoadingIndicator; diff --git a/frontend/src/components/@common/LoginButton/LoginButton.stories.tsx b/frontend/src/components/@common/LoginButton/LoginButton.stories.tsx new file mode 100644 index 000000000..52cd8c2e0 --- /dev/null +++ b/frontend/src/components/@common/LoginButton/LoginButton.stories.tsx @@ -0,0 +1,33 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import { BrowserRouter, Route, Routes } from 'react-router-dom'; +import LoginButton from './LoginButton'; + +const meta: Meta = { + title: 'Oauth/LoginButton', + component: LoginButton, + decorators: [ + Story => ( + + + } /> + + + ), + ], +}; + +export default meta; + +type Story = StoryObj; + +export const Google: Story = { + args: { type: 'google' }, +}; + +export const KaKao: Story = { + args: { type: 'kakao' }, +}; + +export const Naver: Story = { + args: { type: 'naver' }, +}; diff --git a/frontend/src/components/@common/LoginButton/LoginButton.tsx b/frontend/src/components/@common/LoginButton/LoginButton.tsx new file mode 100644 index 000000000..4fd1b0e19 --- /dev/null +++ b/frontend/src/components/@common/LoginButton/LoginButton.tsx @@ -0,0 +1,74 @@ +import { Link } from 'react-router-dom'; +import styled, { css } from 'styled-components'; +import React from 'react'; +import { OAUTH_BUTTON_MESSAGE, OAUTH_LINK } from '~/constants/api'; + +import KaKao from '~/assets/icons/oauth/kakao.svg'; +import Naver from '~/assets/icons/oauth/naver.svg'; +import Google from '~/assets/icons/oauth/google.svg'; +import { Oauth } from '~/@types/oauth.types'; + +interface LoginButtonProps { + type: Oauth; +} + +const LoginIcon: Record = { + naver: , + kakao: , + google: , +}; + +function LoginButton({ type }: LoginButtonProps) { + return ( + +
{LoginIcon[type]}
+ {OAUTH_BUTTON_MESSAGE[type]} +
+ ); +} + +export default LoginButton; + +const StyledLoginButtonWrapper = styled(Link)` + display: flex; + + width: 100%; + height: fit-content; + + padding: 2.3rem 1.3rem; + + border-radius: 12px; + + font-size: 1.4rem; + font-weight: 600; + text-decoration: none; + + ${({ type }) => + type === 'naver' && + css` + background: #03c759; + + color: #fff; + `} + + ${({ type }) => + type === 'kakao' && + css` + background: #fee500; + `} + + ${({ type }) => + type === 'google' && + css` + border: 1px solid var(--gray-3); + `} + + cursor: pointer; + transition: box-shadow 0.2s cubic-bezier(0.2, 0, 0, 1), transform 0.1s cubic-bezier(0.2, 0, 0, 1); +`; + +const StyledLoginButtonText = styled.span` + margin: 0 auto; + + color: inherit; +`; diff --git a/frontend/src/components/@common/LoginButton/index.tsx b/frontend/src/components/@common/LoginButton/index.tsx new file mode 100644 index 000000000..9ee6be126 --- /dev/null +++ b/frontend/src/components/@common/LoginButton/index.tsx @@ -0,0 +1,3 @@ +import LoginButton from '~/components/@common/LoginButton/LoginButton'; + +export default LoginButton; diff --git a/frontend/src/components/@common/Map/Map.stories.tsx b/frontend/src/components/@common/Map/Map.stories.tsx new file mode 100644 index 000000000..074c20e12 --- /dev/null +++ b/frontend/src/components/@common/Map/Map.stories.tsx @@ -0,0 +1,29 @@ +import { Wrapper } from '@googlemaps/react-wrapper'; +import type { Meta, StoryObj } from '@storybook/react'; +import Map from './MapContent'; + +const meta: Meta = { + title: 'Map', + component: Map, + decorators: [ + Story => ( + + + + ), + ], +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { + center: { lat: 37.5057482, lng: 127.050727 }, + zoom: 12, + style: { width: '600px', height: '600px' }, + onIdle: () => {}, + onClick: () => {}, + }, +}; diff --git a/frontend/src/components/@common/Map/Map.tsx b/frontend/src/components/@common/Map/Map.tsx new file mode 100644 index 000000000..f3bcfc6bc --- /dev/null +++ b/frontend/src/components/@common/Map/Map.tsx @@ -0,0 +1,203 @@ +import { useState } from 'react'; +import { Wrapper, Status } from '@googlemaps/react-wrapper'; +import { styled } from 'styled-components'; +import MapContent from './MapContent'; +import OverlayMyLocation from './OverlayMyLocation'; +import LoadingDots from '../LoadingDots'; +import { mapUIBase } from '~/styles/common'; +import MyLocation from '~/assets/icons/my-location.svg'; +import LeftBracket from '~/assets/icons/left-bracket.svg'; +import RightBracket from '~/assets/icons/right-bracket.svg'; +import Minus from '~/assets/icons/minus.svg'; +import Plus from '~/assets/icons/plus.svg'; +import getQuadrant from '~/utils/getQuadrant'; +import OverlayMarker from './OverlayMarker'; + +import type { Coordinate, CoordinateBoundary } from '~/@types/map.types'; +import type { RestaurantData } from '~/@types/api.types'; +import useMediaQuery from '~/hooks/useMediaQuery'; + +interface MapProps { + data: RestaurantData[]; + hoveredId: number | null; + setBoundary: React.Dispatch>; + setCurrentPage: React.Dispatch>; + toggleMapExpand: () => void; + loadingData: boolean; +} + +const render = (status: Status) => { + if (status === Status.FAILURE) + return
지도를 불러올 수 없습니다. 페이지를 새로고침 하거나 네트워크 연결을 다시 한 번 확인해주세요.
; + return ( + + + + ); +}; + +const StyledMapLoadingContainer = styled.section` + display: flex; + justify-content: center; + align-items: center; + + height: 100%; + + background-color: var(--gray-2); +`; + +const JamsilCampus = { lat: 37.515271, lng: 127.1029949 }; + +function Map({ data, setBoundary, toggleMapExpand, loadingData, hoveredId, setCurrentPage }: MapProps) { + const { isMobile } = useMediaQuery(); + const [center, setCenter] = useState({ lat: 37.5057482, lng: 127.050727 }); + const [clicks, setClicks] = useState([]); + const [zoom, setZoom] = useState(16); + const [myPosition, setMyPosition] = useState(null); + const [isMapExpanded, setIsMapExpanded] = useState(false); + const [loading, setLoading] = useState(false); + const [currentCenter, setCurrentCenter] = useState(JamsilCampus); + + const onClick = (e: google.maps.MapMouseEvent) => { + setClicks([...clicks, e.latLng!]); + }; + + const onIdle = (m: google.maps.Map) => { + setZoom(m.getZoom()!); + setCurrentCenter({ lat: m.getCenter().lat(), lng: m.getCenter().lng() }); + + const lowLatitude = String(m.getBounds().getSouthWest().lat()); + const highLatitude = String(m.getBounds().getNorthEast().lat()); + const lowLongitude = String(m.getBounds().getSouthWest().lng()); + const highLongitude = String(m.getBounds().getNorthEast().lng()); + const coordinateBoundary = { lowLatitude, highLatitude, lowLongitude, highLongitude }; + + setBoundary(coordinateBoundary); + setCurrentPage(0); + window.scrollTo(0, 0); + }; + + const clickMyLocationButton = () => { + setLoading(true); + navigator.geolocation.getCurrentPosition((position: GeolocationPosition) => { + setMyPosition({ lat: position.coords.latitude, lng: position.coords.longitude }); + setLoading(false); + setCenter({ lat: position.coords.latitude, lng: position.coords.longitude }); + }); + }; + + const clickZoom = + (number: number): React.MouseEventHandler => + () => { + setZoom(prev => prev + number); + }; + + const clickMapExpand = () => { + setIsMapExpanded(prev => !prev); + toggleMapExpand(); + }; + + return ( + + + {data?.map(({ celebs, ...restaurant }) => { + const { lat, lng } = restaurant; + return ( + + ); + })} + {myPosition && } + {(loadingData || loading) && ( + + + + )} + + + + + +
+ + + {!isMobile && ( + + {isMapExpanded ? : } + + )} + + + ); +} + +export default Map; + +const LoadingUI = styled.div` + ${mapUIBase} + position: absolute; + top: 24px; + right: calc(50% - 41px); + + width: 82px; + height: 40px; +`; + +const StyledMyPositionButtonUI = styled.button` + ${mapUIBase} + position: absolute; + top: 129px; + right: 24px; + + width: 40px; + height: 40px; +`; + +const StyledZoomUI = styled.div` + ${mapUIBase} + flex-direction: column; + + position: absolute; + top: 24px; + right: 24px; + + & > button { + ${mapUIBase} + width: 40px; + height: 40px; + box-shadow: none; + } + + & > div { + width: 100%; + height: 1px; + + background-color: var(--black); + + opacity: 0.1; + } +`; + +const StyledMapExpandButton = styled.button` + ${mapUIBase} + position: absolute; + top: 24px; + left: 24px; + + width: 40px; + height: 40px; +`; diff --git a/frontend/src/components/@common/Map/MapContent.tsx b/frontend/src/components/@common/Map/MapContent.tsx new file mode 100644 index 000000000..962be92b4 --- /dev/null +++ b/frontend/src/components/@common/Map/MapContent.tsx @@ -0,0 +1,34 @@ +/* eslint-disable @typescript-eslint/ban-ts-comment */ +/* eslint-disable react-hooks/exhaustive-deps */ + +import React from 'react'; +import useMap from './hooks/useMap'; +import type { Coordinate } from '~/@types/map.types'; + +interface MapContentProps extends google.maps.MapOptions { + zoom: number; + center: Coordinate; + children: React.ReactNode; + style: { [key: string]: string }; + onIdle?: (map: google.maps.Map) => void; + onClick?: (e: google.maps.MapMouseEvent) => void; +} + +function MapContent({ style, zoom, center, children, onClick, onIdle }: MapContentProps) { + const { ref, map } = useMap({ center, zoom, onClick, onIdle }); + + return ( + <> +
+ {React.Children.map(children, child => { + if (React.isValidElement(child)) { + // @ts-ignore + return React.cloneElement(child, { map }); + } + return null; + })} + + ); +} + +export default MapContent; diff --git a/frontend/src/components/@common/Map/Overlay/Overlay.tsx b/frontend/src/components/@common/Map/Overlay/Overlay.tsx new file mode 100644 index 000000000..712752ce7 --- /dev/null +++ b/frontend/src/components/@common/Map/Overlay/Overlay.tsx @@ -0,0 +1,41 @@ +import { useEffect, useMemo } from 'react'; +import { createPortal } from 'react-dom'; +import createOverlay from './domain/createOverlay'; + +interface OverlayProps { + map: google.maps.Map; + children: React.ReactNode; + position: google.maps.LatLng | google.maps.LatLngLiteral; + pane?: keyof google.maps.MapPanes; + zIndex?: number; +} + +function Overlay({ position, pane = 'floatPane', map, zIndex, children }: OverlayProps) { + const container = useMemo(() => { + const div = document.createElement('div'); + div.style.position = 'absolute'; + + return div; + }, []); + + const overlay = useMemo(() => createOverlay(container, pane, position), [container, pane, position]); + + useEffect(() => { + overlay?.setMap(map); + return () => overlay?.setMap(null); + }, [map, overlay]); + + useEffect(() => { + container.style.zIndex = `${zIndex}`; + container.onmouseover = function () { + container.style.zIndex = '18'; + }; + container.onmouseout = function () { + container.style.zIndex = `${zIndex}`; + }; + }, [zIndex, container]); + + return createPortal(children, container); +} + +export default Overlay; diff --git a/frontend/src/components/@common/Map/Overlay/domain/createOverlay.ts b/frontend/src/components/@common/Map/Overlay/domain/createOverlay.ts new file mode 100644 index 000000000..c2c58eab1 --- /dev/null +++ b/frontend/src/components/@common/Map/Overlay/domain/createOverlay.ts @@ -0,0 +1,50 @@ +/* eslint-disable @typescript-eslint/no-shadow */ + +function createOverlay( + container: HTMLElement, + pane: keyof google.maps.MapPanes, + position: google.maps.LatLng | google.maps.LatLngLiteral, +) { + class Overlay extends google.maps.OverlayView { + container: HTMLElement; + + pane: keyof google.maps.MapPanes; + + position: google.maps.LatLng | google.maps.LatLngLiteral; + + constructor( + container: HTMLElement, + pane: keyof google.maps.MapPanes, + position: google.maps.LatLng | google.maps.LatLngLiteral, + ) { + super(); + this.container = container; + this.pane = pane; + this.position = position; + } + + onAdd() { + const pane = this.getPanes()?.[this.pane]; + pane?.appendChild(this.container); + } + + draw() { + const projection = this.getProjection(); + const point = projection.fromLatLngToDivPixel(this.position); + if (point === null) { + return; + } + this.container.style.transform = `translate(${point.x}px, ${point.y}px)`; + } + + onRemove() { + if (this.container.parentNode !== null) { + this.container.parentNode.removeChild(this.container); + } + } + } + + return new Overlay(container, pane, position); +} + +export default createOverlay; diff --git a/frontend/src/components/@common/Map/Overlay/index.tsx b/frontend/src/components/@common/Map/Overlay/index.tsx new file mode 100644 index 000000000..f543d7c3a --- /dev/null +++ b/frontend/src/components/@common/Map/Overlay/index.tsx @@ -0,0 +1,3 @@ +import Overlay from './Overlay'; + +export default Overlay; diff --git a/frontend/src/components/@common/Map/OverlayMarker.tsx b/frontend/src/components/@common/Map/OverlayMarker.tsx new file mode 100644 index 000000000..2d658ccd2 --- /dev/null +++ b/frontend/src/components/@common/Map/OverlayMarker.tsx @@ -0,0 +1,110 @@ +import styled, { css, keyframes } from 'styled-components'; +import { MouseEvent, useRef, useState } from 'react'; +import ProfileImage from '../ProfileImage'; +import Overlay from './Overlay/Overlay'; +import RestaurantCard from '~/components/RestaurantCard'; +import useOnClickOutside from '~/hooks/useOnClickOutside'; + +import type { Quadrant } from '~/utils/getQuadrant'; +import type { Restaurant } from '~/@types/restaurant.types'; +import type { Celeb } from '~/@types/celeb.types'; + +interface OverlayMarkerProps { + celeb: Celeb; + map?: google.maps.Map; + restaurant: Restaurant; + quadrant: Quadrant; + isRestaurantHovered: boolean; +} + +function OverlayMarker({ celeb, restaurant, map, quadrant, isRestaurantHovered }: OverlayMarkerProps) { + const { lat, lng } = restaurant; + const [isClicked, setIsClicked] = useState(false); + const ref = useRef(); + useOnClickOutside(ref, () => setIsClicked(false)); + + const clickMarker = () => { + setIsClicked(true); + }; + + const clickModal = (e: MouseEvent) => { + e.stopPropagation(); + }; + + return ( + map && ( + +
+ + + + {isClicked && ( + + + + )} +
+
+ ) + ); +} + +export default OverlayMarker; + +const scaleUp = keyframes` + 0% { + transform: scale(1); + } + 100% { + transform: scale(1.5); + } +`; + +const StyledMarker = styled.div<{ isClicked: boolean; isRestaurantHovered: boolean }>` + display: flex; + justify-content: center; + align-items: center; + + width: 36px; + height: 36px; + + border: ${({ isClicked, isRestaurantHovered }) => + isClicked || isRestaurantHovered ? '3px solid var(--orange-2)' : '3px solid transparent'}; + border-radius: 50%; + + transition: transform 0.2s ease-in-out; + transform: ${({ isClicked }) => (isClicked ? 'scale(1.5)' : 'scale(1)')}; + + &:hover { + transform: scale(1.5); + } + + ${({ isRestaurantHovered }) => + isRestaurantHovered && + css` + animation: ${scaleUp} 0.2s ease-in-out forwards; + `} +`; + +const fadeInAnimation = keyframes` + from { + opacity: 0; + } + to { + opacity: 1; + } +`; + +const StyledModal = styled.div<{ quadrant: Quadrant }>` + position: absolute; + top: ${({ quadrant }) => (quadrant === 1 || quadrant === 2 ? '40px' : '-280px')}; + right: ${({ quadrant }) => (quadrant === 1 || quadrant === 4 ? '45px' : '-210px')}; + + width: 200px; + + border-radius: 12px; + background-color: #fff; + + animation: ${fadeInAnimation} 100ms ease-in; + box-shadow: 0 4px 6px rgb(0 0 0 / 20%); +`; diff --git a/frontend/src/components/@common/Map/OverlayMyLocation.tsx b/frontend/src/components/@common/Map/OverlayMyLocation.tsx new file mode 100644 index 000000000..3fef3c57e --- /dev/null +++ b/frontend/src/components/@common/Map/OverlayMyLocation.tsx @@ -0,0 +1,56 @@ +import styled from 'styled-components'; +import Overlay from './Overlay/Overlay'; +import type { Coordinate } from '~/@types/map.types'; + +interface OverlayMyLocationProps { + position: Coordinate; + map?: google.maps.Map; +} + +function OverlayMyLocation({ position, map }: OverlayMyLocationProps) { + return ( + map && ( + + + + + + + ) + ); +} + +export default OverlayMyLocation; + +const StyledMyLocationRound = styled.div` + position: absolute; + top: 6px; + left: 6px; + z-index: 10; + + width: 12px; + height: 12px; + + border: 1px solid var(--white); + border-radius: 50%; + background-color: var(--primary-5); +`; + +const StyledMyLocationBorder = styled.div` + position: absolute; + + width: 24px; + height: 24px; + + border-radius: 50%; + background-color: var(--primary-5); + + opacity: 0.5; +`; + +const StyledMyLocation = styled.div` + display: relative; + + width: 24px; + height: 24px; +`; diff --git a/frontend/src/components/@common/Map/hooks/useMap.ts b/frontend/src/components/@common/Map/hooks/useMap.ts new file mode 100644 index 000000000..338bf124a --- /dev/null +++ b/frontend/src/components/@common/Map/hooks/useMap.ts @@ -0,0 +1,198 @@ +/* eslint-disable react-hooks/exhaustive-deps */ +import { useEffect, useRef, useState } from 'react'; + +interface UseDrawMapProps { + zoom: number; + center: google.maps.LatLngLiteral; + onIdle?: (map: google.maps.Map) => void; + onClick?: (e: google.maps.MapMouseEvent) => void; +} + +const styles = [ + { + featureType: 'landscape.man_made', + elementType: 'geometry.fill', + stylers: [ + { + color: '#f9f4f2', + }, + ], + }, + { + featureType: 'landscape.natural.landcover', + elementType: 'geometry.fill', + stylers: [ + { + color: '#d3eddb', + }, + ], + }, + { + featureType: 'landscape.natural.terrain', + elementType: 'geometry.fill', + stylers: [ + { + color: '#dbf0e0', + }, + ], + }, + { + featureType: 'poi.business', + elementType: 'labels.icon', + stylers: [ + { + visibility: 'off', + }, + ], + }, + { + featureType: 'poi.park', + elementType: 'geometry.fill', + stylers: [ + { + color: '#dbf3cc', + }, + ], + }, + { + featureType: 'poi.school', + elementType: 'geometry.fill', + stylers: [ + { + color: '#f2f2f2', + }, + { + lightness: '0', + }, + ], + }, + { + featureType: 'road', + elementType: 'geometry.fill', + stylers: [ + { + color: '#ffffff', + }, + ], + }, + { + featureType: 'road', + elementType: 'geometry.stroke', + stylers: [ + { + color: '#cfc8c4', + }, + ], + }, + { + featureType: 'road', + elementType: 'labels.icon', + stylers: [ + { + visibility: 'off', + }, + ], + }, + { + featureType: 'road.highway.controlled_access', + elementType: 'geometry.fill', + stylers: [ + { + color: '#ffffff', + }, + ], + }, + { + featureType: 'road.highway.controlled_access', + elementType: 'geometry.stroke', + stylers: [ + { + color: '#cfc8c4', + }, + ], + }, + { + featureType: 'road.arterial', + elementType: 'geometry.fill', + stylers: [ + { + color: '#ffffff', + }, + ], + }, + { + featureType: 'road.arterial', + elementType: 'geometry.stroke', + stylers: [ + { + color: '#cfc8c4', + }, + ], + }, + { + featureType: 'road.local', + elementType: 'labels.text', + stylers: [ + { + visibility: 'off', + }, + ], + }, + { + featureType: 'transit.line', + elementType: 'geometry.stroke', + stylers: [ + { + visibility: 'off', + }, + ], + }, + { + featureType: 'water', + elementType: 'geometry.fill', + stylers: [ + { + color: '#b3e6f4', + }, + ], + }, +]; + +const useMap = ({ center, zoom, onClick, onIdle }: UseDrawMapProps) => { + const ref = useRef(null); + const [map, setMap] = useState(null); + + useEffect(() => { + if (ref.current && !map) { + const newMap = new window.google.maps.Map(ref.current, { + center, + zoom, + disableDefaultUI: true, + gestureHandling: 'greedy', + styles, + }); + setMap(newMap); + } + }, [ref]); + + useEffect(() => { + if (map) map.panTo(center); + }, [center]); + + useEffect(() => { + if (map) map.setZoom(zoom); + }, [zoom]); + + useEffect(() => { + if (map) { + ['click', 'idle'].forEach(eventName => google.maps.event.clearListeners(map, eventName)); + + if (onClick) map.addListener('click', onClick); + if (onIdle) map.addListener('idle', () => onIdle(map)); + } + }, [map, onClick, onIdle]); + + return { ref, map }; +}; + +export default useMap; diff --git a/frontend/src/components/@common/Map/index.tsx b/frontend/src/components/@common/Map/index.tsx new file mode 100644 index 000000000..11e3dba1a --- /dev/null +++ b/frontend/src/components/@common/Map/index.tsx @@ -0,0 +1,3 @@ +import Map from './Map'; + +export default Map; diff --git a/frontend/src/components/@common/Modal/Modal.tsx b/frontend/src/components/@common/Modal/Modal.tsx new file mode 100644 index 000000000..b5eb84500 --- /dev/null +++ b/frontend/src/components/@common/Modal/Modal.tsx @@ -0,0 +1,11 @@ +import { createPortal } from 'react-dom'; + +interface ModalProps { + children: React.ReactNode; +} + +function Modal({ children }: ModalProps) { + return createPortal(children, document.querySelector('#modal')); +} + +export default Modal; diff --git a/frontend/src/components/@common/Modal/ModalContent.stories.tsx b/frontend/src/components/@common/Modal/ModalContent.stories.tsx new file mode 100644 index 000000000..fc7ce1800 --- /dev/null +++ b/frontend/src/components/@common/Modal/ModalContent.stories.tsx @@ -0,0 +1,20 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import ModalContent from './ModalContent'; + +const meta: Meta = { + title: 'ModalContent', + component: ModalContent, +}; + +export default meta; + +type Story = StoryObj; + +export const LoginModal: Story = { + args: { + isShow: true, + title: '로그인 또는 회원가입', + closeModal: () => {}, + children: '모달 내용', + }, +}; diff --git a/frontend/src/components/@common/Modal/ModalContent.tsx b/frontend/src/components/@common/Modal/ModalContent.tsx new file mode 100644 index 000000000..fbab17a16 --- /dev/null +++ b/frontend/src/components/@common/Modal/ModalContent.tsx @@ -0,0 +1,106 @@ +import styled, { css } from 'styled-components'; +import Exit from '~/assets/icons/exit.svg'; + +interface ModalContentProps { + isShow?: boolean; + title: string; + closeModal: () => void; + children: React.ReactNode; +} + +function ModalContent({ isShow = false, title, closeModal, children }: ModalContentProps) { + return ( + + + + + + {title} + + {children} + + + ); +} + +export default ModalContent; + +const StyledModalContentWrapper = styled.div<{ isShow: boolean }>` + display: flex; + justify-content: center; + align-items: center; + + position: fixed; + top: 0; + left: 0; + z-index: 999; + + width: 100%; + height: 100%; + + opacity: 0; + visibility: hidden; + + ${({ isShow }) => + isShow && + css` + visibility: visible; + + opacity: 1; + transition: opacity ease 0.25s; + `} +`; + +const StyledModalOverlay = styled.div` + position: absolute; + top: 0; + left: 0; + z-index: 1; + + width: 100%; + height: 100%; + + background: rgb(0 0 0 / 50%); +`; + +const StyledModalContent = styled.div<{ isShow: boolean }>` + display: flex; + flex-direction: column; + + position: relative; + z-index: 10; + + width: 33%; + min-width: 500px; + max-width: 600px; + min-height: 100px; + + padding: 2rem; + + border-radius: 5px; + background: #fff; + + transition: transform ease 0.3s 0.1s; + transform: translateY(80px); + + overflow-y: auto; + + ${({ isShow }) => + isShow && + css` + transform: translateY(0); + `} +`; + +const StyledModalHeader = styled.h5` + display: flex; + align-items: center; +`; + +const StyledModalTitleText = styled.span` + margin: 0 auto; +`; + +const StyledModalBody = styled.div` + margin-top: 2.4rem; +`; diff --git a/frontend/src/components/@common/Modal/index.tsx b/frontend/src/components/@common/Modal/index.tsx new file mode 100644 index 000000000..4caa2d0b2 --- /dev/null +++ b/frontend/src/components/@common/Modal/index.tsx @@ -0,0 +1,4 @@ +import Modal from '~/components/@common/Modal/Modal'; +import ModalContent from '~/components/@common/Modal/ModalContent'; + +export { Modal, ModalContent }; diff --git a/frontend/src/components/@common/NavButton/NavButton.stories.tsx b/frontend/src/components/@common/NavButton/NavButton.stories.tsx new file mode 100644 index 000000000..61e0e1c9e --- /dev/null +++ b/frontend/src/components/@common/NavButton/NavButton.stories.tsx @@ -0,0 +1,20 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import FastFoodIcon from '~/assets/icons/fastFood.svg'; +import NavItem from '~/components/@common/NavButton/NavButton'; + +const meta: Meta = { + title: 'NavItem', + component: NavItem, +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { + label: '캠핑장', + icon: , + isShow: true, + }, +}; diff --git a/frontend/src/components/@common/NavButton/NavButton.tsx b/frontend/src/components/@common/NavButton/NavButton.tsx new file mode 100644 index 000000000..0a1109038 --- /dev/null +++ b/frontend/src/components/@common/NavButton/NavButton.tsx @@ -0,0 +1,94 @@ +import styled, { css } from 'styled-components'; + +import { FONT_SIZE } from '~/styles/common'; + +interface NavItemProps { + label: string; + icon: React.ReactNode; + isShow?: boolean; +} + +function NavItem({ icon, label, isShow = false }: NavItemProps) { + return ( + +
{icon}
+
+ {label} +
+
+ ); +} + +export default NavItem; + +const StyledNavItem = styled.div<{ isShow: boolean }>` + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + gap: 0.8rem 0; + + width: 80px; + + border: none; + background: none; + + font-size: ${FONT_SIZE.sm}; + + & > *:first-child > svg { + fill: ${({ isShow }) => (isShow ? 'var(--black)' : '#717171')}; + } + + &:hover > *:first-child > svg { + fill: var(--black); + } + + & > * > * { + color: ${({ isShow }) => (isShow ? 'var(--black)' : '#717171')}; + } + + &:hover > * > * { + color: var(--black); + } + + ${({ isShow }) => + isShow + ? css` + & > div:last-child { + position: relative; + + &::after { + position: absolute; + top: calc(100% + 12px); + z-index: -1; + + height: 2px; + + background-color: var(--black); + white-space: nowrap; + inset-inline: 0; + content: ''; + } + } + ` + : css` + &:hover { + & > div:last-child { + position: relative; + + &::after { + position: absolute; + top: calc(100% + 12px); + z-index: -1; + + height: 2px; + + background: var(--gray-2); + white-space: nowrap; + inset-inline: 0; + content: ''; + } + } + } + `}; +`; diff --git a/frontend/src/components/@common/NavButton/index.tsx b/frontend/src/components/@common/NavButton/index.tsx new file mode 100644 index 000000000..c5ad4b809 --- /dev/null +++ b/frontend/src/components/@common/NavButton/index.tsx @@ -0,0 +1,3 @@ +import NavButton from '~/components/@common/NavButton/NavButton'; + +export default NavButton; diff --git a/frontend/src/components/@common/PageNationBar/PageNationBar.stories.tsx b/frontend/src/components/@common/PageNationBar/PageNationBar.stories.tsx new file mode 100644 index 000000000..a534bc5a4 --- /dev/null +++ b/frontend/src/components/@common/PageNationBar/PageNationBar.stories.tsx @@ -0,0 +1,19 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import PageNationBar from './PageNationBar'; + +const meta: Meta = { + title: 'PageNationBar', + component: PageNationBar, +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { + totalPage: 18, + currentPage: 15, + clickPageButton: () => {}, + }, +}; diff --git a/frontend/src/components/@common/PageNationBar/PageNationBar.tsx b/frontend/src/components/@common/PageNationBar/PageNationBar.tsx new file mode 100644 index 000000000..97971fb8a --- /dev/null +++ b/frontend/src/components/@common/PageNationBar/PageNationBar.tsx @@ -0,0 +1,124 @@ +import { useMemo } from 'react'; +import styled, { css } from 'styled-components'; +import LeftBracket from '~/assets/icons/left-bracket.svg'; +import RightBracket from '~/assets/icons/right-bracket.svg'; +import { FONT_SIZE } from '~/styles/common'; + +interface PageNationBarProps { + totalPage: number; + currentPage: number; + clickPageButton: React.MouseEventHandler; +} + +function PageNationBar({ totalPage, currentPage, clickPageButton }: PageNationBarProps) { + const makePageNumber = useMemo(() => { + const isNeedPrevDots = currentPage - 2 > 1; + const isNeedNextDots = currentPage + 2 < totalPage; + + if (totalPage < 7) { + return Array.from({ length: totalPage }, (_, index) => index + 1); + } + if (isNeedPrevDots && isNeedNextDots) { + return [1, '...', currentPage - 1, currentPage, currentPage + 1, '...', totalPage]; + } + if (isNeedPrevDots && !isNeedNextDots) { + return [1, '...', totalPage - 3, totalPage - 2, totalPage - 1, totalPage]; + } + if (!isNeedPrevDots && isNeedNextDots) { + return [1, 2, 3, 4, '...', totalPage]; + } + + return Array.from({ length: totalPage }, (_, index) => index + 1); + }, [totalPage, currentPage]); + + return ( + + + + + {makePageNumber.map(value => ( + + {value} + + ))} + + + + + ); +} + +export default PageNationBar; + +const StyledPageNationBar = styled.div` + display: flex; + justify-content: center; + align-items: center; + gap: 0 1.6rem; + margin-top: 3.6rem; + + & > button { + display: flex; + justify-content: center; + align-items: center; + + width: 32px; + height: 32px; + + border: none; + border-radius: 50%; + } + + @media screen and (width <= 420px) { + gap: 0 0.8rem; + margin-top: 3.6rem; + + & > button { + width: 24px; + height: 24px; + + border: none; + border-radius: 50%; + + font-size: ${FONT_SIZE.sm}; + } + } +`; + +const StyledBracketButton = styled.button<{ disabled: boolean }>` + background: none; + + ${({ disabled }) => disabled && `opacity: 0.2;`} +`; + +const StyledPageButton = styled.button<{ isCurrentPage: boolean; value: number | string }>` + background: none; + + ${({ isCurrentPage }) => + isCurrentPage + ? css` + background-color: var(--black); + + color: var(--white); + ` + : css` + &:hover { + background: #f7f7f7; + } + `} + + ${({ value }) => + value === '...' && + css` + &:hover { + background: var(--white); + } + + cursor: default; + `} +`; diff --git a/frontend/src/components/@common/PageNationBar/index.tsx b/frontend/src/components/@common/PageNationBar/index.tsx new file mode 100644 index 000000000..8207e7f9e --- /dev/null +++ b/frontend/src/components/@common/PageNationBar/index.tsx @@ -0,0 +1,3 @@ +import PageNationBar from './PageNationBar'; + +export default PageNationBar; diff --git a/frontend/src/components/@common/ProfileImage/ProfileImage.stories.tsx b/frontend/src/components/@common/ProfileImage/ProfileImage.stories.tsx new file mode 100644 index 000000000..58f63f8a1 --- /dev/null +++ b/frontend/src/components/@common/ProfileImage/ProfileImage.stories.tsx @@ -0,0 +1,19 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import ProfileImage from './ProfileImage'; + +const meta: Meta = { + title: 'ProfileImage', + component: ProfileImage, +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { + name: '누군가', + imageUrl: 'https://avatars.githubusercontent.com/u/51052049?v=4', + size: '64px', + }, +}; diff --git a/frontend/src/components/@common/ProfileImage/ProfileImage.tsx b/frontend/src/components/@common/ProfileImage/ProfileImage.tsx new file mode 100644 index 000000000..e2efe8345 --- /dev/null +++ b/frontend/src/components/@common/ProfileImage/ProfileImage.tsx @@ -0,0 +1,22 @@ +import { styled } from 'styled-components'; + +interface ProfileImageProps extends React.HTMLAttributes { + name: string; + imageUrl: string; + border?: boolean; + size?: string; +} + +function ProfileImage({ name = '셀럽', imageUrl, size, border = false, ...props }: ProfileImageProps) { + return ; +} + +export default ProfileImage; + +const StyledProfile = styled.img<{ size: string; border: boolean }>` + width: ${({ size }) => size || 'auto'}; + height: ${({ size }) => size || 'auto'}; + + border-radius: 50%; + background: none; +`; diff --git a/frontend/src/components/@common/ProfileImage/ProfileImageSkeleton.tsx b/frontend/src/components/@common/ProfileImage/ProfileImageSkeleton.tsx new file mode 100644 index 000000000..9ca92eab1 --- /dev/null +++ b/frontend/src/components/@common/ProfileImage/ProfileImageSkeleton.tsx @@ -0,0 +1,21 @@ +import { styled } from 'styled-components'; +import { paintSkeleton } from '~/styles/common'; + +interface ProfileImageSkeletonProps { + size: number; +} + +function ProfileImageSkeleton({ size }: ProfileImageSkeletonProps) { + return ; +} + +export default ProfileImageSkeleton; + +const StyledProfileImageSkeleton = styled.div<{ size: number }>` + ${paintSkeleton} + width: ${({ size }) => (size ? `${size}px` : '100%')}; + height: ${({ size }) => (size ? `${size}px` : 'auto')}; + + border-radius: 50%; + background: none; +`; diff --git a/frontend/src/components/@common/ProfileImage/index.tsx b/frontend/src/components/@common/ProfileImage/index.tsx new file mode 100644 index 000000000..957eb55ce --- /dev/null +++ b/frontend/src/components/@common/ProfileImage/index.tsx @@ -0,0 +1,3 @@ +import ProfileImage from './ProfileImage'; + +export default ProfileImage; diff --git a/frontend/src/components/@common/ProfileImageList/ProfileImageList.stories.tsx b/frontend/src/components/@common/ProfileImageList/ProfileImageList.stories.tsx new file mode 100644 index 000000000..2d4992598 --- /dev/null +++ b/frontend/src/components/@common/ProfileImageList/ProfileImageList.stories.tsx @@ -0,0 +1,43 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import ProfileImageList from './ProfileImageList'; + +const meta: Meta = { + title: 'ProfileImageList', + component: ProfileImageList, +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { + celebs: [ + { + name: '누군가', + profileImageUrl: 'https://avatars.githubusercontent.com/u/51052049?v=4', + id: 1, + youtubeChannelName: '@d0dam', + }, + { + name: '누군가', + profileImageUrl: 'https://avatars.githubusercontent.com/u/51052049?v=4', + id: 2, + youtubeChannelName: '@d0dam', + }, + { + name: '누군가', + profileImageUrl: 'https://avatars.githubusercontent.com/u/51052049?v=4', + id: 3, + youtubeChannelName: '@d0dam', + }, + { + name: '누군가', + profileImageUrl: 'https://avatars.githubusercontent.com/u/51052049?v=4', + id: 4, + youtubeChannelName: '@d0dam', + }, + ], + size: '42px', + }, +}; diff --git a/frontend/src/components/@common/ProfileImageList/ProfileImageList.tsx b/frontend/src/components/@common/ProfileImageList/ProfileImageList.tsx new file mode 100644 index 000000000..1ee2c0ec1 --- /dev/null +++ b/frontend/src/components/@common/ProfileImageList/ProfileImageList.tsx @@ -0,0 +1,49 @@ +import { styled } from 'styled-components'; +import ProfileImage from '../ProfileImage/ProfileImage'; +import useBooleanState from '~/hooks/useBooleanState'; + +import type { Celeb } from '~/@types/celeb.types'; + +interface ProfileImageListProps { + celebs: Celeb[]; + size: string; +} + +function ProfileImageList({ celebs, size }: ProfileImageListProps) { + const { value: hover, setTrue, setFalse } = useBooleanState(false); + + return ( + + {celebs.map((celeb, index) => ( + + + + ))} + + ); +} + +export default ProfileImageList; + +const StyledProfileImageList = styled.div<{ size: string }>` + position: relative; + + width: ${({ size }) => `${size}`}; + height: ${({ size }) => `${size}`}; +`; + +const StyledProfileImageWrapper = styled.div<{ index: number; hover: boolean }>` + position: absolute; + z-index: ${({ index }) => 100 - index}; + + transition: 0.4s ease-in-out; + + ${({ hover, index }) => + hover + ? ` + transform: translateX(${index * -110}%); + ` + : ` + transform: translateX(${index * -20}%); + `}; +`; diff --git a/frontend/src/components/@common/ProfileImageList/index.tsx b/frontend/src/components/@common/ProfileImageList/index.tsx new file mode 100644 index 000000000..11aaa2980 --- /dev/null +++ b/frontend/src/components/@common/ProfileImageList/index.tsx @@ -0,0 +1,3 @@ +import ProfileImageList from './ProfileImageList'; + +export default ProfileImageList; diff --git a/frontend/src/components/@common/Skeleton/Skeleton.stories.tsx b/frontend/src/components/@common/Skeleton/Skeleton.stories.tsx new file mode 100644 index 000000000..79a64e3c1 --- /dev/null +++ b/frontend/src/components/@common/Skeleton/Skeleton.stories.tsx @@ -0,0 +1,18 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import Skeleton from './Skeleton'; + +const meta: Meta = { + title: 'Skeleton', + component: Skeleton, +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { + width: '256px', + height: '256px', + }, +}; diff --git a/frontend/src/components/@common/Skeleton/Skeleton.tsx b/frontend/src/components/@common/Skeleton/Skeleton.tsx new file mode 100644 index 000000000..18b6d8421 --- /dev/null +++ b/frontend/src/components/@common/Skeleton/Skeleton.tsx @@ -0,0 +1,22 @@ +import { css, styled } from 'styled-components'; +import { paintSkeleton } from '~/styles/common'; + +interface SkeletonProps { + width: string; + height: string; +} + +function Skeleton({ width, height }: SkeletonProps) { + return ; +} + +export default Skeleton; + +const StyledSkeleton = styled.div<{ width: string; height: string }>` + ${paintSkeleton} + + ${({ width, height }) => css` + width: ${width}; + height: ${height}; + `} +`; diff --git a/frontend/src/components/@common/Skeleton/index.tsx b/frontend/src/components/@common/Skeleton/index.tsx new file mode 100644 index 000000000..63e5e4d7d --- /dev/null +++ b/frontend/src/components/@common/Skeleton/index.tsx @@ -0,0 +1,3 @@ +import Skeleton from './Skeleton'; + +export default Skeleton; diff --git a/frontend/src/components/@common/WaterMarkImage/WaterMarkImage.stories.tsx b/frontend/src/components/@common/WaterMarkImage/WaterMarkImage.stories.tsx new file mode 100644 index 000000000..3026f3220 --- /dev/null +++ b/frontend/src/components/@common/WaterMarkImage/WaterMarkImage.stories.tsx @@ -0,0 +1,18 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import WaterMarkImage from './WaterMarkImage'; + +const meta: Meta = { + title: 'WaterMarkImage', + component: WaterMarkImage, +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { + waterMark: '@d0dam', + imageUrl: 'https://picsum.photos/315/300', + }, +}; diff --git a/frontend/src/components/@common/WaterMarkImage/WaterMarkImage.tsx b/frontend/src/components/@common/WaterMarkImage/WaterMarkImage.tsx new file mode 100644 index 000000000..b84551b84 --- /dev/null +++ b/frontend/src/components/@common/WaterMarkImage/WaterMarkImage.tsx @@ -0,0 +1,51 @@ +import styled from 'styled-components'; +import { BORDER_RADIUS, FONT_SIZE, paintSkeleton } from '~/styles/common'; + +interface WaterMarkImageProps { + waterMark: string; + imageUrl: string; +} + +function WaterMarkImage({ waterMark, imageUrl }: WaterMarkImageProps) { + return ( + + + + + ); +} + +export default WaterMarkImage; + +const StyledWaterMarkImage = styled.div` + position: relative; + + width: 100%; + aspect-ratio: 1.05 / 1; + + height: auto; +`; + +const StyledImage = styled.img` + ${paintSkeleton} + display: block; + + aspect-ratio: 1.05 / 1; + object-fit: cover; + + width: 100%; +`; + +const StyledWaterMark = styled.div` + position: absolute; + top: 12px; + left: 12px; + + padding: 0.4rem 0.8rem; + + border-radius: ${BORDER_RADIUS.xs}; + background-color: var(--white); + + color: var(--black); + font-size: ${FONT_SIZE.sm}; +`; diff --git a/frontend/src/components/@common/WaterMarkImage/index.tsx b/frontend/src/components/@common/WaterMarkImage/index.tsx new file mode 100644 index 000000000..b45cee9d3 --- /dev/null +++ b/frontend/src/components/@common/WaterMarkImage/index.tsx @@ -0,0 +1,3 @@ +import WaterMarkImage from './WaterMarkImage'; + +export default WaterMarkImage; diff --git a/frontend/src/components/CategoryNavbar/CategoryNavbar.stories.tsx b/frontend/src/components/CategoryNavbar/CategoryNavbar.stories.tsx new file mode 100644 index 000000000..72d44cfde --- /dev/null +++ b/frontend/src/components/CategoryNavbar/CategoryNavbar.stories.tsx @@ -0,0 +1,67 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import CategoryNavbar from './CategoryNavbar'; +import FastFood from '~/assets/icons/fastFood.svg'; +import { RestaurantCategory } from '~/@types/restaurant.types'; + +interface Category { + label: RestaurantCategory; + icon: React.ReactNode; +} + +const categories: Category[] = [ + { + label: '일식당', + icon: , + }, + { + label: '한식', + icon: , + }, + { + label: '초밥,롤', + icon: , + }, + { + label: '생선회', + icon: , + }, + { + label: '양식', + icon: , + }, + { + label: '육류,고기요리', + icon: , + }, + { + label: '이자카야', + icon: , + }, + { + label: '돼지고기구이', + icon: , + }, + { + label: '요리주점', + icon: , + }, + { + label: '와인', + icon: , + }, +]; + +const meta: Meta = { + title: 'Selector/CategoryNavbar', + component: CategoryNavbar, +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { + categories, + }, +}; diff --git a/frontend/src/components/CategoryNavbar/CategoryNavbar.tsx b/frontend/src/components/CategoryNavbar/CategoryNavbar.tsx new file mode 100644 index 000000000..06a767329 --- /dev/null +++ b/frontend/src/components/CategoryNavbar/CategoryNavbar.tsx @@ -0,0 +1,55 @@ +import { useState } from 'react'; +import styled from 'styled-components'; +import NavItem from '~/components/@common/NavButton/NavButton'; +import { isEqual } from '~/utils/compare'; + +import type { RestaurantCategory } from '~/@types/restaurant.types'; + +interface Category { + label: RestaurantCategory; + icon: React.ReactNode; +} + +interface CategoryProps { + categories: Category[]; + externalOnClick?: (e?: React.MouseEvent) => void; +} + +function CategoryNavbar({ categories, externalOnClick }: CategoryProps) { + const [selected, setSelected] = useState('전체'); + + const clickCategory = (value: RestaurantCategory) => (event?: React.MouseEvent) => { + setSelected(value); + + if (externalOnClick) externalOnClick(event); + }; + + return ( + + {categories.map(({ icon, label }) => ( + + + + ))} + + ); +} + +export default CategoryNavbar; + +const StyledCategoryNavbarWrapper = styled.ul` + display: flex; + align-items: center; + + background: transparent; + + overflow-x: scroll; +`; + +const StyledNavItemButton = styled.button` + border: none; + background: transparent; + + cursor: pointer; + outline: none; +`; diff --git a/frontend/src/components/CategoryNavbar/index.tsx b/frontend/src/components/CategoryNavbar/index.tsx new file mode 100644 index 000000000..4b1e7d84c --- /dev/null +++ b/frontend/src/components/CategoryNavbar/index.tsx @@ -0,0 +1,3 @@ +import CategoryNavbar from '~/components/CategoryNavbar/CategoryNavbar'; + +export default CategoryNavbar; diff --git a/frontend/src/components/CelebBanner/CelebBanner.stories.tsx b/frontend/src/components/CelebBanner/CelebBanner.stories.tsx new file mode 100644 index 000000000..60bb7e75d --- /dev/null +++ b/frontend/src/components/CelebBanner/CelebBanner.stories.tsx @@ -0,0 +1,23 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import CelebBanner from './CelebBanner'; + +const meta: Meta = { + title: 'CelebBanner', + component: CelebBanner, +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { + name: '도담', + youtubeChannelName: '@d0dam', + subscriberCount: 650_000, + restaurantCount: 123, + youtubeChannelUrl: 'https://www.youtube.com/watch?v=D3lU6KokgVs', + profileImageUrl: 'https://avatars.githubusercontent.com/u/51052049?v=4', + backgroundImageUrl: null, + }, +}; diff --git a/frontend/src/components/CelebBanner/CelebBanner.tsx b/frontend/src/components/CelebBanner/CelebBanner.tsx new file mode 100644 index 000000000..9a78383cf --- /dev/null +++ b/frontend/src/components/CelebBanner/CelebBanner.tsx @@ -0,0 +1,89 @@ +import { styled, css } from 'styled-components'; +import TextButton from '../@common/Button'; +import ProfileImage from '../@common/ProfileImage'; +import { FONT_SIZE } from '~/styles/common'; + +interface CelebBannerProps { + name: string; + youtubeChannelName: string; + subscriberCount: number; + restaurantCount: number; + youtubeChannelUrl: string; + profileImageUrl: string; + backgroundImageUrl: string | null; +} + +function CelebBanner({ + name, + youtubeChannelName, + subscriberCount, + restaurantCount, + youtubeChannelUrl, + profileImageUrl, + backgroundImageUrl, +}: CelebBannerProps) { + const onClick = () => window.open(youtubeChannelUrl, '_blank'); + + return ( + + + + {name} + + {youtubeChannelName} 구독자 {subscriberCount / 10_000}만명 ∙ 음식점 {restaurantCount}개 + + + + + ); +} + +export default CelebBanner; + +const StyledContainer = styled.section<{ background: string }>` + display: flex; + justify-content: space-around; + align-items: center; + + width: 100%; + + padding: 6.4rem 0; + + ${({ background }) => + background + ? css` + background-image: url(${background}); + ` + : css` + background-color: var(--primary-4); + `}; + + & > button { + width: 260px; + } +`; + +const StyledCelebInfo = styled.div` + display: grid; + grid-template-columns: auto 1fr; + + gap: 2.4rem; + + & > *:first-child { + grid-area: 1 / 1 / span 2 / span 1; + } +`; + +const StyledName = styled.h2` + grid-area: 1 / 2 / span 1 / span 1; + align-self: end; + + color: var(--white); +`; + +const StyledDetail = styled.div` + grid-area: 2 / 2 / span 1 / span 1; + + color: var(--white); + font-size: ${FONT_SIZE.sm}; +`; diff --git a/frontend/src/components/CelebBanner/index.tsx b/frontend/src/components/CelebBanner/index.tsx new file mode 100644 index 000000000..a8433e6fa --- /dev/null +++ b/frontend/src/components/CelebBanner/index.tsx @@ -0,0 +1,3 @@ +import CelebBanner from './CelebBanner'; + +export default CelebBanner; diff --git a/frontend/src/components/CelebDropDown/CelebDropDown.stories.tsx b/frontend/src/components/CelebDropDown/CelebDropDown.stories.tsx new file mode 100644 index 000000000..26f4dabcd --- /dev/null +++ b/frontend/src/components/CelebDropDown/CelebDropDown.stories.tsx @@ -0,0 +1,53 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import CelebDropDown from './CelebDropDown'; + +const meta: Meta = { + title: 'Selector/CelebDropDown', + component: CelebDropDown, +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { + celebs: [ + { + id: 1, + name: '히밥', + youtubeChannelName: '@heebab', + profileImageUrl: + 'https://yt3.googleusercontent.com/sL5ugPfl9vvwRwhf6l5APY__BZBw8qWiwgHs-uVsMPFoD5-a4opTJIcRSyrY8aY5LEESOMWJ=s176-c-k-c0x00ffffff-no-rj', + }, + { + id: 2, + name: '정찬성', + youtubeChannelName: '@Korean_zzombi', + profileImageUrl: + 'https://yt3.googleusercontent.com/sL5ugPfl9vvwRwhf6l5APY__BZBw8qWiwgHs-uVsMPFoD5-a4opTJIcRSyrY8aY5LEESOMWJ=s176-c-k-c0x00ffffff-no-rj', + }, + { + id: 3, + name: '정찬', + youtubeChannelName: '@Korean_zzombi', + profileImageUrl: + 'https://yt3.googleusercontent.com/sL5ugPfl9vvwRwhf6l5APY__BZBw8qWiwgHs-uVsMPFoD5-a4opTJIcRSyrY8aY5LEESOMWJ=s176-c-k-c0x00ffffff-no-rj', + }, + { + id: 4, + name: '정성', + youtubeChannelName: '@Korean_zzombi', + profileImageUrl: + 'https://yt3.googleusercontent.com/sL5ugPfl9vvwRwhf6l5APY__BZBw8qWiwgHs-uVsMPFoD5-a4opTJIcRSyrY8aY5LEESOMWJ=s176-c-k-c0x00ffffff-no-rj', + }, + { + id: 5, + name: '정찬성1', + youtubeChannelName: '@Korean_zzombi', + profileImageUrl: + 'https://yt3.googleusercontent.com/sL5ugPfl9vvwRwhf6l5APY__BZBw8qWiwgHs-uVsMPFoD5-a4opTJIcRSyrY8aY5LEESOMWJ=s176-c-k-c0x00ffffff-no-rj', + }, + ], + }, +}; diff --git a/frontend/src/components/CelebDropDown/CelebDropDown.tsx b/frontend/src/components/CelebDropDown/CelebDropDown.tsx new file mode 100644 index 000000000..5abb8439a --- /dev/null +++ b/frontend/src/components/CelebDropDown/CelebDropDown.tsx @@ -0,0 +1,121 @@ +import styled from 'styled-components'; +import { MouseEvent, useState } from 'react'; + +import CelebIcon from '~/assets/icons/celeb.svg'; +import SearchIcon from '~/assets/icons/search.svg'; +import { isEqual } from '~/utils/compare'; +import ProfileImage from '~/components/@common/ProfileImage'; +import NavItem from '~/components/@common/NavButton/NavButton'; +import useBooleanState from '~/hooks/useBooleanState'; + +import type { Celeb } from '~/@types/celeb.types'; + +interface DropDownProps { + celebs: Celeb[]; + isOpen?: boolean; + externalOnClick?: (e?: MouseEvent) => void; +} + +function CelebDropDown({ celebs, externalOnClick, isOpen = false }: DropDownProps) { + const [selected, setSelected] = useState('전체'); + const { value: isShow, toggle: onToggleDropDown, setFalse: onCloseDropDown } = useBooleanState(isOpen); + + const onSelection = (celeb: Celeb['name']) => (event?: MouseEvent) => { + setSelected(celeb); + + if (externalOnClick) externalOnClick(event); + }; + + return ( + + + } isShow={isShow} /> + + + {isShow && ( + + + {celebs.map(({ id, name, profileImageUrl }) => ( + +
+ + {name} +
+ {isEqual(selected, name) && } +
+ ))} +
+
+ )} +
+ ); +} + +export default CelebDropDown; + +const StyledNavItemWrapper = styled.button` + border: none; + background: transparent; + + cursor: pointer; + outline: none; +`; + +const StyledCelebDropDown = styled.div` + position: relative; +`; + +const StyledDropDownWrapper = styled.ul` + display: flex; + flex-direction: column; + align-content: center; + + position: absolute; + top: calc(100% + 16px); + left: 18px; + + width: 216px; + height: 176px; + + padding: 1.8rem 0; + + border-radius: 10px; + background: white; + + box-shadow: var(--shadow); +`; + +const StyledSelectContainer = styled.div` + width: 100%; + height: 150px; + + background: transparent; + + overflow-y: auto; +`; + +const StyledDropDownOption = styled.li` + display: flex; + justify-content: space-between; + align-items: center; + + height: 44px; + + margin: 0 1.8rem; + + cursor: pointer; + + & + & { + border-bottom: 1px solid var(--gray-1); + } + + &:first-child { + border-bottom: 1px solid var(--gray-1); + } + + & > div { + display: flex; + align-items: center; + gap: 0.4rem; + } +`; diff --git a/frontend/src/components/CelebDropDown/index.tsx b/frontend/src/components/CelebDropDown/index.tsx new file mode 100644 index 000000000..53c869e89 --- /dev/null +++ b/frontend/src/components/CelebDropDown/index.tsx @@ -0,0 +1,3 @@ +import DropDown from '~/components/CelebDropDown/CelebDropDown'; + +export default DropDown; diff --git a/frontend/src/components/InfoDropDown/InfoDropDown.stories.tsx b/frontend/src/components/InfoDropDown/InfoDropDown.stories.tsx new file mode 100644 index 000000000..1c62ce2f5 --- /dev/null +++ b/frontend/src/components/InfoDropDown/InfoDropDown.stories.tsx @@ -0,0 +1,36 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import InfoDropDown from './InfoDropDown'; + +const meta: Meta = { + title: 'Selector/InfoDropDown', + component: InfoDropDown, +}; + +export default meta; + +const options = [ + { + id: 1, + value: '로그인', + }, + { + id: 2, + value: '회원가입', + }, + { + id: 3, + value: '기타', + }, + { + id: 4, + value: '등 등', + }, +]; + +type Story = StoryObj; + +export const Default: Story = { + args: { + options, + }, +}; diff --git a/frontend/src/components/InfoDropDown/InfoDropDown.tsx b/frontend/src/components/InfoDropDown/InfoDropDown.tsx new file mode 100644 index 000000000..7fb6db9db --- /dev/null +++ b/frontend/src/components/InfoDropDown/InfoDropDown.tsx @@ -0,0 +1,120 @@ +import styled from 'styled-components'; +import { MouseEvent } from 'react'; +import InfoButton from '~/components/@common/InfoButton'; +import useBooleanState from '~/hooks/useBooleanState'; + +interface Option { + id: number; + value: string; +} + +interface DropDownProps { + options: Option[]; + isOpen?: boolean; + externalOnClick?: (e?: React.MouseEvent) => void; + label: string; +} + +function InfoDropDown({ options, externalOnClick, isOpen = false, label }: DropDownProps) { + const { value: isShow, toggle: onToggleDropDown, setFalse: onCloseDropDown } = useBooleanState(isOpen); + + const onSelection = () => (event?: MouseEvent) => { + if (externalOnClick) externalOnClick(event); + }; + + return ( + + + + + + {isShow && ( + + + {options.map(({ id, value }) => ( + + {value} + + ))} + + + )} + + ); +} + +export default InfoDropDown; + +const StyledInfoButtonWrapper = styled.button` + border: none; + background: transparent; + + cursor: pointer; + outline: none; +`; + +const StyledInfoDropDown = styled.div` + display: relative; + + z-index: 100000000; + + width: 77px; + height: 42px; +`; + +const StyledDropDownWrapper = styled.ul` + display: flex; + flex-direction: column; + align-content: center; + + position: absolute; + top: calc(100% - 8px); + right: 18px; + + width: 216px; + height: 176px; + + padding: 1.8rem 0; + + border-radius: 10px; + background: white; + + font-size: 1.4rem; + + box-shadow: var(--shadow); +`; + +const StyledSelectContainer = styled.div` + width: 100%; + height: 150px; + + background: transparent; + + overflow-y: auto; +`; + +const StyledDropDownOption = styled.li` + display: flex; + justify-content: space-between; + align-items: center; + + height: 44px; + + margin: 0 1.8rem; + + cursor: pointer; + + & + & { + border-bottom: 1px solid var(--gray-1); + } + + &:first-child { + border-bottom: 1px solid var(--gray-1); + } + + & > div { + display: flex; + align-items: center; + gap: 0.4rem; + } +`; diff --git a/frontend/src/components/InfoDropDown/index.tsx b/frontend/src/components/InfoDropDown/index.tsx new file mode 100644 index 000000000..e4ff6498b --- /dev/null +++ b/frontend/src/components/InfoDropDown/index.tsx @@ -0,0 +1,3 @@ +import InfoDropDown from '~/components/InfoDropDown/InfoDropDown'; + +export default InfoDropDown; diff --git a/frontend/src/components/LoginModalContent/LoginModalContent.stories.tsx b/frontend/src/components/LoginModalContent/LoginModalContent.stories.tsx new file mode 100644 index 000000000..48f398ca7 --- /dev/null +++ b/frontend/src/components/LoginModalContent/LoginModalContent.stories.tsx @@ -0,0 +1,25 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import { BrowserRouter, Route, Routes } from 'react-router-dom'; +import LoginModalContent from './LoginModalContent'; + +const meta: Meta = { + title: 'Modal/LoginModalContent', + component: LoginModalContent, + decorators: [ + Story => ( + + + } /> + + + ), + ], +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: {}, +}; diff --git a/frontend/src/components/LoginModalContent/LoginModalContent.tsx b/frontend/src/components/LoginModalContent/LoginModalContent.tsx new file mode 100644 index 000000000..a7c7eef30 --- /dev/null +++ b/frontend/src/components/LoginModalContent/LoginModalContent.tsx @@ -0,0 +1,20 @@ +import styled from 'styled-components'; +import LoginButton from '~/components/@common/LoginButton'; + +function LoginModalContent() { + return ( + + + + + + ); +} + +export default LoginModalContent; + +const StyledLoginModalContent = styled.div` + a + a { + margin-top: 1.6rem; + } +`; diff --git a/frontend/src/components/LoginModalContent/index.tsx b/frontend/src/components/LoginModalContent/index.tsx new file mode 100644 index 000000000..c632d277c --- /dev/null +++ b/frontend/src/components/LoginModalContent/index.tsx @@ -0,0 +1,3 @@ +import LoginModalContent from '~/components/LoginModalContent/LoginModalContent'; + +export default LoginModalContent; diff --git a/frontend/src/components/MapModal/MapModal.stories.tsx b/frontend/src/components/MapModal/MapModal.stories.tsx new file mode 100644 index 000000000..35a81b377 --- /dev/null +++ b/frontend/src/components/MapModal/MapModal.stories.tsx @@ -0,0 +1,37 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import MapModal from './MapModal'; + +const meta: Meta = { + title: 'MapModal', + component: MapModal, +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { + modalOpen: true, + isVisible: false, + onClickExit: () => {}, + modalRestaurantInfo: { + id: 1, + name: '김천재의육회반한연어 신논현본점', + category: '요리주점', + roadAddress: '서울 강남구 강남대로118길 47 2층', + phoneNumber: '0507-1415-1113', + naverMapUrl: + 'https://map.naver.com/v5/entry/place/38252334?lng=127.02682069999999&lat=37.50750299999999&placePath=%2Fhome&entry=plt', + + images: [ + { + id: 1, + name: 'RawFishEater_김천재의육회반한연어_신논현본점.png', + author: '@RawFishEater', + sns: '@RawFishEater', + }, + ], + }, + }, +}; diff --git a/frontend/src/components/MapModal/MapModal.tsx b/frontend/src/components/MapModal/MapModal.tsx new file mode 100644 index 000000000..1b5240ce0 --- /dev/null +++ b/frontend/src/components/MapModal/MapModal.tsx @@ -0,0 +1,84 @@ +import { keyframes, styled } from 'styled-components'; +import { BORDER_RADIUS } from '~/styles/common'; +import ExitButton from '../../assets/icons/exit.svg'; +import type { RestaurantModalInfo } from '~/@types/restaurant.types'; +import MapModalContent from '../MapModalContent'; + +type ModalProps = { + modalOpen: boolean; + isVisible: boolean; + onClickExit: () => void; + modalRestaurantInfo: RestaurantModalInfo; +}; + +function MapModal({ modalOpen, onClickExit, isVisible, modalRestaurantInfo }: ModalProps) { + return ( + + + + + + + + + ); +} + +export default MapModal; + +const StyledModalContent = styled.div<{ modalOpen: boolean }>` + position: absolute; + bottom: 0; + z-index: 1000; + + width: 50%; + + padding: 2rem; + + border-radius: ${BORDER_RADIUS.sm} ${BORDER_RADIUS.sm} 0 0; + background: var(--white); + + animation: ${({ modalOpen }) => (modalOpen ? slideUp : slideDown)} 0.4s ease-out; +`; + +const StyledExitButton = styled.button` + position: absolute; + top: -28px; + right: 0; + + border: none; + background-color: transparent; +`; + +const slideUp = keyframes` + 0% { + transform: translateY(100%); + opacity: 0; + } + 100% { + transform: translateY(0); + opacity: 1; + } +`; + +const slideDown = keyframes` + 0% { + transform: translateY(0%); + opacity: 1; + } + 100% { + transform: translateY(100%); + opacity: 0; + } +`; + +const StyledMapModalContainer = styled.div<{ modalOpen: boolean; isVisible: boolean }>` + display: flex; + justify-content: center; + + position: relative; + + width: 100%; + + visibility: ${({ modalOpen, isVisible }) => (modalOpen || isVisible ? 'visible' : 'hidden')}; +`; diff --git a/frontend/src/components/MapModal/index.tsx b/frontend/src/components/MapModal/index.tsx new file mode 100644 index 000000000..b62361221 --- /dev/null +++ b/frontend/src/components/MapModal/index.tsx @@ -0,0 +1,3 @@ +import MapModal from './MapModal'; + +export default MapModal; diff --git a/frontend/src/components/MapModalContent/MapModalContent.tsx b/frontend/src/components/MapModalContent/MapModalContent.tsx new file mode 100644 index 000000000..9b67d30b8 --- /dev/null +++ b/frontend/src/components/MapModalContent/MapModalContent.tsx @@ -0,0 +1,62 @@ +import { styled } from 'styled-components'; +import { RestaurantModalInfo } from '~/@types/restaurant.types'; +import { BORDER_RADIUS, FONT_SIZE } from '~/styles/common'; +import TextButton from '../@common/Button'; + +import { BASE_URL } from '~/App'; + +interface MapModalContentProps { + content: RestaurantModalInfo; +} + +function MapModalContent({ content }: MapModalContentProps) { + const { name, roadAddress, phoneNumber, images, naverMapUrl } = content; + return ( + + +
+
{name}
+
{roadAddress}
+
{phoneNumber}
+
+ +
+ { + window.open(naverMapUrl, '_blank'); + }} + /> +
+ ); +} + +export default MapModalContent; + +const StyledMapModalContent = styled.div` + display: flex; + flex-direction: column; + gap: 2.4rem; +`; + +const StyledRestaurantInfo = styled.div` + display: flex; + justify-content: space-between; + + & > div:first-child { + display: flex; + flex-direction: column; + gap: 0.8rem; + + font-size: ${FONT_SIZE.sm}; + } +`; + +const StyledRestaurantImage = styled.img` + width: 64px; + height: 64px; + + border-radius: ${BORDER_RADIUS.sm}; +`; diff --git a/frontend/src/components/MapModalContent/index.tsx b/frontend/src/components/MapModalContent/index.tsx new file mode 100644 index 000000000..f2fb14ff1 --- /dev/null +++ b/frontend/src/components/MapModalContent/index.tsx @@ -0,0 +1,3 @@ +import MapModalContent from './MapModalContent'; + +export default MapModalContent; diff --git a/frontend/src/components/RestaurantCard/RestaurantCard.stories.tsx b/frontend/src/components/RestaurantCard/RestaurantCard.stories.tsx new file mode 100644 index 000000000..b8fae7b73 --- /dev/null +++ b/frontend/src/components/RestaurantCard/RestaurantCard.stories.tsx @@ -0,0 +1,51 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import RestaurantCard from './RestaurantCard'; + +const meta: Meta = { + title: 'RestaurantCard', + component: RestaurantCard, +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { + restaurant: { + id: 1, + name: '스시렌', + category: '일식당', + roadAddress: '서울 강남구 선릉로146길 27-8 2F', + lat: 37.5222779, + lng: 127.0423149, + phoneNumber: '010-8072-2032', + naverMapUrl: 'https://naver.me/58HxhMsl', + images: [ + { + id: 1, + name: 'https://search.pstatic.net/common/?src=http%3A%2F%2Fblogfiles.naver.net%2FMjAyMzAzMjhfMjY1%2FMDAxNjc5OTk0NjYxMDI5.Mo-i3h1Q8kR4yi0hOL2lQZdA6t6uiQ599aBNnnJ83q8g._NGlnMeHtVCiJVWenUbbtICefoddkW1Wg0g3PCxn9Q4g.JPEG.twinkle_paul%2F100V7467-2.jpg', + author: '@mheebab', + sns: 'YOUTUBE', + }, + ], + }, + celebs: [ + { + id: 1, + name: '히밥', + youtubeChannelName: '@heebab', + profileImageUrl: + 'https://yt3.googleusercontent.com/sL5ugPfl9vvwRwhf6l5APY__BZBw8qWiwgHs-uVsMPFoD5-a4opTJIcRSyrY8aY5LEESOMWJ=s176-c-k-c0x00ffffff-no-rj', + }, + { + id: 2, + name: '히밥', + youtubeChannelName: '@heebab', + profileImageUrl: + 'https://yt3.googleusercontent.com/sL5ugPfl9vvwRwhf6l5APY__BZBw8qWiwgHs-uVsMPFoD5-a4opTJIcRSyrY8aY5LEESOMWJ=s176-c-k-c0x00ffffff-no-rj', + }, + ], + size: '42px', + }, +}; diff --git a/frontend/src/components/RestaurantCard/RestaurantCard.tsx b/frontend/src/components/RestaurantCard/RestaurantCard.tsx new file mode 100644 index 000000000..8e9466dd9 --- /dev/null +++ b/frontend/src/components/RestaurantCard/RestaurantCard.tsx @@ -0,0 +1,121 @@ +import { styled } from 'styled-components'; +import ImageCarousel from '../@common/ImageCarousel'; +import Love from '~/assets/icons/love.svg'; +import ProfileImageList from '../@common/ProfileImageList'; +import { FONT_SIZE, truncateText } from '~/styles/common'; + +import type { Celeb } from '~/@types/celeb.types'; +import type { Restaurant } from '~/@types/restaurant.types'; + +interface RestaurantCardProps { + restaurant: Restaurant; + celebs?: Celeb[]; + size?: string; + type?: 'list' | 'map'; + onClick?: React.MouseEventHandler; + setHoveredId?: React.Dispatch>; +} + +function RestaurantCard({ + restaurant, + celebs, + size, + type = 'list', + onClick = () => {}, + setHoveredId = () => {}, +}: RestaurantCardProps) { + const { images, name, roadAddress, category, phoneNumber } = restaurant; + + const onMouseEnter = () => { + setHoveredId(restaurant.id); + }; + + const onMouseLeave = () => { + setHoveredId(null); + }; + + return ( + + + + + + +
+ + {category} + {name} + {roadAddress} + {phoneNumber} + + + {celebs && } + +
+
+ ); +} + +export default RestaurantCard; + +const StyledContainer = styled.div` + display: flex; + flex-direction: column; + justify-content: start; + gap: 0.8rem; + + width: 100%; + height: 100%; + + & > section { + display: flex; + justify-content: space-between; + } + + cursor: pointer; +`; + +const StyledImageViewer = styled.div` + position: relative; +`; + +const StyledInfo = styled.div` + display: flex; + flex-direction: column; + gap: 0.6rem; + + position: relative; + + width: 100%; + + padding: 0.4rem; +`; + +const StyledName = styled.h5` + ${truncateText(1)} +`; + +const StyledAddress = styled.span` + ${truncateText(1)} + color: var(--gray-4); + font-size: ${FONT_SIZE.md}; +`; + +const StyledCategory = styled.span` + color: var(--gray-3); + font-size: ${FONT_SIZE.sm}; +`; + +const StyledProfileImageSection = styled.div` + align-self: flex-end; +`; + +const LikeButton = styled.button` + position: absolute; + top: 12px; + right: 12px; + + border: none; + background-color: transparent; +`; diff --git a/frontend/src/components/RestaurantCard/RestaurantCardSkeleton.tsx b/frontend/src/components/RestaurantCard/RestaurantCardSkeleton.tsx new file mode 100644 index 000000000..92ff4b945 --- /dev/null +++ b/frontend/src/components/RestaurantCard/RestaurantCardSkeleton.tsx @@ -0,0 +1,92 @@ +import { styled } from 'styled-components'; +import ProfileImageSkeleton from '../@common/ProfileImage/ProfileImageSkeleton'; +import { BORDER_RADIUS, paintSkeleton } from '~/styles/common'; + +function RestaurantCardSkeleton() { + return ( + + +
+ + + + + + + + + +
+
+ ); +} + +export default RestaurantCardSkeleton; + +const StyledContainer = styled.div` + display: flex; + flex-direction: column; + justify-content: start; + gap: 0.8rem; + + width: 100%; + height: 100%; + + & > section { + display: flex; + justify-content: space-between; + } + + cursor: pointer; +`; + +const StyledImage = styled.div` + ${paintSkeleton} + width: 100%; + aspect-ratio: 1.05 / 1; + + object-fit: cover; + + border-radius: ${BORDER_RADIUS.md}; +`; + +const StyledInfo = styled.div` + display: flex; + flex: 1; + flex-direction: column; + gap: 0.4rem; + + position: relative; + + width: 100%; + + padding: 0.4rem; +`; + +const StyledName = styled.h5` + ${paintSkeleton} + width: 100%; + height: 20px; + + border-radius: ${BORDER_RADIUS.xs}; +`; + +const StyledAddress = styled.span` + ${paintSkeleton} + width: 50%; + height: 12px; + + border-radius: ${BORDER_RADIUS.xs}; +`; + +const StyledCategory = styled.span` + ${paintSkeleton} + width: 40%; + height: 12px; + + border-radius: ${BORDER_RADIUS.xs}; +`; + +const StyledProfileImageSection = styled.div` + align-self: flex-end; +`; diff --git a/frontend/src/components/RestaurantCard/index.tsx b/frontend/src/components/RestaurantCard/index.tsx new file mode 100644 index 000000000..7ba5a9924 --- /dev/null +++ b/frontend/src/components/RestaurantCard/index.tsx @@ -0,0 +1,3 @@ +import RestaurantCard from './RestaurantCard'; + +export default RestaurantCard; diff --git a/frontend/src/components/RestaurantCardList/RestaurantCardList.tsx b/frontend/src/components/RestaurantCardList/RestaurantCardList.tsx new file mode 100644 index 000000000..9cdf26be4 --- /dev/null +++ b/frontend/src/components/RestaurantCardList/RestaurantCardList.tsx @@ -0,0 +1,112 @@ +import { styled, css } from 'styled-components'; +import React, { useEffect, useState } from 'react'; +import RestaurantCard from '../RestaurantCard'; +import { FONT_SIZE } from '~/styles/common'; +import RestaurantCardListSkeleton from './RestaurantCardListSkeleton'; + +import type { RestaurantData, RestaurantListData } from '~/@types/api.types'; +import PageNationBar from '../@common/PageNationBar'; +import useMediaQuery from '~/hooks/useMediaQuery'; + +interface RestaurantCardListProps { + restaurantDataList: RestaurantListData | null; + loading: boolean; + setHoveredId: React.Dispatch>; + setCurrentPage: React.Dispatch>; +} + +function RestaurantCardList({ restaurantDataList, loading, setHoveredId, setCurrentPage }: RestaurantCardListProps) { + const { isMobile } = useMediaQuery(); + const [prevCardNumber, setPrevCardNumber] = useState(18); + + const clickPageButton: React.MouseEventHandler = e => { + e.stopPropagation(); + const pageValue = e.currentTarget.value; + window.scrollTo(0, 0); + + if (pageValue === 'prev') return setCurrentPage(prev => prev - 1); + if (pageValue === 'next') return setCurrentPage(prev => prev + 1); + return setCurrentPage(Number(pageValue) - 1); + }; + + useEffect(() => { + if (restaurantDataList) setPrevCardNumber(restaurantDataList.currentElementsCount); + }, [restaurantDataList?.currentElementsCount]); + + if (!restaurantDataList || loading) + return ( + + {' '} + {restaurantDataList && ( + + )} + + ); + + return ( + + {!isMobile && 음식점 수 {restaurantDataList.totalElementsCount} 개} + + {restaurantDataList.content?.map(({ celebs, ...restaurant }: RestaurantData) => ( + + ))} + + + + ); +} + +export default React.memo(RestaurantCardList); + +const StyledSkeleton = styled.div` + padding-bottom: 3.2rem; +`; + +const StyledRestaurantCardListContainer = styled.div` + display: flex; + flex-direction: column; + gap: 3.2rem; + + margin: 3.2rem 2.4rem; +`; + +const StyledCardListHeader = styled.p` + font-size: ${FONT_SIZE.md}; + font-weight: 700; +`; + +const StyledRestaurantCardList = styled.div<{ isMobile: boolean }>` + display: grid; + gap: 4rem 2.4rem; + + height: 100%; + + grid-template-columns: 1fr 1fr 1fr; + + @media screen and (width <= 1240px) { + grid-template-columns: 1fr 1fr; + } + + ${({ isMobile }) => + isMobile + ? css` + grid-template-columns: 1fr 1fr; + + @media screen and (width <= 550px) { + grid-template-columns: 1fr; + } + ` + : css` + @media screen and (width <= 743px) { + grid-template-columns: 1fr; + } + `} +`; diff --git a/frontend/src/components/RestaurantCardList/RestaurantCardListSkeleton.tsx b/frontend/src/components/RestaurantCardList/RestaurantCardListSkeleton.tsx new file mode 100644 index 000000000..c50051995 --- /dev/null +++ b/frontend/src/components/RestaurantCardList/RestaurantCardListSkeleton.tsx @@ -0,0 +1,53 @@ +import { styled } from 'styled-components'; +import RestaurantCardSkeleton from '../RestaurantCard/RestaurantCardSkeleton'; +import { BORDER_RADIUS, paintSkeleton } from '~/styles/common'; +import useMediaQuery from '~/hooks/useMediaQuery'; + +interface RestaurantCardListSkeletonProps { + cardNumber: number; +} + +function RestaurantCardListSkeleton({ cardNumber }: RestaurantCardListSkeletonProps) { + const { isMobile } = useMediaQuery(); + + return ( +
+ {!isMobile && } + + {Array.from({ length: cardNumber }, () => ( + + ))} + +
+ ); +} + +export default RestaurantCardListSkeleton; + +const StyledCardListHeader = styled.p` + ${paintSkeleton} + width: 35%; + height: 16px; + + margin: 3.2rem 2.4rem; + + border-radius: ${BORDER_RADIUS.xs}; +`; + +const StyledRestaurantCardList = styled.div` + display: grid; + gap: 4rem 2.4rem; + + height: 100%; + + margin: 0 2.4rem; + grid-template-columns: 1fr 1fr 1fr; + + @media screen and (width <= 1240px) { + grid-template-columns: 1fr 1fr; + } + + @media screen and (width <= 743px) { + grid-template-columns: 1fr; + } +`; diff --git a/frontend/src/components/RestaurantCardList/index.tsx b/frontend/src/components/RestaurantCardList/index.tsx new file mode 100644 index 000000000..0f31b4b56 --- /dev/null +++ b/frontend/src/components/RestaurantCardList/index.tsx @@ -0,0 +1,3 @@ +import RestaurantCardList from './RestaurantCardList'; + +export default RestaurantCardList; diff --git a/frontend/src/components/VideoPreview/VideoPreview.stories.tsx b/frontend/src/components/VideoPreview/VideoPreview.stories.tsx new file mode 100644 index 000000000..ccf9af876 --- /dev/null +++ b/frontend/src/components/VideoPreview/VideoPreview.stories.tsx @@ -0,0 +1,39 @@ +import type { Meta, StoryObj } from '@storybook/react'; +import VideoPreview from './VideoPreview'; + +const meta: Meta = { + title: 'VideoPreview', + component: VideoPreview, +}; + +export default meta; + +type Story = StoryObj; + +export const Default: Story = { + args: { + title: 'ENG) 7500원에 돈가스 무한리필??? 대학교 근처 무한리필 돈까스 집 돈까스 먹방', + celebName: '히밥 @hebeap', + viewCount: 6_3000, + videoUrl: 'https://www.youtube.com/embed/D3lU6KokgVs?autoplay=1', + thumbnailUrl: 'https://img.youtube.com/vi/D3lU6KokgVs/mqdefault.jpg', + uploadDate: '2023-07-02T12:00:23Z', + profileImageUrl: + 'https://yt3.ggpht.com/sL5ugPfl9vvwRwhf6l5APY__BZBw8qWiwgHs-uVsMPFoD5-a4opTJIcRSyrY8aY5LEESOMWJ=s88-c-k-c0x00ffffff-no-rj', + }, +}; + +export const TextOverFlow: Story = { + args: { + title: + 'ENG) 7500원에 돈가스 무한리필??? 대학교 근처 무한리필 돈까스 집 돈까스 먹방 ENG) 7500원에 돈가스 무한리필??? 대학교 근처 무한리필 돈까스 집 돈까스 먹방 ENG) 7500원에 돈가스 무한리필??? 대학교 근처 무한리필 돈까스 집 돈까스 먹방', + celebName: + '히밥 @hebeap 히밥 @hebeap 히밥 @hebeap 히밥 @hebeap 히밥 @hebeap 히밥 @hebeap 히밥 @hebeap 히밥 @hebeap 히밥 @hebeap', + viewCount: 6_3000, + videoUrl: 'https://www.youtube.com/embed/D3lU6KokgVs?autoplay=1', + thumbnailUrl: 'https://img.youtube.com/vi/D3lU6KokgVs/mqdefault.jpg', + uploadDate: '2023-07-02T12:00:23Z', + profileImageUrl: + 'https://yt3.ggpht.com/sL5ugPfl9vvwRwhf6l5APY__BZBw8qWiwgHs-uVsMPFoD5-a4opTJIcRSyrY8aY5LEESOMWJ=s88-c-k-c0x00ffffff-no-rj', + }, +}; diff --git a/frontend/src/components/VideoPreview/VideoPreview.tsx b/frontend/src/components/VideoPreview/VideoPreview.tsx new file mode 100644 index 000000000..4b3c261ad --- /dev/null +++ b/frontend/src/components/VideoPreview/VideoPreview.tsx @@ -0,0 +1,123 @@ +import { styled } from 'styled-components'; +import ProfileImage from '../@common/ProfileImage'; +import { BORDER_RADIUS, FONT_SIZE, truncateText } from '~/styles/common'; +import formatDateToKorean from '~/utils/formatDateToKorean'; +import useBooleanState from '~/hooks/useBooleanState'; + +interface VideoPreviewProps { + title: string; + celebName: string; + videoUrl: string; + thumbnailUrl: string; + profileImageUrl: string; + uploadDate: string; + viewCount: number; +} + +function VideoPreview({ + title, + celebName, + videoUrl, + thumbnailUrl, + viewCount, + uploadDate, + profileImageUrl, +}: VideoPreviewProps) { + const { value: isClicked, setTrue: setClickTrue } = useBooleanState(false); + + return ( + + {isClicked ? ( +