Skip to content

Commit

Permalink
release: frontend v2 (#394)
Browse files Browse the repository at this point in the history
* feat: 좋아요 및 팝업 컴포넌트 구현 (#284)

* feat: Axios interceptor 추상화 클래스 구현 (#228)

* feat: PopUp 컴포넌트 구현 (#228)

* feat: msw를 활용한 좋아요 기능 구현 (#228)

* fix: header에 제대로 된 cookie 값 입력 (#228)

* feat: Map Overlay에 하트 모양 좋아요 표시 추가 (#228)

* fix: 페이지 focus 될 때 마다 PopUp 뜨는 오류 해결 (#228)

* fix: getRestaurant 리턴 타입 수정 (#228)

distance 속성 추가

* fix: Modal 취소 버튼 cursor:pointer 속성 추가 (#228)

* fix: dev 모드 설정 변경 (#228)

export const SERVER_URL = PROD ? `${process.env.BASE_URL}/api/` : '/'; 구문 삭제

* style: PopUp 버튼 스타일 수정 (#228)

요청이 실패했을 때 사진 제거

* refactor: 실제 요청과 msw 요청 시 axios 인스턴스 구분(#228)

* feat: 4xx 관련 에러 일 경우 로그인 창 띄우는 기능 추가 (#228)

* refactor: RestaurantData 타입 수정으로 인한 데이터 수정 (#228)

* feat: MSW 좋아요, 음식점 리스트 관련 환경 셋팅 (#228)

* feat: RestaurantCard에 모달 기능 추가 (#228)

* feat: MSW 관련 함수 적용 (#228)

* fix: MSW 요청 production 요청으로 변경 (#228)

* fix: 웹 브라우저 쿠키 설정 (#228)

* chore: 프론트엔드 cd 코드 수정 (#307) (#308)

* style: 자동배포 테스트를 위한 주석 제거 (#307)

* fix: oauth 인증 안되는 오류 잡기 (#310)

* chore: 프론트엔드 cd 코드 수정 (#307)

* fix: header에 cookie가 적용되지 않는 에러 해결 (#309)

* fix: interceptor를 활용해 cookie 헤더 넣기 (#309)

* feat: 지역 검색 기능  (#285)

* feat: 검색창 UI 구현 (#272)

* feat: 검색창 기능 구현 (#272)

* refactor: 지도상태 전역으로 분리 (#272)

zoom, boundary 분리

* fix: 로고 Import 에러 처리 (#272)

* refactor: font size 및 box shadow 디자인 시스템 적용 (#272)

* design: 검색창 마크업 수정 (#272)

* feat: 자동완성 설정 적용 (#272)

대한민국 내 검색, 지역만 검색가능

* style: 불필요한 코드 제거 (#272)

* feat: 검색창에서 enter시 자동으로 첫번째 검색어로 검색 (#272)

* feat: 위시리스트 페이지 구현 (#312)

* feat: Axios interceptor 추상화 클래스 구현 (#228)

* feat: PopUp 컴포넌트 구현 (#228)

* feat: msw를 활용한 좋아요 기능 구현 (#228)

* fix: header에 제대로 된 cookie 값 입력 (#228)

* feat: Map Overlay에 하트 모양 좋아요 표시 추가 (#228)

* feat: wishList 페이지 구현 (#228)

* fix: 페이지 focus 될 때 마다 PopUp 뜨는 오류 해결 (#228)

* fix: getRestaurant 리턴 타입 수정 (#228)

distance 속성 추가

* fix: Modal 취소 버튼 cursor:pointer 속성 추가 (#228)

* fix: dev 모드 설정 변경 (#228)

export const SERVER_URL = PROD ? `${process.env.BASE_URL}/api/` : '/'; 구문 삭제

* style: PopUp 버튼 스타일 수정 (#228)

요청이 실패했을 때 사진 제거

* refactor: 실제 요청과 msw 요청 시 axios 인스턴스 구분(#228)

* feat: 4xx 관련 에러 일 경우 로그인 창 띄우는 기능 추가 (#228)

* refactor: RestaurantData 타입 수정으로 인한 데이터 수정 (#228)

* feat: MSW 좋아요, 음식점 리스트 관련 환경 셋팅 (#228)

* feat: RestaurantCard에 모달 기능 추가 (#228)

* feat: MSW 관련 함수 적용 (#228)

* fix: MSW 요청 production 요청으로 변경 (#228)

* fix: 웹 브라우저 쿠키 설정 (#228)

* feat: 위시리스트 관련 handler 구현 (#290)

* feat: InfoDropDown에 위시리스트 항목 추가 (#290)

* feat: 낙관적 업데이트를 하지 않은 좋아요 커스텀 훅 구현 (#290)

* feat: 위시리스트 컴포넌트 구현 (#290)

* feat: RetaurantWishItem 컴포넌트 구현 (#290)

* style: 음식점 리스트 스크롤 시 하트가 header 위에 있는 현상 해결 (#290)

* feat: InfoDropDownOption 컴포넌트 분리 및 hover 기능 추가 (#290)

* refactor: msw api 로 변경 (#290)

* feat: InfoDropDown 컴포넌트의 여러 기능 추가 (#290)

1. 위시리스트 가기
2. 로그아웃했을 때 새로고침 기능 추가

* feat: 위시리스트 페이지에 있지만 로그인 되어있지 않다면 로그인 페이지로 이동 기능 구현 (#290)

* feat: 로그인 페이지 구현 (#290)

* refactor: fixure 설정 변경 (#290)

* style: 푸터가 하단에 놓이지 않는 문제 해결 (#290)

* refactor: 사용하지 않는 파라미터 변수 제거 (#290)

* feat: 로고 버튼 클릭 시 홈으로  이동 기능 추가 (#290)

* fix: PopUp창 띄울 때 음식점 동기화 되지 않는 에러 해결 (#290)

* refactor: 불필요한 삼항 연산자 제거 (#290)

* feat: 회원 페이지 로그아웃 시 홈으로 이동하는 기능 추가 (#290)

* feat: 세션 id가 없을 때 로그인 페이지로 이동하는 동작 구현 (#290)

* refactor: 색깔 변수 수정 (#290)

* refactor: 불필요한 memo 선언 제거 (#290)

* refactor: InfoDropDownOption Props 수정 (#290)

---------

Co-authored-by: Jeremy <[email protected]>

* feat: 정보 수정 제안 기능 (#303)

* chore: 스토리북 라우터 및 PreviewBody 설정 (#298)

* style: MapModal 컴포넌트 제거 (#298)

* feat: 정보 수정 제안하기 기능 구현 (#298)

* feat: 정보 수정 제안하기 요청 로직 구현 (#298)

* fix: 정보 수정 제안 label 수정 (#298)

* refactor: clickCheckBox 코드 리팩터링 (#298)

* feat: 음식점 상세 페이지 제작 (#318)

* feat: ImageGrid 컴포넌트 추가 (#276)

* feat: router 경로 설정 (#276)

* design: 아이콘 3종 추가 (#276)

* feat: 비디오 케러셀 구현 (#276)

* refactor: 일부 props optional 여부 변경 및 지도에 마커 props 추가 (#276)

* design: icon 추가 (#276)

* feat: 음식점 상세 api 타입 정의 및 fetch 로직 작성 (#276)

* refactor: noImage 역할을 하는 이미지 영역 처리 (#276)

* design: overflow scroll 상황에서 스크롤바가 안보이도록 처리 (#276)

* refactor: 아이콘 width 지정, 라우팅 경로 재설정 (#276)

* feat: 비디오 데이터 요청 관련 타입 및 로직 구현 (#276)

* design: pencil icon 추가 (#276)

* refactor: 자신의 위치로 가기를 눌렀을 때 줌 레벨을 조절하도록 변경 (#276)

* refactor: 요청 형식에 맞게 url 수정 (#276)

* feat: 음식점 상세 페이지 추가 (#276)

* Squashed commit of the following:

commit 4921a27
Author: 황준승 <[email protected]>
Date:   Fri Aug 11 17:06:23 2023 +0900

    feat: 위시리스트 페이지 구현 (#312)

    * feat: Axios interceptor 추상화 클래스 구현 (#228)

    * feat: PopUp 컴포넌트 구현 (#228)

    * feat: msw를 활용한 좋아요 기능 구현 (#228)

    * fix: header에 제대로 된 cookie 값 입력 (#228)

    * feat: Map Overlay에 하트 모양 좋아요 표시 추가 (#228)

    * feat: wishList 페이지 구현 (#228)

    * fix: 페이지 focus 될 때 마다 PopUp 뜨는 오류 해결 (#228)

    * fix: getRestaurant 리턴 타입 수정 (#228)

    distance 속성 추가

    * fix: Modal 취소 버튼 cursor:pointer 속성 추가 (#228)

    * fix: dev 모드 설정 변경 (#228)

    export const SERVER_URL = PROD ? `${process.env.BASE_URL}/api/` : '/'; 구문 삭제

    * style: PopUp 버튼 스타일 수정 (#228)

    요청이 실패했을 때 사진 제거

    * refactor: 실제 요청과 msw 요청 시 axios 인스턴스 구분(#228)

    * feat: 4xx 관련 에러 일 경우 로그인 창 띄우는 기능 추가 (#228)

    * refactor: RestaurantData 타입 수정으로 인한 데이터 수정 (#228)

    * feat: MSW 좋아요, 음식점 리스트 관련 환경 셋팅 (#228)

    * feat: RestaurantCard에 모달 기능 추가 (#228)

    * feat: MSW 관련 함수 적용 (#228)

    * fix: MSW 요청 production 요청으로 변경 (#228)

    * fix: 웹 브라우저 쿠키 설정 (#228)

    * feat: 위시리스트 관련 handler 구현 (#290)

    * feat: InfoDropDown에 위시리스트 항목 추가 (#290)

    * feat: 낙관적 업데이트를 하지 않은 좋아요 커스텀 훅 구현 (#290)

    * feat: 위시리스트 컴포넌트 구현 (#290)

    * feat: RetaurantWishItem 컴포넌트 구현 (#290)

    * style: 음식점 리스트 스크롤 시 하트가 header 위에 있는 현상 해결 (#290)

    * feat: InfoDropDownOption 컴포넌트 분리 및 hover 기능 추가 (#290)

    * refactor: msw api 로 변경 (#290)

    * feat: InfoDropDown 컴포넌트의 여러 기능 추가 (#290)

    1. 위시리스트 가기
    2. 로그아웃했을 때 새로고침 기능 추가

    * feat: 위시리스트 페이지에 있지만 로그인 되어있지 않다면 로그인 페이지로 이동 기능 구현 (#290)

    * feat: 로그인 페이지 구현 (#290)

    * refactor: fixure 설정 변경 (#290)

    * style: 푸터가 하단에 놓이지 않는 문제 해결 (#290)

    * refactor: 사용하지 않는 파라미터 변수 제거 (#290)

    * feat: 로고 버튼 클릭 시 홈으로  이동 기능 추가 (#290)

    * fix: PopUp창 띄울 때 음식점 동기화 되지 않는 에러 해결 (#290)

    * refactor: 불필요한 삼항 연산자 제거 (#290)

    * feat: 회원 페이지 로그아웃 시 홈으로 이동하는 기능 추가 (#290)

    * feat: 세션 id가 없을 때 로그인 페이지로 이동하는 동작 구현 (#290)

    * refactor: 색깔 변수 수정 (#290)

    * refactor: 불필요한 memo 선언 제거 (#290)

    * refactor: InfoDropDownOption Props 수정 (#290)

    ---------

    Co-authored-by: Jeremy <[email protected]>

commit 2b48ba9
Author: Jeremy <[email protected]>
Date:   Fri Aug 11 11:54:25 2023 +0900

    feat: 지역 검색 기능  (#285)

    * feat: 검색창 UI 구현 (#272)

    * feat: 검색창 기능 구현 (#272)

    * refactor: 지도상태 전역으로 분리 (#272)

    zoom, boundary 분리

    * fix: 로고 Import 에러 처리 (#272)

    * refactor: font size 및 box shadow 디자인 시스템 적용 (#272)

    * design: 검색창 마크업 수정 (#272)

    * feat: 자동완성 설정 적용 (#272)

    대한민국 내 검색, 지역만 검색가능

    * style: 불필요한 코드 제거 (#272)

    * feat: 검색창에서 enter시 자동으로 첫번째 검색어로 검색 (#272)

commit b8c797a
Author: 황준승 <[email protected]>
Date:   Thu Aug 10 21:28:43 2023 +0900

    fix: oauth 인증 안되는 오류 잡기 (#310)

    * chore: 프론트엔드 cd 코드 수정 (#307)

    * fix: header에 cookie가 적용되지 않는 에러 해결 (#309)

    * fix: interceptor를 활용해 cookie 헤더 넣기 (#309)

commit 7ae4a1a
Author: 황준승 <[email protected]>
Date:   Thu Aug 10 20:35:05 2023 +0900

    style: 자동배포 테스트를 위한 주석 제거 (#307)

commit b71e854
Author: 황준승 <[email protected]>
Date:   Thu Aug 10 20:30:42 2023 +0900

    chore: 프론트엔드 cd 코드 수정 (#307) (#308)

commit 303a9c8
Author: 황준승 <[email protected]>
Date:   Thu Aug 10 19:43:46 2023 +0900

    feat: 좋아요 및 팝업 컴포넌트 구현 (#284)

    * feat: Axios interceptor 추상화 클래스 구현 (#228)

    * feat: PopUp 컴포넌트 구현 (#228)

    * feat: msw를 활용한 좋아요 기능 구현 (#228)

    * fix: header에 제대로 된 cookie 값 입력 (#228)

    * feat: Map Overlay에 하트 모양 좋아요 표시 추가 (#228)

    * fix: 페이지 focus 될 때 마다 PopUp 뜨는 오류 해결 (#228)

    * fix: getRestaurant 리턴 타입 수정 (#228)

    distance 속성 추가

    * fix: Modal 취소 버튼 cursor:pointer 속성 추가 (#228)

    * fix: dev 모드 설정 변경 (#228)

    export const SERVER_URL = PROD ? `${process.env.BASE_URL}/api/` : '/'; 구문 삭제

    * style: PopUp 버튼 스타일 수정 (#228)

    요청이 실패했을 때 사진 제거

    * refactor: 실제 요청과 msw 요청 시 axios 인스턴스 구분(#228)

    * feat: 4xx 관련 에러 일 경우 로그인 창 띄우는 기능 추가 (#228)

    * refactor: RestaurantData 타입 수정으로 인한 데이터 수정 (#228)

    * feat: MSW 좋아요, 음식점 리스트 관련 환경 셋팅 (#228)

    * feat: RestaurantCard에 모달 기능 추가 (#228)

    * feat: MSW 관련 함수 적용 (#228)

    * fix: MSW 요청 production 요청으로 변경 (#228)

    * fix: 웹 브라우저 쿠키 설정 (#228)

* fix: google map wrapper props를 일치시킴 (#276)

* fix: Love 아이콘이 보이도록 수정 (#276)

* refactor: import 타입 추가 (#276)

* refactor: 함수 중복 제거 (#276)

* fix: 충돌 사항 정리 (#276)

* feat: 로그아웃 기능 및 로그인 시 회원 프로필 기능 구현 (#326)

* feat: 로그아웃 요청 기능 구현 (#321)

* feat: 로그아웃 요청 기능 구현 에러 수정 (#321)

* fix: 쿠키 설정 Cookie로 변경(#321)

* fix: 로그아웃 api 요청 인스턴스 수정 (#321)

* fix: 로그아웃 요청 axios 구문 수정 (#321)

* fix: 로그아웃 요청 인스턴스 변경 (#321)

* feat: 로그인 시 회원 프로필 보여주기 기능 추가 (#320)

* refactor: api 요청 메서드 리팩토링 (#321)

* fix: 로그아웃 get 요청으로 수정 (#321)

* feat: 로그인 창 반응형 구현하기 (#332)

* fix: JSON.parse 관련 에러 해결 (#327)

* feat: 로그인 창 반응형 구현 (#327)

* style: 로그인 버튼 사이 마진 추가 (#327)

* feat: 로그아웃 시 브라우저 새로 고침 기능 구현 (#327)

* feat: 음식점 상세 후기 UI 구현 (#336)

* fix: JSON.parse 관련 에러 해결 (#327)

* feat: 로그인 창 반응형 구현 (#327)

* style: 로그인 버튼 사이 마진 추가 (#327)

* feat: 로그아웃 시 브라우저 새로 고침 기능 구현 (#327)

* feat: 댓글 리뷰 요청 API 타입 및 함수 생성 (#333)

* feat: 로그인 되었을 때 사용자 버튼에서 프로필이 보이는 기능 구현 (#333)

* fix: RestaurantDetail 페이지에서 터지는 각종 오류 해결 (#333)

* feat: 리뷰 데이터 MSW 설정 (#333)

* feat: Modal 관련 전역 상태 설정 (#333)

* feat: 리뷰가 세 줄 이상일 경우 더보기 버튼이 보여지는 커스텀 훅 구현 (#333)

* feat: RestaurantItem 컴포넌트 구현 (#333)

* feat: 리뷰 더보기 버튼 클릭 시 모달 scroll 위치를 해당 리뷰에 놓이는 기능 구현 (#333)

* feat: RestaurantReviewList 컴포넌트 구현 (#333)

* feat: RestaurantWrapper 및 리뷰 상세페이지 적용 (#333)

* refactor: Date 타입 네이밍 수정 (#333)

* refactor: truncateText 공통 스타일 사용 (#333)

* refactor:  스토리북 컨텐츠 내용 수정 (#333)

* refactor:  RestaurantReviewList 스토리북 생성 (#333)

* refactor: 음식점 상세 리뷰 요청 api인스턴스 변경 (#333)

* feat: 정보 수정 제안 공유하기 기능을 상세페이지에 추가 + 반응형 추가 (#345)

* feat: 좋아요, 정보수정 제안 기능 연결 (#339)

* refactor: 상세 페이지 모바일 화면 추가 (#339)

* refactor: 정보 수정 제안 버튼 수정 (#339)

* refactor: 주변 다른 식당 보여주기 조건 추가  (#339)

* refactor: 음식점 상세 좋아요 훅 변경 (#339)

* feat: 회원 탈퇴 기능 및 위시리스트 명세에 맞게 기능 수정 (#347)

* feat: 위시리스트 API 리턴 타입 변경 (#341)

* feat: 위시리스트 API 관련 Mock 데이터 변경 (#341)

* feat: isLiked 속성을 프론트에서 상태로 관리하도록 변경 (#321)

* chore: react-query 스토리북 전체 설정 추가 (#342)

* feat: TextButton 컴포넌트에 width 속성 추가 (#342)

* feat: info dropdown에 회원 탈퇴 항목 추가 (#324)

* feat: 로그인 페이지 반응형 구현 (#343)

* feat: 회원 탈퇴 페이지 기능 구현 (#342)

* refactor: userMSWInstancd 코드 수정 (#342)

* feat: 회원 탈퇴 관련 api 인스턴스 생성 (#324)

* feat: 회원 기능 탈퇴 MSW 구현 (#324)

* feat: 회원 탈퇴 기능 및 취소 기능 구현 (#342)

* refactor: 불필요한 중괄호 제거 (#342)

* refactor: 취소하기 탈퇴하기 버튼 색깔 변경  (#342)

* refactor: useToggleLikeNotUpdate 훅 수정 (#342)

* infra: cd 과정을 도커를 통해 진행한다 (#294)

* infra: 프론트엔드 Dockerfile 작성 (#273)

* infra: 프론트엔드 CD workflow 작성 (#273)

* infra: DEV 파일 수정 (#273)

* fix: front dev 브랜치 전체에 대해 CD 작동하도록 변경 (#273)

* infra: CI 캐싱 추가(frontend) (#305)

* Update frontend-ci.yml

* Update frontend-ci.yml

* Built-in cache 추가

* Update frontend-ci.yml

* Update frontend-ci.yml

* Update frontend-ci.yml

* Update frontend-ci.yml

* refactor: 메인 페이지 셀럽 카테고리 UI 개선 (#354)

* feat: 좋아요, 정보수정 제안 기능 연결 (#339)

* refactor: 상세 페이지 모바일 화면 추가 (#339)

* refactor: 정보 수정 제안 버튼 수정 (#339)

* refactor: 주변 다른 식당 보여주기 조건 추가  (#339)

* refactor: 음식점 상세 좋아요 훅 변경 (#339)

* refactor: 셀럽 선택 ui 개선(#338)

* Merge commit '75e4a8082a08f6d55b95207ed81854cb658095b3'

* refactor: 불필요한 import 제거 (#338)

* fix: 프론트엔드 도커 도입으로 인한 이미지 파일 보이지 않는 오류 수정 (#360)

* Update frontend-dev-cd.yml

* Update frontend-prod-cd.yml

* feat: 댓글 CRUD 기능 구현 (스타일 X) (#349)

* feat: 댓글 post body 타입 선언 (#331)

* feat: 댓글 CRUD MSW 셋팅 완료 (#331)

* refactor: imgUrl이 필요없는 PopUp에 대비해서 해당 프로퍼티 옵셔널 설정 (#331)

* feat: 댓글 CRUD를 하는 useRestaurantReview 커스텀 훅 구현 (#331)

* feat: 모달 분기 처리를 위한 content 속성 추가 (#331)

* feat: ReviewForm 컴포넌트 기능 구현 (#331)

* feat: 리뷰 작성, 수정, 삭제 버튼 클릭 시 모달이 나오게 구현 (#331)

* fix: 로그인이 되지 않았을 때 create작업 시 오류 해결 (#331)

* refactor: ReviewForm 컴포넌트 네이밍 수정(#331)

* feat: 리뷰 CRUD 명세 수정으로 인한 코드 수정 (#331)

* refactor: 프로필 요청 명세 수정에 맞게 코드 수정 (#331)

Add:
- 유저가 작성한 댓글에서만 수정, 삭제버튼이 보이게 수정

* refactor: 리뷰 쓰기, 팝업 ui 개선 및 위시리스트 빈 페이지 문구 변경 (#331)

* refactor: 지도에서 표기되는 좋아요 크기 변경 (#331)

* refactor: LoginPageUI 버튼 디자인 수정 (#331)

* refactor: 팝업 문구 변경 (#331)

---------

Co-authored-by: d0dam <[email protected]>

* bug: 각종 버그 수정 (#365)

* refactor: footer 인스타, 깃허브 링크 추가 (#364)

* refactor: 전체 셀럽 버튼 max-height 지정 (#364)

* refactor: 리뷰 수정 삭제 로직 및 대표 문구 변경 (#364)

* refactor: 위시리스트 상세페이지 연결 (#364)

* fix: 댓글 작성 시 쿼리가 없어지는 에러 해결

* test: 비회원 기능 E2E 테스트 (#361)

* chore: 테스트 환경 설정 (#346)

* test: 현재 지도 바운더리 내의 음식점이 리스트에 생성된다. (#346)

* test: 선택한 카테고리에 해당하는 음식점이 리스트에 생성된다. (#346)

* test: 검색창에 주소 입력시 해당 주소를 중심좌표로 리스트가 생성된다. (#346)

* test: 음식점 카드 호버 시 지도에 있는 해당 마커가 강조된다. (#346)

* test: 음식점 마커 클릭 시 레스토랑 카드가 마커근처에 생성된다. (#346)

* fix: 리스트에 음식점이 있는지 확인하는 메서드 수정 (#346)

텍스트가 포함되어있는지 확인 -> 해당 음식점 컴포넌트가 있는지 확인

* test: 음식점 마커 클릭 시 레스토랑 카드가 마커근처에 생성된다. (#346)

arguments 추가

* test: 마커 이벤트 테스트 (#346)

다른 마커를 클릭하면 레스토랑 카드가 사라지고 새로운 레스토랑 카드가 생성된다.

* style: 파일명 수정

* style: 파일명 카멜케이스 적용 (#346)

* chore: e2e.ts 설정 (#346)

* feat: 개인정보 처리방침 페이지 구현 (#362) (#366)

* feat: 클립보드 복사 시 팝업창 뜨기 구현 (#378)

* fix: 회원 탈퇴 시 로그아웃, 토큰 제거 (#373)

* feat: 음식점 관련 모달일 때만 음식점 사진 보여주는 popup창 구현 (#373)

* feat: 네이버 로그인 버튼 삭제 (#373)

* feat: 로그인 팝업 창 구현 (#373)

* fix: 로그인 정상 동작하도록 고치기 (#380) (#384)

Changed:
창 동작 X

* refactor: 수정, 삭제 관련 ui 개선 (#358) (#379)

* refactor: 수정, 삭제 관련 ui 개선 (#358)

* refactor: MSW 키워드 제거 (#358)

* Merge remote-tracking branch 'origin/develop-frontend2'

* refactor: 상세 페이지 제공 api에 userInstance 추가 (#358)

* Squashed commit of the following:

commit a1100af2dc79c5f67f8d95c207ff0892198549ce
Author: d0dam <[email protected]>
Date:   Thu Aug 17 13:09:19 2023 +0900

    Squashed commit of the following:

    commit 40dbc95
    Author: 황준승 <[email protected]>
    Date:   Thu Aug 17 13:06:41 2023 +0900

        fix: 로그인 정상 동작하도록 고치기 (#380) (#384)

        Changed:
        창 동작 X

    commit a60da5d
    Author: 황준승 <[email protected]>
    Date:   Thu Aug 17 11:00:00 2023 +0900

        feat: 클립보드 복사 시 팝업창 뜨기 구현 (#378)

        * fix: 회원 탈퇴 시 로그아웃, 토큰 제거 (#373)

        * feat: 음식점 관련 모달일 때만 음식점 사진 보여주는 popup창 구현 (#373)

        * feat: 네이버 로그인 버튼 삭제 (#373)

        * feat: 로그인 팝업 창 구현 (#373)

* Squashed commit of the following:

commit a1100af2dc79c5f67f8d95c207ff0892198549ce
Author: d0dam <[email protected]>
Date:   Thu Aug 17 13:09:19 2023 +0900

    Squashed commit of the following:

    commit 40dbc95
    Author: 황준승 <[email protected]>
    Date:   Thu Aug 17 13:06:41 2023 +0900

        fix: 로그인 정상 동작하도록 고치기 (#380) (#384)

        Changed:
        창 동작 X

    commit a60da5d
    Author: 황준승 <[email protected]>
    Date:   Thu Aug 17 11:00:00 2023 +0900

        feat: 클립보드 복사 시 팝업창 뜨기 구현 (#378)

        * fix: 회원 탈퇴 시 로그아웃, 토큰 제거 (#373)

        * feat: 음식점 관련 모달일 때만 음식점 사진 보여주는 popup창 구현 (#373)

        * feat: 네이버 로그인 버튼 삭제 (#373)

        * feat: 로그인 팝업 창 구현 (#373)

* fix: 잘못된 api 요청 수정

* fix: 잘못된 api 요청 수정

* fix: 로그인 오류 해결 및 삭제 버튼 오류 해결

* fix: 정보 수정 요청 제안 시 페이지가 reload되도록 수정

* fix: 로그인 direct 오류 해결

* fix: navbar 스타일 문제 및 리뷰 작성 시 에러 처리 에러 해결

* fix: 상세 페이지 좋아요 에러 수정

* fix: 로그인 새로고침 에러 수정

* fix: 필요없는 import 제거

* fix: LoginButton navigator로 적용

* fix: 로그인 안된 상태에서 리뷰 작성 시 + 음식점 상세 좋아요 에러 해결

* fix: LoginButton navigator 경로 수정

* fix: ImageGrid 오류 수정

* fix: 로그인 재실행 로직 추가

* fix: 로그인 성공시 재실행을 시켜주도록 변경

* fix: updateOauth 의 실행 순서 변경

* fix: LoginButton 경로 설정

* fix: LoginButton href 방식으로 수정

* Infra: 시맨틱 버저닝 yml 파일 구성 (#371) (#372)

* feat: 웹 표준 및 접근성 적용 (#388)

* feat: aria-label 적용 (#383)

* feat: 시맨틱 태그 적용 (#383)

* refactor: 스토리북 수정 (#383)

* Merge commit 'c7e66eeb01f733d4bac07895da7e3ec036a106d0'

* feat: 웹 접근성 적용 (#383)

* feat: 음식점 리스트 좋아요 순으로 조회 (#383)

* Revert "feat: 웹 접근성 적용 (#383)"

* fix: 로그인 로그아웃 동작 수정 (#393)

* fix: 로그아웃 시 화면 리로딩 하는 식으로 구현 (#392)

* refactor: style lint 에러 수정 (#392)

* fix: 회원 탈퇴 시 로그아웃 로직 삭제 (#392)

* fix: 사용하지 않는 변수 제거 (#392)

---------

Co-authored-by: 황준승 <[email protected]>
Co-authored-by: Jeremy <[email protected]>
Co-authored-by: turtle601 <[email protected]>
Co-authored-by: Donghun Shin <[email protected]>
Co-authored-by: Taeyeon <[email protected]>
  • Loading branch information
6 people authored Aug 17, 2023
1 parent c5d74ab commit 786cae8
Show file tree
Hide file tree
Showing 134 changed files with 5,652 additions and 489 deletions.
38 changes: 34 additions & 4 deletions .github/workflows/frontend-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,10 +3,17 @@ name: 🍔 Celuveat Frontend CI 🍔
on:
push:
branches:
- develop-frontend
pull_request:
branches:
- develop-frontend
- develop-frontend*
- main
paths:
- 'frontend/**'

pull_request:
branches:
- develop-frontend*
- main
paths:
- 'frontend/**'

jobs:
frontend-test:
Expand All @@ -21,6 +28,29 @@ jobs:
- uses: actions/setup-node@v3
with:
node-version: '18.16.1'

- name: 🍔 Get npm cache directory
id: npm-cache-dir
run: echo "dir=$(npm config get cache)" >> ${GITHUB_OUTPUT}
- uses: actions/cache@v3
id: npm-cache
with:
path: ${{ steps.npm-cache-dir.outputs.dir }}
key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-node-
- uses: actions/cache@v3
- name: 🍔 Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "dir=$(yarn cache dir)" >> ${GITHUB_OUTPUT}
- uses: actions/cache@v3
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: 🍔 yarn install
run: yarn install
Expand Down
72 changes: 62 additions & 10 deletions .github/workflows/frontend-dev-cd.yml
Original file line number Diff line number Diff line change
@@ -1,23 +1,75 @@
name: 🍔 Celuveat frontend DEV CD 🍔

env:
PROFILE: dev
IMAGE_TAG: front-dev-${{ secrets.APP_VERSION_TAG }}
DOCKER_CONTAINER_NAME: frontend
DOCKER_HUB_REPOSITORY: celuveat/celuveat

on:
workflow_dispatch:
push:
branches:
- develop-frontend
- develop-frontend*
paths:
- 'frontend/**'
- "frontend/**"

jobs:
deploy-frontend:
runs-on: [self-hosted, dev]
frontend-build-and-push:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./frontend

steps:
- name: 🍔 Checkout repository
uses: actions/checkout@v3

- 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
touch .env
echo GOOGLE_MAP_API_KEY=${{ secrets.GOOGLE_MAP_API_KEY }} > .env
echo BASE_URL=${{ secrets.DEV_BASE_URL }} >> .env
- name: 🍔 DockerHub에 로그인
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_PASSWORD }}

- name: 🍔 Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: 🍔 Docker Image 빌드 후 DockerHub에 Push
uses: docker/build-push-action@v4
with:
context: ./frontend
file: ./frontend/Dockerfile
push: true
platforms: linux/arm64
tags: ${{ env.DOCKER_HUB_REPOSITORY }}:${{ env.IMAGE_TAG }}
cache-from: type=gha
cache-to: type=gha,mode=max

frontend-docker-pull-and-run:
runs-on: [self-hosted, dev]
if: ${{ needs.frontend-build-and-push.result == 'success' }}
needs: [ frontend-build-and-push ]

steps:
- name: 🍔 DockerHub에서 Image Pull
run: |
docker login --username ${{ secrets.DOCKER_HUB_USERNAME }} --password ${{ secrets.DOCKER_HUB_PASSWORD }}
docker pull ${{ env.DOCKER_HUB_REPOSITORY }}:${{ env.IMAGE_TAG }}
docker stop ${{ env.DOCKER_CONTAINER_NAME }} || true
docker container prune -f
docker image prune -f
- name: 🍔 Docker Image 실행
run: |
cd ~
sudo sh deploy-frontend.sh
docker run \
-d \
--name ${{ env.DOCKER_CONTAINER_NAME }} \
-v ~/front-public/images-data/:/app/public/images-data \
-p 3000:3000 \
${{ env.DOCKER_HUB_REPOSITORY }}:${{ env.IMAGE_TAG }}
70 changes: 61 additions & 9 deletions .github/workflows/frontend-prod-cd.yml
Original file line number Diff line number Diff line change
@@ -1,24 +1,76 @@
name: 🍔 Celuveat frontend PROD CD 🍔

env:
PROFILE: prod
IMAGE_TAG: front-prod-${{ secrets.APP_VERSION_TAG }}
DOCKER_CONTAINER_NAME: frontend
DOCKER_HUB_REPOSITORY: celuveat/celuveat

on:
workflow_dispatch:
push:
branches:
- main
paths:
- 'frontend/**'
- "frontend/**"

jobs:
deploy-frontend:
runs-on: [self-hosted, prod]
frontend-build-and-push:
runs-on: ubuntu-latest
defaults:
run:
working-directory: ./frontend

steps:
- name: 🍔 Checkout repository
uses: actions/checkout@v3

- 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
touch .env
echo GOOGLE_MAP_API_KEY=${{ secrets.GOOGLE_MAP_API_KEY }} > .env
echo BASE_URL=${{ secrets.PROD_BASE_URL }} >> .env
- name: 🍔 DockerHub에 로그인
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKER_HUB_USERNAME }}
password: ${{ secrets.DOCKER_HUB_PASSWORD }}

# Dockerfile에서 yarn 사용하려면 필요함
- name: 🍔 Set up Docker Buildx
uses: docker/setup-buildx-action@v2

- name: 🍔 Docker Image 빌드 후 DockerHub에 Push
uses: docker/build-push-action@v4
with:
context: ./frontend
file: ./frontend/Dockerfile
push: true
platforms: linux/arm64
tags: ${{ env.DOCKER_HUB_REPOSITORY }}:${{ env.IMAGE_TAG }}
cache-from: type=gha
cache-to: type=gha,mode=max

frontend-docker-pull-and-run:
runs-on: [self-hosted, prod]
if: ${{ needs.frontend-build-and-push.result == 'success' }}
needs: [ frontend-build-and-push ]

steps:
- name: 🍔 DockerHub에서 Image Pull
run: |
docker login --username ${{ secrets.DOCKER_HUB_USERNAME }} --password ${{ secrets.DOCKER_HUB_PASSWORD }}
docker pull ${{ env.DOCKER_HUB_REPOSITORY }}:${{ env.IMAGE_TAG }}
docker stop ${{ env.DOCKER_CONTAINER_NAME }} || true
docker container prune -f
docker image prune -f
- name: 🍔 Run Frontend Deploy Script
- name: 🍔 Docker Image 실행
run: |
cd ~
sudo sh deploy-frontend.sh
docker run \
-d \
--name ${{ env.DOCKER_CONTAINER_NAME }} \
-v ~/front-public/images-data/:/app/public/images-data \
-p 3000:3000 \
${{ env.DOCKER_HUB_REPOSITORY }}:${{ env.IMAGE_TAG }}
21 changes: 21 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
# Name of the workflow
name: Release

# Run on every commit tag which begins with "v" (e.g., "v0.1.4")
on:
push:
branches:
- main
tags:
- 'v*'

# Automatically create a Github Release, with release details specified (the relevant commits)
jobs:
release:
name: 'Release'
runs-on: 'ubuntu-latest'
steps:
- uses: 'marvinpinto/action-automatic-release@latest'
with:
repo_token: '${{ secrets.GITHUB_TOKEN }}'
prerelease: false
3 changes: 2 additions & 1 deletion frontend/.gitignore
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
/node_modules
/dist
/.env
/.env
/cypress.env.json
4 changes: 4 additions & 0 deletions frontend/.storybook/main.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,5 +27,9 @@ const config: StorybookConfig = {

return config;
},
previewBody: body => `
${body}
<div id="modal"></div>
`,
};
export default config;
19 changes: 0 additions & 19 deletions frontend/.storybook/preview.ts

This file was deleted.

34 changes: 34 additions & 0 deletions frontend/.storybook/preview.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
import React from 'react';
import type { Preview } from '@storybook/react';
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
import GlobalStyles from '../src/styles/GlobalStyles';
import { BrowserRouter } from 'react-router-dom';

const queryClient = new QueryClient();

const preview: Preview = {
parameters: {
actions: { argTypesRegex: '^on[A-Z].*' },
controls: {
matchers: {
color: /(background|color)$/i,
date: /Date$/,
},
},
},
};

export const decorators = [
Story => (
<>
<GlobalStyles />
<QueryClientProvider client={queryClient}>
<BrowserRouter>
<Story />
</BrowserRouter>
</QueryClientProvider>
</>
),
];

export default preview;
13 changes: 13 additions & 0 deletions frontend/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
FROM node:18-alpine

WORKDIR /app

COPY package.json yarn.lock .

RUN yarn install

COPY . .

RUN yarn build

CMD ["yarn", "start", "--port", "3000"]
9 changes: 9 additions & 0 deletions frontend/cypress.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
import { defineConfig } from 'cypress';

export default defineConfig({
e2e: {
viewportWidth: 1920,
viewportHeight: 1080,
baseUrl: 'http://localhost:3000',
},
});
35 changes: 35 additions & 0 deletions frontend/cypress/e2e/mapInteraction.cy.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
describe('지도 상호작용 테스트', () => {
it('음식점 카드 호버 시 지도에 있는 해당 마커가 강조된다.', () => {
const restaurants = ['몽드샬롯', '대성연탄갈비', '미타우동', '식도원'];

cy.visit(Cypress.config().baseUrl);
cy.wrap(restaurants).each(restaurant => {
cy.getBySel(`${restaurant} 카드`).trigger('mouseover');
cy.getBySel(`${restaurant} 마커`).should('have.css', 'border').and('include', 'rgb(235, 152, 45)');
});
});

it('음식점 마커 클릭 시 레스토랑 카드가 마커근처에 생성된다.', () => {
const restaurants = ['맛좋은순대국', '씨푸드박스', '스시이도 오코노미', '동양'];

cy.wrap(restaurants).each(restaurant => {
cy.visit(Cypress.config().baseUrl);
cy.getBySel(`${restaurant} 마커`).click();
cy.getBySel(`${restaurant} 오버레이`).find(`[data-cy='${restaurant} 카드']`).should('exist');
});
});

it('다른 마커를 클릭하면 레스토랑 카드가 사라지고 새로운 레스토랑 카드가 생성된다', () => {
cy.visit(Cypress.config().baseUrl);
cy.getBySel('몽드샬롯 마커').click();
cy.getBySel('몽드샬롯 오버레이').find('[data-cy="몽드샬롯 카드"]').should('exist');

cy.getBySel('대성연탄갈비 마커').click();
cy.getBySel('몽드샬롯 오버레이').find('[data-cy="몽드샬롯 카드"]').should('not.exist');
cy.getBySel('대성연탄갈비 오버레이').find('[data-cy="대성연탄갈비 카드"]').should('exist');

cy.getBySel('씨푸드박스 마커').click();
cy.getBySel('대성연탄갈비 오버레이').find('[data-cy="대성연탄갈비 카드"]').should('not.exist');
cy.getBySel('씨푸드박스 오버레이').find('[data-cy="씨푸드박스 카드"]').should('exist');
});
});
Loading

0 comments on commit 786cae8

Please sign in to comment.