Skip to content

Commit

Permalink
프론트엔드 v1.2.0 버전 배포 (#668)
Browse files Browse the repository at this point in the history
* webpack 초기 환경 설정 (#8)

chore: 프로젝트 초기 환경 설정

* Layout 컴포넌트 구현 (#10)

* assets: Pretendard 폰트 추가

* design: GlobalStyle 및 ResetStyle 적용

* feat: Header, Layout 컴포넌트 구현

* MSW 설정 (#17)

* chore: 환경 변수 NODE_ENV 설정

* feat: msw 초기 설정

* Avartar, Tag, Button, Modal 컴포넌트 구현 (#20)

* feat: Avatar 컴포넌트 구현

* feat: Button 컴포넌트 구현

* assets: close-icon-red svg 추가

* feat: Tag 컴포넌트 구현

* design: Button 디폴트 스타일 설정

* feat: Modal 컴포넌트 구현

* React Router 설정 (#23)

* design: Layout background 제거

* feat: 페이지 라우팅 설정

* msw, tsconfig, Avatar 공통 변경사항 반영 (#27)

* chore: json 파일을 import하기 위한 tsconfig 수정

* fix: msw dev에서만 작동하도록 수정

* design: Avatar 기본 사이즈 설정

* 러너 게시글 조회 페이지 구현 (#31)

* feat: RunnerPostPage 구현

* assets: 채팅수, 조회수 아이콘 svg 추가

* feat: 러너 게시글 mock data 추가

* feat: RunnerPostPage api 요청 기능 추가

* refactor: PostTag 컴포넌트 분리

* 러너 게시물 생성 페이지 구현 (#33)

* feat: InputBox 컴포넌트 구현

* feat: TagInput 컴포넌트 구현

* feat: Textarea 컴포넌트 구현

* feat: RunnerPostCreatePage 페이지 구현

* refactor: InputBox 컴포넌트 InputText Props 삭제

* refactor: props로state를 받도록 변경

* refactor: 입력 state관련 set 함수명 수정

---------

Co-authored-by: 상규 <[email protected]>

* 메인 페이지 구현 (#34)

* chore: json 파일을 import하기 위한 tsconfig 수정

* fix: msw dev에서만 작동하도록 수정

* design: Avatar 기본 사이즈 설정

* feat: MainPage 구현

* fix: map key 오류 수정

* feat: RunnerPost 타입 추가

* feat: 러너가 올린 게시물 조회 msw 구현

* refactor: RunnerPost 타입 지정

* feat: Tag 컴포넌트 렌더링 추가

* refactor: mock data 네이밍 통일

* 구현한 페이지 라우터 연결 (#42)

* feat: 구현한 페이지 라우터 연결 및 hook 분리

Co-authored-by: 에이든 <[email protected]>
Co-authored-by: 남상규 <[email protected]>

* feat: 로고 클릭시 홈 이동 기능 추가

---------

Co-authored-by: 에이든 <[email protected]>
Co-authored-by: 남상규 <[email protected]>

* 러너 글 목록 조회 API 변경에 따른 MainPage 수정 (#55)

* fix: api 명세 변경에 따른 러너 글 타입 수정

* feat: 러너 글 목록 조회 api 변경에 따른 MainPage 수정

* API 요청 Endpoint 변경 (#69)

* fix: dev server 새로고침 오류 수정

* refactor: index.html 경로 src 외부 public 폴더로 이동

* feat: api 엔드포인트 변경

dev server에서만 msw 적용하도록 변경

* 절대 경로 재설정 (#71)

chore: import 절대경로 path 재설정

* 불필요한 환경 변수 플러그인 제거 (#73)

fix: build 오류 수정

웹팩 dev 환경변수 플러그인 제거

* Label 컴포넌트 구현 (#88)

feat: Label 컴포넌트 구현

* 서포터 선택 결과 페이지 구현 (#90)

feat: 서포터 선택 결과 페이지 구현

* 메인 페이지 및 상세 게시글 리뷰 상태 라벨 추가 (#91)

* feat: mockData에 reviewStatus 추가

* feat: reviewStatus 타입 및 Label text 추가

* feat: 메인 페이지에 리뷰 상태 Label 추가

* feat: 러너 게시글 상세 페이지에 리뷰 상태 Label 추가

* 서포터 선택 시 확인 모달창 구현 (#92)

feat: 서포터 선택 시 확인 모달창 구현

* 서포터 선택 페이지 구현 (#103)

* feat: 서포터 선택페이지 라우팅 추가

* asset: github-icon svg파일 추가

* feat: 서포터 선택 페이지 msw 핸들러 추가

* feat: SupporterSelectPage 페이지 컴포넌트 추가

* feat: 서포터 선택 페이지 관련 타입 추가

* feat: SupporterSelectItem, List 컴포넌트 추가

* feat: ConfirmModal 컴포넌트 Props 추가

* feat: RunnerPostCreatePage 페이지 컴포넌트 api 기능 제거

* fix: supportSelect 타입 오류 수정

* fix: 저장 누락 반영

---------

Co-authored-by: 상규 <[email protected]>

* CI를 위한 테스트 코드 작성 (#111)

* chore: testing library react 및 jest 패키지 설정

* test: CI를 위한 컴포넌트 테스트코드 작성

* CI설정 with GitHub Actions (#113)

* style: 팀 컨벤션에 맞게 프론트엔드 최상위 폴더명 변경

* chore: 프론트엔드 CI 설정

* ConfirmModal 컴포넌트 테스트코드 작성 (#116)

* test: ConfirmModal 컴포넌트 테스트코드 작성

* fix: workflow -> workflows 수정

* fix: github action working directory 수정

* API 명세 변경에 따른 기능 추가 (#123)

* fix: types 파일명 변경을 위한 파일 삭제

* feat: API 명세에 맞춰 타입 추가 및 mock data 변경

* feat: 러너 게시글 상세 페이지 삭제, 코드 보러가기 기능 추가

* style: 러너 상세 게시글 타입 이름 수정

* refactor: API 명세에 맞춘 타입을 import 하도록 변경

* 로그인 페이지 구현 (#124)

* feat: 헤더에 로그인 버튼 클릭시 로그인 페이지로 이동하는 기능 추가

* feat: 로그인 페이지 컴포넌트 구현

* fix: asset경로 절대경로로 수정

---------

Co-authored-by: 상규 <[email protected]>

* 서포터 선택 목록 -> 글 생성할 때 띄우는 기능 구현 (#128)

* feat: InputBox font-size, font-weight props 추가

* feat: 서포터 리스트 mockData 추가

* feat: 서포터 선택 목록 페이지를 모달 컴포넌트로 변경

* design: Textarea border 수정

* fix: TagInput을 form태그 안에 넣을 경우 submit이 되는 오류 수정

* feat: 서포터 선택 목록 모달 기능 구현

* fix: cherry-pick conflict 해결

* fix: type 오류 수정

* feat: 프론트엔드 로컬에서 백엔드 서버 api 요청을 위한 proxy 포트 설정

* feat: api 명세 변경에 따른 컴포넌트 props 수정

* 서버 api 엔드포인트 변경 (#133)

* feat: 변경된 api 명세에 따른 msw uri 수정

* feat: 배포 서버 base url 수정

* feat: 삭제 확인 모달창 구현

* test: 확인 모달창 변경에 따른 테스트코드 작성

* 사용하지 않는 기능 숨기기 (#137)

* design: Layout margin-bottom 추가

* design: 리뷰 진행중 라벨 디자인 추가

* feat: 준비중인 기능 알림 메시지 추가

* feat: 사용하지 않는 기능 주석 처리

* 프론트엔드 배포 작업 (#135)

* webpack 초기 환경 설정 (#8)

chore: 프로젝트 초기 환경 설정

* Layout 컴포넌트 구현 (#10)

* assets: Pretendard 폰트 추가

* design: GlobalStyle 및 ResetStyle 적용

* feat: Header, Layout 컴포넌트 구현

* MSW 설정 (#17)

* chore: 환경 변수 NODE_ENV 설정

* feat: msw 초기 설정

* Avartar, Tag, Button, Modal 컴포넌트 구현 (#20)

* feat: Avatar 컴포넌트 구현

* feat: Button 컴포넌트 구현

* assets: close-icon-red svg 추가

* feat: Tag 컴포넌트 구현

* design: Button 디폴트 스타일 설정

* feat: Modal 컴포넌트 구현

* React Router 설정 (#23)

* design: Layout background 제거

* feat: 페이지 라우팅 설정

* msw, tsconfig, Avatar 공통 변경사항 반영 (#27)

* chore: json 파일을 import하기 위한 tsconfig 수정

* fix: msw dev에서만 작동하도록 수정

* design: Avatar 기본 사이즈 설정

* 러너 게시글 조회 페이지 구현 (#31)

* feat: RunnerPostPage 구현

* assets: 채팅수, 조회수 아이콘 svg 추가

* feat: 러너 게시글 mock data 추가

* feat: RunnerPostPage api 요청 기능 추가

* refactor: PostTag 컴포넌트 분리

* 러너 게시물 생성 페이지 구현 (#33)

* feat: InputBox 컴포넌트 구현

* feat: TagInput 컴포넌트 구현

* feat: Textarea 컴포넌트 구현

* feat: RunnerPostCreatePage 페이지 구현

* refactor: InputBox 컴포넌트 InputText Props 삭제

* refactor: props로state를 받도록 변경

* refactor: 입력 state관련 set 함수명 수정

---------

Co-authored-by: 상규 <[email protected]>

* 메인 페이지 구현 (#34)

* chore: json 파일을 import하기 위한 tsconfig 수정

* fix: msw dev에서만 작동하도록 수정

* design: Avatar 기본 사이즈 설정

* feat: MainPage 구현

* fix: map key 오류 수정

* feat: RunnerPost 타입 추가

* feat: 러너가 올린 게시물 조회 msw 구현

* refactor: RunnerPost 타입 지정

* feat: Tag 컴포넌트 렌더링 추가

* refactor: mock data 네이밍 통일

* 구현한 페이지 라우터 연결 (#42)

* feat: 구현한 페이지 라우터 연결 및 hook 분리

Co-authored-by: 에이든 <[email protected]>
Co-authored-by: 남상규 <[email protected]>

* feat: 로고 클릭시 홈 이동 기능 추가

---------

Co-authored-by: 에이든 <[email protected]>
Co-authored-by: 남상규 <[email protected]>

* 러너 글 목록 조회 API 변경에 따른 MainPage 수정 (#55)

* fix: api 명세 변경에 따른 러너 글 타입 수정

* feat: 러너 글 목록 조회 api 변경에 따른 MainPage 수정

* API 요청 Endpoint 변경 (#69)

* fix: dev server 새로고침 오류 수정

* refactor: index.html 경로 src 외부 public 폴더로 이동

* feat: api 엔드포인트 변경

dev server에서만 msw 적용하도록 변경

* 절대 경로 재설정 (#71)

chore: import 절대경로 path 재설정

* 불필요한 환경 변수 플러그인 제거 (#73)

fix: build 오류 수정

웹팩 dev 환경변수 플러그인 제거

* Label 컴포넌트 구현 (#88)

feat: Label 컴포넌트 구현

* 서포터 선택 결과 페이지 구현 (#90)

feat: 서포터 선택 결과 페이지 구현

* 메인 페이지 및 상세 게시글 리뷰 상태 라벨 추가 (#91)

* feat: mockData에 reviewStatus 추가

* feat: reviewStatus 타입 및 Label text 추가

* feat: 메인 페이지에 리뷰 상태 Label 추가

* feat: 러너 게시글 상세 페이지에 리뷰 상태 Label 추가

* 서포터 선택 시 확인 모달창 구현 (#92)

feat: 서포터 선택 시 확인 모달창 구현

* 서포터 선택 페이지 구현 (#103)

* feat: 서포터 선택페이지 라우팅 추가

* asset: github-icon svg파일 추가

* feat: 서포터 선택 페이지 msw 핸들러 추가

* feat: SupporterSelectPage 페이지 컴포넌트 추가

* feat: 서포터 선택 페이지 관련 타입 추가

* feat: SupporterSelectItem, List 컴포넌트 추가

* feat: ConfirmModal 컴포넌트 Props 추가

* feat: RunnerPostCreatePage 페이지 컴포넌트 api 기능 제거

* fix: supportSelect 타입 오류 수정

* fix: 저장 누락 반영

---------

Co-authored-by: 상규 <[email protected]>

* CI를 위한 테스트 코드 작성 (#111)

* chore: testing library react 및 jest 패키지 설정

* test: CI를 위한 컴포넌트 테스트코드 작성

* CI설정 with GitHub Actions (#113)

* style: 팀 컨벤션에 맞게 프론트엔드 최상위 폴더명 변경

* chore: 프론트엔드 CI 설정

* ConfirmModal 컴포넌트 테스트코드 작성 (#116)

* test: ConfirmModal 컴포넌트 테스트코드 작성

* fix: workflow -> workflows 수정

* fix: github action working directory 수정

* API 명세 변경에 따른 기능 추가 (#123)

* fix: types 파일명 변경을 위한 파일 삭제

* feat: API 명세에 맞춰 타입 추가 및 mock data 변경

* feat: 러너 게시글 상세 페이지 삭제, 코드 보러가기 기능 추가

* style: 러너 상세 게시글 타입 이름 수정

* refactor: API 명세에 맞춘 타입을 import 하도록 변경

* 로그인 페이지 구현 (#124)

* feat: 헤더에 로그인 버튼 클릭시 로그인 페이지로 이동하는 기능 추가

* feat: 로그인 페이지 컴포넌트 구현

* fix: asset경로 절대경로로 수정

---------

Co-authored-by: 상규 <[email protected]>

* 서포터 선택 목록 -> 글 생성할 때 띄우는 기능 구현 (#128)

* feat: InputBox font-size, font-weight props 추가

* feat: 서포터 리스트 mockData 추가

* feat: 서포터 선택 목록 페이지를 모달 컴포넌트로 변경

* design: Textarea border 수정

* fix: TagInput을 form태그 안에 넣을 경우 submit이 되는 오류 수정

* feat: 서포터 선택 목록 모달 기능 구현

* fix: cherry-pick conflict 해결

* fix: type 오류 수정

* feat: 프론트엔드 로컬에서 백엔드 서버 api 요청을 위한 proxy 포트 설정

* feat: api 명세 변경에 따른 컴포넌트 props 수정

* 서버 api 엔드포인트 변경 (#133)

* feat: 변경된 api 명세에 따른 msw uri 수정

* feat: 배포 서버 base url 수정

* feat: 삭제 확인 모달창 구현

* test: 확인 모달창 변경에 따른 테스트코드 작성

* 사용하지 않는 기능 숨기기 (#137)

* design: Layout margin-bottom 추가

* design: 리뷰 진행중 라벨 디자인 추가

* feat: 준비중인 기능 알림 메시지 추가

* feat: 사용하지 않는 기능 주석 처리

---------

Co-authored-by: KangSan Lee <[email protected]>
Co-authored-by: 남상규 <[email protected]>
Co-authored-by: 상규 <[email protected]>
Co-authored-by: 에이든 <[email protected]>
Co-authored-by: 남상규 <[email protected]>

* webpack prod publicPath 재설정 (#153)

* fix: 이미지 경로 및 새로고침 오류 수정

index.html base 태그 설정

* fix: base 태그 사용 대신 webpack publicPath 변경

상대경로를 사용하지 않도록 변경

* 게시물 상세 조회 페이지 디자인 수정 (#182)

* feat: Button 컴포넌트 colorTheme 추가

* fix: 선택 완료 목록 height값 추가

* design: 게시물 상제 조회 디자인 수정

* feat: 글 생성 완료 멘트 수정

* 마이페이지 구현 (#185)

* feat: 마이페이지 관련 타입추가

* feat: 마이페이지 관련 msw 데이터 및 핸들러 추가

* feat: MyPage 페이지 컴포넌트 추가

* feat: ProfileRunnerPostItem 컴포넌트 추가

* feat: ListFilter 컴포넌트 추가

* feat: 마이페이지 페이지 라우팅 추가

* refactor: list태그div에서ul로 수정

* fix : 페이지 상수에 / 추가

* refactor: runnerProfile 타입명에 Get추가

* refactor: Profile 타입을 따로 분리

* refactor: iternator 명 수정

---------

Co-authored-by: 상규 <[email protected]>

* 서포터 선택 상세정보 개발언어 추가, 분야별 필터링 기능 구현 (#181)

* fix: type import 파일명 수정

* fix: 브라우저의 높이가 작아졌을 때 모달 컨텐츠가 화면을 벗어나는 오류 수정

* feat: 개발스택 라벨 추가

* feat: 개발 분야 필터링 기능 구현

* feat: 서포터 선택 목록 목데이터 수정

* feat: 서포터 technicalTags 타입 추가

* feat: 개발스택 라벨 svg 컴포넌트 추가

* design: 선택된 서포터 width값 변경

* fix: dom에 스타일이 나타나지 않도록 달러사인 추가

* fix: 기술스택 라벨 key값 추가

* feat: 서포터 분야별 필터링 기능 구현

* refactor: svg 컴포넌트 화살표 함수로 변경

* refactor: 기술태그 key 고유값으로 변경

* refactor: 변수 네이밍 변경

* 웹 표준 및 웹 접근성 준수 (#198)

* refactor: 시멘틱 태그 적용

* refactor: 이미지 alt 속성 추가

* feat: 제목 input autoFocus 기능 추가

* feat: 리뷰 요청 글 작성 aria-label 추가

* 서포터 선택 필터 기능 useEffect dependency 수정 (#200)

* fix: supporterId와 key값이 겹치는 오류 수정

* fix: 무한으로 useEffect가 호출되는 오류 수정

* 깃허브 소셜 로그인 기능 구현 (#203)

* feat: 로그인 버튼 URL 연결

* feat: 깃허브 콜백 페이지 구현

* feat: useLogin 구현

* feat: Header 로그인 버튼 기능 구현

* feat: 토큰 유효기간 검증 기능 구현

* fix: 토큰 유효기간 검증 로직 수정

* refactor: useLogin -> useToken 으로 변경

* feat: Avartar 컴포넌트 onClick Props 추가

* feat: usePageRouter 마이 페이지 추가

* feat: api 요청시 헤더에 토큰 추가

* feat: 상세 페이지 목록 버튼 뒤로가기로 변경

Co-authored-by: 에이든 <[email protected]>
Co-authored-by: 남상규 <[email protected]>

* fix: 컴포넌트 list key값 및 DOM에 나타나지 않도록 달러 사인 추가

* feat: 마이 페이지 게시글 바로가기 기능 추가 및 hover 스타일 추가

* feat: 메인 페이지 게시글 조회수, 채팅수 아이콘 추가

---------

Co-authored-by: 에이든 <[email protected]>
Co-authored-by: 남상규 <[email protected]>

* 프론트엔드 배포 작업 (#208)

feat: api 엔드포인트 localhost로 변경

* [hotfix] 프론트엔드 엔드포인트 변경 후 재배포 (#215)

* fix: api 요청 엔드포인트 변경

* fix: api 요청 엔드포인트 도메인 주소로 변경

* [hotfix] 프론트엔드 엔드포인트 변경 후 재배포(2) (#216)

* fix: api 요청 엔드포인트 변경

* fix: api 요청 엔드포인트 도메인 주소로 변경

* fix: https 사이트에서 http 요청을 보내기 위한 meta 태그 추가

* [hotfix] 프론트엔드 엔드포인트 변경 후 재배포 (3) (#217)

fix: 엔드포인트 포트 삭제

Co-authored-by: 상규 <[email protected]>

* 헤더 프로필 이름 렌더링 및 삭제 완료 후 메인페이지로 이동하는 기능 구현 (#225)

* fix: 삭제가 완료되면 메인 페이지로 이동하도록 변경

* feat: header 프로필 이름 추가

* 글 상세조회 . 오타 수정 (#228)

* fix: 삭제가 완료되면 메인 페이지로 이동하도록 변경

* feat: header 프로필 이름 추가

* style: 오타 수정

* hotfix (#232)

* fix: 삭제가 완료되면 메인 페이지로 이동하도록 변경

* feat: header 프로필 이름 추가

* style: 오타 수정

* hotfix: 권한이 없을 경우 글 조회 안되는 오류 수정

* 서포터 선택기능 제거 (#257)

feat: 서포터 선택기능 제거

Co-authored-by: 상규 <[email protected]>

* 로그아웃시 기능 사용 못하도록 수정 (#258)

fix: 로그아웃시 메인 페이지로 이동하도록 수정

* 스토리북 구현 (#259)

* style: components 내부 파일 폴더로 분리

* chore: 스토리북 패키지 설치 및 기본 설정

* test: 공용 컴포넌트 스토리북 추가

* 프론트엔드 CD 설정 (#261)

chore: 프론트엔드 CD 설정

* 프론트엔드 CD 테스트 (#262)

* webpack 초기 환경 설정 (#8)

chore: 프로젝트 초기 환경 설정

* Layout 컴포넌트 구현 (#10)

* assets: Pretendard 폰트 추가

* design: GlobalStyle 및 ResetStyle 적용

* feat: Header, Layout 컴포넌트 구현

* MSW 설정 (#17)

* chore: 환경 변수 NODE_ENV 설정

* feat: msw 초기 설정

* Avartar, Tag, Button, Modal 컴포넌트 구현 (#20)

* feat: Avatar 컴포넌트 구현

* feat: Button 컴포넌트 구현

* assets: close-icon-red svg 추가

* feat: Tag 컴포넌트 구현

* design: Button 디폴트 스타일 설정

* feat: Modal 컴포넌트 구현

* React Router 설정 (#23)

* design: Layout background 제거

* feat: 페이지 라우팅 설정

* msw, tsconfig, Avatar 공통 변경사항 반영 (#27)

* chore: json 파일을 import하기 위한 tsconfig 수정

* fix: msw dev에서만 작동하도록 수정

* design: Avatar 기본 사이즈 설정

* 러너 게시글 조회 페이지 구현 (#31)

* feat: RunnerPostPage 구현

* assets: 채팅수, 조회수 아이콘 svg 추가

* feat: 러너 게시글 mock data 추가

* feat: RunnerPostPage api 요청 기능 추가

* refactor: PostTag 컴포넌트 분리

* 러너 게시물 생성 페이지 구현 (#33)

* feat: InputBox 컴포넌트 구현

* feat: TagInput 컴포넌트 구현

* feat: Textarea 컴포넌트 구현

* feat: RunnerPostCreatePage 페이지 구현

* refactor: InputBox 컴포넌트 InputText Props 삭제

* refactor: props로state를 받도록 변경

* refactor: 입력 state관련 set 함수명 수정

---------

Co-authored-by: 상규 <[email protected]>

* 메인 페이지 구현 (#34)

* chore: json 파일을 import하기 위한 tsconfig 수정

* fix: msw dev에서만 작동하도록 수정

* design: Avatar 기본 사이즈 설정

* feat: MainPage 구현

* fix: map key 오류 수정

* feat: RunnerPost 타입 추가

* feat: 러너가 올린 게시물 조회 msw 구현

* refactor: RunnerPost 타입 지정

* feat: Tag 컴포넌트 렌더링 추가

* refactor: mock data 네이밍 통일

* 구현한 페이지 라우터 연결 (#42)

* feat: 구현한 페이지 라우터 연결 및 hook 분리

Co-authored-by: 에이든 <[email protected]>
Co-authored-by: 남상규 <[email protected]>

* feat: 로고 클릭시 홈 이동 기능 추가

---------

Co-authored-by: 에이든 <[email protected]>
Co-authored-by: 남상규 <[email protected]>

* 러너 글 목록 조회 API 변경에 따른 MainPage 수정 (#55)

* fix: api 명세 변경에 따른 러너 글 타입 수정

* feat: 러너 글 목록 조회 api 변경에 따른 MainPage 수정

* API 요청 Endpoint 변경 (#69)

* fix: dev server 새로고침 오류 수정

* refactor: index.html 경로 src 외부 public 폴더로 이동

* feat: api 엔드포인트 변경

dev server에서만 msw 적용하도록 변경

* 절대 경로 재설정 (#71)

chore: import 절대경로 path 재설정

* 불필요한 환경 변수 플러그인 제거 (#73)

fix: build 오류 수정

웹팩 dev 환경변수 플러그인 제거

* Label 컴포넌트 구현 (#88)

feat: Label 컴포넌트 구현

* 서포터 선택 결과 페이지 구현 (#90)

feat: 서포터 선택 결과 페이지 구현

* 메인 페이지 및 상세 게시글 리뷰 상태 라벨 추가 (#91)

* feat: mockData에 reviewStatus 추가

* feat: reviewStatus 타입 및 Label text 추가

* feat: 메인 페이지에 리뷰 상태 Label 추가

* feat: 러너 게시글 상세 페이지에 리뷰 상태 Label 추가

* 서포터 선택 시 확인 모달창 구현 (#92)

feat: 서포터 선택 시 확인 모달창 구현

* 서포터 선택 페이지 구현 (#103)

* feat: 서포터 선택페이지 라우팅 추가

* asset: github-icon svg파일 추가

* feat: 서포터 선택 페이지 msw 핸들러 추가

* feat: SupporterSelectPage 페이지 컴포넌트 추가

* feat: 서포터 선택 페이지 관련 타입 추가

* feat: SupporterSelectItem, List 컴포넌트 추가

* feat: ConfirmModal 컴포넌트 Props 추가

* feat: RunnerPostCreatePage 페이지 컴포넌트 api 기능 제거

* fix: supportSelect 타입 오류 수정

* fix: 저장 누락 반영

---------

Co-authored-by: 상규 <[email protected]>

* CI를 위한 테스트 코드 작성 (#111)

* chore: testing library react 및 jest 패키지 설정

* test: CI를 위한 컴포넌트 테스트코드 작성

* CI설정 with GitHub Actions (#113)

* style: 팀 컨벤션에 맞게 프론트엔드 최상위 폴더명 변경

* chore: 프론트엔드 CI 설정

* ConfirmModal 컴포넌트 테스트코드 작성 (#116)

* test: ConfirmModal 컴포넌트 테스트코드 작성

* fix: workflow -> workflows 수정

* fix: github action working directory 수정

* API 명세 변경에 따른 기능 추가 (#123)

* fix: types 파일명 변경을 위한 파일 삭제

* feat: API 명세에 맞춰 타입 추가 및 mock data 변경

* feat: 러너 게시글 상세 페이지 삭제, 코드 보러가기 기능 추가

* style: 러너 상세 게시글 타입 이름 수정

* refactor: API 명세에 맞춘 타입을 import 하도록 변경

* 로그인 페이지 구현 (#124)

* feat: 헤더에 로그인 버튼 클릭시 로그인 페이지로 이동하는 기능 추가

* feat: 로그인 페이지 컴포넌트 구현

* fix: asset경로 절대경로로 수정

---------

Co-authored-by: 상규 <[email protected]>

* 서포터 선택 목록 -> 글 생성할 때 띄우는 기능 구현 (#128)

* feat: InputBox font-size, font-weight props 추가

* feat: 서포터 리스트 mockData 추가

* feat: 서포터 선택 목록 페이지를 모달 컴포넌트로 변경

* design: Textarea border 수정

* fix: TagInput을 form태그 안에 넣을 경우 submit이 되는 오류 수정

* feat: 서포터 선택 목록 모달 기능 구현

* fix: cherry-pick conflict 해결

* fix: type 오류 수정

* feat: 프론트엔드 로컬에서 백엔드 서버 api 요청을 위한 proxy 포트 설정

* feat: api 명세 변경에 따른 컴포넌트 props 수정

* 서버 api 엔드포인트 변경 (#133)

* feat: 변경된 api 명세에 따른 msw uri 수정

* feat: 배포 서버 base url 수정

* feat: 삭제 확인 모달창 구현

* test: 확인 모달창 변경에 따른 테스트코드 작성

* 사용하지 않는 기능 숨기기 (#137)

* design: Layout margin-bottom 추가

* design: 리뷰 진행중 라벨 디자인 추가

* feat: 준비중인 기능 알림 메시지 추가

* feat: 사용하지 않는 기능 주석 처리

* 프론트엔드 배포 작업 (#135)

* webpack 초기 환경 설정 (#8)

chore: 프로젝트 초기 환경 설정

* Layout 컴포넌트 구현 (#10)

* assets: Pretendard 폰트 추가

* design: GlobalStyle 및 ResetStyle 적용

* feat: Header, Layout 컴포넌트 구현

* MSW 설정 (#17)

* chore: 환경 변수 NODE_ENV 설정

* feat: msw 초기 설정

* Avartar, Tag, Button, Modal 컴포넌트 구현 (#20)

* feat: Avatar 컴포넌트 구현

* feat: Button 컴포넌트 구현

* assets: close-icon-red svg 추가

* feat: Tag 컴포넌트 구현

* design: Button 디폴트 스타일 설정

* feat: Modal 컴포넌트 구현

* React Router 설정 (#23)

* design: Layout background 제거

* feat: 페이지 라우팅 설정

* msw, tsconfig, Avatar 공통 변경사항 반영 (#27)

* chore: json 파일을 import하기 위한 tsconfig 수정

* fix: msw dev에서만 작동하도록 수정

* design: Avatar 기본 사이즈 설정

* 러너 게시글 조회 페이지 구현 (#31)

* feat: RunnerPostPage 구현

* assets: 채팅수, 조회수 아이콘 svg 추가

* feat: 러너 게시글 mock data 추가

* feat: RunnerPostPage api 요청 기능 추가

* refactor: PostTag 컴포넌트 분리

* 러너 게시물 생성 페이지 구현 (#33)

* feat: InputBox 컴포넌트 구현

* feat: TagInput 컴포넌트 구현

* feat: Textarea 컴포넌트 구현

* feat: RunnerPostCreatePage 페이지 구현

* refactor: InputBox 컴포넌트 InputText Props 삭제

* refactor: props로state를 받도록 변경

* refactor: 입력 state관련 set 함수명 수정

---------

Co-authored-by: 상규 <[email protected]>

* 메인 페이지 구현 (#34)

* chore: json 파일을 import하기 위한 tsconfig 수정

* fix: msw dev에서만 작동하도록 수정

* design: Avatar 기본 사이즈 설정

* feat: MainPage 구현

* fix: map key 오류 수정

* feat: RunnerPost 타입 추가

* feat: 러너가 올린 게시물 조회 msw 구현

* refactor: RunnerPost 타입 지정

* feat: Tag 컴포넌트 렌더링 추가

* refactor: mock data 네이밍 통일

* 구현한 페이지 라우터 연결 (#42)

* feat: 구현한 페이지 라우터 연결 및 hook 분리

Co-authored-by: 에이든 <[email protected]>
Co-authored-by: 남상규 <[email protected]>

* feat: 로고 클릭시 홈 이동 기능 추가

---------

Co-authored-by: 에이든 <[email protected]>
Co-authored-by: 남상규 <[email protected]>

* 러너 글 목록 조회 API 변경에 따른 MainPage 수정 (#55)

* fix: api 명세 변경에 따른 러너 글 타입 수정

* feat: 러너 글 목록 조회 api 변경에 따른 MainPage 수정

* API 요청 Endpoint 변경 (#69)

* fix: dev server 새로고침 오류 수정

* refactor: index.html 경로 src 외부 public 폴더로 이동

* feat: api 엔드포인트 변경

dev server에서만 msw 적용하도록 변경

* 절대 경로 재설정 (#71)

chore: import 절대경로 path 재설정

* 불필요한 환경 변수 플러그인 제거 (#73)

fix: build 오류 수정

웹팩 dev 환경변수 플러그인 제거

* Label 컴포넌트 구현 (#88)

feat: Label 컴포넌트 구현

* 서포터 선택 결과 페이지 구현 (#90)

feat: 서포터 선택 결과 페이지 구현

* 메인 페이지 및 상세 게시글 리뷰 상태 라벨 추가 (#91)

* feat: mockData에 reviewStatus 추가

* feat: reviewStatus 타입 및 Label text 추가

* feat: 메인 페이지에 리뷰 상태 Label 추가

* feat: 러너 게시글 상세 페이지에 리뷰 상태 Label 추가

* 서포터 선택 시 확인 모달창 구현 (#92)

feat: 서포터 선택 시 확인 모달창 구현

* 서포터 선택 페이지 구현 (#103)

* feat: 서포터 선택페이지 라우팅 추가

* asset: github-icon svg파일 추가

* feat: 서포터 선택 페이지 msw 핸들러 추가

* feat: SupporterSelectPage 페이지 컴포넌트 추가

* feat: 서포터 선택 페이지 관련 타입 추가

* feat: SupporterSelectItem, List 컴포넌트 추가

* feat: ConfirmModal 컴포넌트 Props 추가

* feat: RunnerPostCreatePage 페이지 컴포넌트 api 기능 제거

* fix: supportSelect 타입 오류 수정

* fix: 저장 누락 반영

---------

Co-authored-by: 상규 <[email protected]>

* CI를 위한 테스트 코드 작성 (#111)

* chore: testing library react 및 jest 패키지 설정

* test: CI를 위한 컴포넌트 테스트코드 작성

* CI설정 with GitHub Actions (#113)

* style: 팀 컨벤션에 맞게 프론트엔드 최상위 폴더명 변경

* chore: 프론트엔드 CI 설정

* ConfirmModal 컴포넌트 테스트코드 작성 (#116)

* test: ConfirmModal 컴포넌트 테스트코드 작성

* fix: workflow -> workflows 수정

* fix: github action working directory 수정

* API 명세 변경에 따른 기능 추가 (#123)

* fix: types 파일명 변경을 위한 파일 삭제

* feat: API 명세에 맞춰 타입 추가 및 mock data 변경

* feat: 러너 게시글 상세 페이지 삭제, 코드 보러가기 기능 추가

* style: 러너 상세 게시글 타입 이름 수정

* refactor: API 명세에 맞춘 타입을 import 하도록 변경

* 로그인 페이지 구현 (#124)

* feat: 헤더에 로그인 버튼 클릭시 로그인 페이지로 이동하는 기능 추가

* feat: 로그인 페이지 컴포넌트 구현

* fix: asset경로 절대경로로 수정

---------

Co-authored-by: 상규 <[email protected]>

* 서포터 선택 목록 -> 글 생성할 때 띄우는 기능 구현 (#128)

* feat: InputBox font-size, font-weight props 추가

* feat: 서포터 리스트 mockData 추가

* feat: 서포터 선택 목록 페이지를 모달 컴포넌트로 변경

* design: Textarea border 수정

* fix: TagInput을 form태그 안에 넣을 경우 submit이 되는 오류 수정

* feat: 서포터 선택 목록 모달 기능 구현

* fix: cherry-pick conflict 해결

* fix: type 오류 수정

* feat: 프론트엔드 로컬에서 백엔드 서버 api 요청을 위한 proxy 포트 설정

* feat: api 명세 변경에 따른 컴포넌트 props 수정

* 서버 api 엔드포인트 변경 (#133)

* feat: 변경된 api 명세에 따른 msw uri 수정

* feat: 배포 서버 base url 수정

* feat: 삭제 확인 모달창 구현

* test: 확인 모달창 변경에 따른 테스트코드 작성

* 사용하지 않는 기능 숨기기 (#137)

* design: Layout margin-bottom 추가

* design: 리뷰 진행중 라벨 디자인 추가

* feat: 준비중인 기능 알림 메시지 추가

* feat: 사용하지 않는 기능 주석 처리

---------

Co-authored-by: KangSan Lee <[email protected]>
Co-authored-by: 남상규 <[email protected]>
Co-authored-by: 상규 <[email protected]>
Co-authored-by: 에이든 <[email protected]>
Co-authored-by: 남상규 <[email protected]>

* webpack prod publicPath 재설정 (#153)

* fix: 이미지 경로 및 새로고침 오류 수정

index.html base 태그 설정

* fix: base 태그 사용 대신 webpack publicPath 변경

상대경로를 사용하지 않도록 변경

* 게시물 상세 조회 페이지 디자인 수정 (#182)

* feat: Button 컴포넌트 colorTheme 추가

* fix: 선택 완료 목록 height값 추가

* design: 게시물 상제 조회 디자인 수정

* feat: 글 생성 완료 멘트 수정

* 마이페이지 구현 (#185)

* feat: 마이페이지 관련 타입추가

* feat: 마이페이지 관련 msw 데이터 및 핸들러 추가

* feat: MyPage 페이지 컴포넌트 추가

* feat: ProfileRunnerPostItem 컴포넌트 추가

* feat: ListFilter 컴포넌트 추가

* feat: 마이페이지 페이지 라우팅 추가

* refactor: list태그div에서ul로 수정

* fix : 페이지 상수에 / 추가

* refactor: runnerProfile 타입명에 Get추가

* refactor: Profile 타입을 따로 분리

* refactor: iternator 명 수정

---------

Co-authored-by: 상규 <[email protected]>

* 서포터 선택 상세정보 개발언어 추가, 분야별 필터링 기능 구현 (#181)

* fix: type import 파일명 수정

* fix: 브라우저의 높이가 작아졌을 때 모달 컨텐츠가 화면을 벗어나는 오류 수정

* feat: 개발스택 라벨 추가

* feat: 개발 분야 필터링 기능 구현

* feat: 서포터 선택 목록 목데이터 수정

* feat: 서포터 technicalTags 타입 추가

* feat: 개발스택 라벨 svg 컴포넌트 추가

* design: 선택된 서포터 width값 변경

* fix: dom에 스타일이 나타나지 않도록 달러사인 추가

* fix: 기술스택 라벨 key값 추가

* feat: 서포터 분야별 필터링 기능 구현

* refactor: svg 컴포넌트 화살표 함수로 변경

* refactor: 기술태그 key 고유값으로 변경

* refactor: 변수 네이밍 변경

* 웹 표준 및 웹 접근성 준수 (#198)

* refactor: 시멘틱 태그 적용

* refactor: 이미지 alt 속성 추가

* feat: 제목 input autoFocus 기능 추가

* feat: 리뷰 요청 글 작성 aria-label 추가

* 서포터 선택 필터 기능 useEffect dependency 수정 (#200)

* fix: supporterId와 key값이 겹치는 오류 수정

* fix: 무한으로 useEffect가 호출되는 오류 수정

* 깃허브 소셜 로그인 기능 구현 (#203)

* feat: 로그인 버튼 URL 연결

* feat: 깃허브 콜백 페이지 구현

* feat: useLogin 구현

* feat: Header 로그인 버튼 기능 구현

* feat: 토큰 유효기간 검증 기능 구현

* fix: 토큰 유효기간 검증 로직 수정

* refactor: useLogin -> useToken 으로 변경

* feat: Avartar 컴포넌트 onClick Props 추가

* feat: usePageRouter 마이 페이지 추가

* feat: api 요청시 헤더에 토큰 추가

* feat: 상세 페이지 목록 버튼 뒤로가기로 변경

Co-authored-by: 에이든 <[email protected]>
Co-authored-by: 남상규 <[email protected]>

* fix: 컴포넌트 list key값 및 DOM에 나타나지 않도록 달러 사인 추가

* feat: 마이 페이지 게시글 바로가기 기능 추가 및 hover 스타일 추가

* feat: 메인 페이지 게시글 조회수, 채팅수 아이콘 추가

---------

Co-authored-by: 에이든 <[email protected]>
Co-authored-by: 남상규 <[email protected]>

* 프론트엔드 배포 작업 (#208)

feat: api 엔드포인트 localhost로 변경

* [hotfix] 프론트엔드 엔드포인트 변경 후 재배포 (#215)

* fix: api 요청 엔드포인트 변경

* fix: api 요청 엔드포인트 도메인 주소로 변경

* [hotfix] 프론트엔드 엔드포인트 변경 후 재배포(2) (#216)

* fix: api 요청 엔드포인트 변경

* fix: api 요청 엔드포인트 도메인 주소로 변경

* fix: https 사이트에서 http 요청을 보내기 위한 meta 태그 추가

* [hotfix] 프론트엔드 엔드포인트 변경 후 재배포 (3) (#217)

fix: 엔드포인트 포트 삭제

Co-authored-by: 상규 <[email protected]>

* 헤더 프로필 이름 렌더링 및 삭제 완료 후 메인페이지로 이동하는 기능 구현 (#225)

* fix: 삭제가 완료되면 메인 페이지로 이동하도록 변경

* feat: header 프로필 이름 추가

* 글 상세조회 . 오타 수정 (#228)

* fix: 삭제가 완료되면 메인 페이지로 이동하도록 변경

* feat: header 프로필 이름 추가

* style: 오타 수정

* hotfix (#232)

* fix: 삭제가 완료되면 메인 페이지로 이동하도록 변경

* feat: header 프로필 이름 추가

* style: 오타 수정

* hotfix: 권한이 없을 경우 글 조회 안되는 오류 수정

* 서포터 선택기능 제거 (#257)

feat: 서포터 선택기능 제거

Co-authored-by: 상규 <[email protected]>

* 로그아웃시 기능 사용 못하도록 수정 (#258)

fix: 로그아웃시 메인 페이지로 이동하도록 수정

* 스토리북 구현 (#259)

* style: components 내부 파일 폴더로 분리

* chore: 스토리북 패키지 설치 및 기본 설정

* test: 공용 컴포넌트 스토리북 추가

* 프론트엔드 CD 설정 (#261)

chore: 프론트엔드 CD 설정

---------

Co-authored-by: KangSan Lee <[email protected]>
Co-authored-by: 남상규 <[email protected]>
Co-authored-by: 상규 <[email protected]>
Co-authored-by: 에이든 <[email protected]>
Co-authored-by: 남상규 <[email protected]>

* 프론트엔드 CD 테스트 (2) (#263)

* chore: 프론트엔드 CD 설정

* fix: npm i 추가

* 프론트엔드 CD 재설정 (#267)

chore: 프론트엔드 CD workflow 설정

* 프론트 개발 서버용 CD 설정 (#294)

* chore: 프론트엔드 개발 서버 CD 설정

* feat: 개발용, 제품용 서버 URL 분리

* fix: https 변환 메타 태그 삭제

* 프론트 개발 서버용 CD 설정 (#299)

* chore: 프론트엔드 개발 서버 CD 설정

* feat: 개발용, 제품용 서버 URL 분리

* fix: https 변환 메타 태그 삭제

* fix: 배포시 개발서버에서 제품용 URL로 요청보내는 오류 수정

* chore: 개발 서버용 환경변수 설정

* 프론트엔드 개발 서버 환경변수 적용 (#301)

fix: 개발 서버 환경변수 적용

* dotenv 환경변수 설정 (#303)

* hotfix: 환경변수 플러그인 추가

* fix: 개발 서버 포트 변경

* chore: dotenv 패키지 설정

* 러너 게시물 생성 페이지 수정 ( 마감기한 입력 ) (#306)

* feat: date 연산 유틸 함수 추가

* feat: 마감기한 input 타입 수정 및 입력 일자 최대 최소값 추가

* refactor: 필요없는 스타일 컴포넌트 삭제

---------

Co-authored-by: 상규 <[email protected]>

* 태그 입력 수정 (#269)

fix: 빈 태그 입력창에 enter 입력 시 기존에 입력된 태그가 사라지는 현상 수정

Co-authored-by: 상규 <[email protected]>

* 채팅방 아이콘을 사람 아이콘으로 변경 (#314)

* feat: api 명세 변경에 따른 서포터 지원 수 네이밍 추가

* assets: 서포터 지원자 아이콘 추가

* API 요청 메서드 분리 (#319)

* feat: fetch 관련 메서드 분리

* refactor: 메인 페이지 게시글 get api 메서드 분리

* 웹팩 플러그인 설정 수정 (#313)

* fix: EnvironmentPlugin 플러그인이 prod환경에서만 동작하도록 변경

* refactor: webpack dev prod 중복 플러그인 common 파일로 통합

* refactor: 필요없는 공백, import 제거

* refactor: 필요없는 공백 제거

---------

Co-authored-by: 상규 <[email protected]>

* ConfirmModal 문구 수정 및 esc 기능 추가 (#327)

feat: ConfirmModal 확인,취소 Props 및 esc 기능 추가

* 서포터 선택 페이지 구현 (#312)

* feat: 서포터 후보 타입 추가

* feat: 서포터 후보 목록 컴포넌트 구현

* feat: 서포터 선택 페이지 구현

* feat: 서포터 후보 msw 추가

* feat: 서포터 선택 api 추가

* feat: 서포터가 남긴 메시지 스크롤 비표시

* refactor: (구)서포터 선택 관련 컴포넌트, 타입 삭제

* refactor: 컴포넌트에서 fetch 메서드를 사용하도록 변경

* Toast 기능 구현 (#333)

* assets: 토스트에 필요한 완료/에러 아이콘 추가

* feat: index에 토스트를 위한 div 추가

* feat: Toast 컴포넌트 구현

* feat: useToast hook 추가

* test: Toast 스토리북 추가

* design: Toast 화면 가운데로 조정

* 프로필 수정 페이지 구현 (#330)

* feat: 러너, 서포터 프로필 mock 데이터 추가

* feat: Object 타입 깊은 비교 유틸 함수 추가

* feat: 기술 tag 관련 타입, 상수 추가

* assets: 기술 태그 svg 파일 추가

* feat: inputBox, Textarea 컴포넌트 rest, style props 추가

* feat: techLabelButton 컴포넌트 추가

* feat: TechTagSelectModal 컴포넌트 추가

* feat: profile 관련 타입 추가

* feat: 프로필 수정 페이지 컴포넌트 추가

* feat: 프로필 수정 페이지 라우팅 추가

* feat: 마이 프로필 수정, 조회 msw 핸들러 추가

* feat: 소속, 이름을 입력 시 공백 문자 하나만을 입력 후 저장할 수 없도록 수정

* feat: 프로필 저장 시 앞뒤 공백이 자동 삭제되는 기능 추가

* feat: form 내부에서 enter입력 시 저장되는 기능 추가

* style: 변수명 수정

* style: 화살표 함수로 유틸함수 수정

* refactor: sort 콜백 함수 삭제

* refactor: modal컴포넌트 sort 콜백 함수 삭제

* sytle: props명 수정

---------

Co-authored-by: 상규 <[email protected]>

* 핸들러 오타 수정 (#356)

fix: 오타 수정

Co-authored-by: 상규 <[email protected]>

* 마이페이지 기능 구현 (#328)

* feat: api 명세 변경에 따른 mockData 추가 및 타입명 변경

* refactor: 마이페이지 runner response type명 변경

* refactor: 마이페이지 러너 게시글 목록 컴포넌트 분리

* feat: 마이페이지 러너 게시글 조회수 및 지원자 수 mockData 추가

* fix: tag명 타입 오타 수정

* feat: 서포터 선택하기 버튼 추가

* feat: 기술스택 라벨 및 깃허브 바로가기 버튼 추가

* feat: 진행중인 리뷰 코드 보러가기 버튼 추가

* fix: 잘못된 mockData 수정

* feat: 러너, 서포터별 마이페이지 mockData 추가

* refactor: 러너, 서포터 게시글 fetch 분리 및 공통 컴포넌트 통합

* design: 화면 전환시 레이아웃 밀리는 현상 수정

* feat: 러너, 서포터 상태에 따른 게시물 버튼 렌더링

* feat: 러너, 서포터별 정보를 마이페이지에 불러오는 기능 구현

* refactor: 로컬 개발용 토큰 삭제

* refactor: 프로필, 글 목록 fetch를 각각 하나의 함수로 통합

* refactor: profile과 myPage 타입을 분리

* refactor: 글 목록 옵션 생성 함수를 유틸 함수로 분리

* refactor: styled-components 적용

* refactor: supporter로 수정 및 삼항연산자 적용

* refactor: type명 통일

* fix: 중복된 BASE_URL 삭제

* api 공통 메서드 수정 (#376)

* refactor: 모든 메서드에 .json()을 사용하지 않도록 수정

* refactor: 불필요한 정보 삭제

* feat: response 에러코드를 처리하도록 fetch함수 변경

* refactor: useEffect 내부 fetch 함수 분리

* Toast에 Context API 적용 (#379)

* feat: ToastContext 구현

* feat: useToast 제거, 전역 Toast 적용

* test: Toast 스토리북 ms 추가

* 러너 글 작성 PR 주소 유효성 검증 (#380)

* feat: PR 주소 유효성 검증 추가

* refactor: 입력 유효성 검증 함수 유틸함수로 분리

---------

Co-authored-by: 상규 <[email protected]>

* 프로필 상세 보기 페이지 구현 (러너, 서포터) (#364)

* refactor: 중복된 타입 삭제 및 타입명 수정

* feat: 프로필 조회를 위한 runner, supporter id mockData 추가

* feat: 서포터 프로필 조회 컴포넌트 구현

* feat: 러너 프로필 조회 컴포넌트 구현

* test: 러너, 서포터 프로필 조회 msw 구현

* feat: 서포터 완료한 리뷰 게시글 렌더링 구현

* fix: 서포터 게시글 조회에서 러너 프로필 안보이도록 타입 및 컴포넌트 수정

* refactor: fetch 함수 수정

* 후기 작성 페이지 구현 (#366)

* assets: 후기 작성페이지 asset 추가

* assets: letter 아이콘 파일 수정

* feat: 후기 작성 페이지 라우팅 및 msw 핸들러 추가

* assets: checkbox 아이콘 파일 수정

* feat: 피드백 페이지 상수 및 타입 설정

* feat: CheckBox 컴포넌트 생성

* feat: reviewTypeButton (피드백 페이지 캐릭터 버튼)컴포넌트 생성

* feat: 후기 작성 페이지 컴포넌트 생성

* feat: 후기 작성  옵션 수정

* fix: api 함수 수정

* feat: 피드백 버튼 아이콘 수정

* refactor: ReviewTypeButton 컴포넌트 Props 번경

* feat: reviewTypeContainer 스타일 컴포넌트 추가

---------

Co-authored-by: 상규 <[email protected]>

* 분리된 fetch 적용안된 컴포넌트 수정 (#384)

* feat: Header 컴포넌트 프로필 GET api 변경

* refactor: MainPage 게시글 GET 타입 추가

* refactor: 게시글 상세 조회 컴포넌트 GET, DELETE api 수정

* refactor: 마이페이지 GET api 수정

* refactor: 러너 글 생성 POST api 수정

* refactor: 서포터 선택 GET, PATCH api 수정

* refactor: 프로필 수정 GET, PATCH api 수정

* refactor: 로그인 토큰 GET api 수정

* fix: msw handler 병합 오류 수정

* fix: ProfileEditPage 병합 오류 수정

* refactor: 헤더 프로필 정보 변수명 변경

* style: 오타 수정

* refactor: 토큰 오류 alert로 수정

* fix: RunnerPostCreatePage 병합 오류 수정

* 배포용 api uri 적용 (#386)

feat: 변경된 api uri 적용

* fetch content-type 수정 (#388)

fix: fetch Content-type 수정

* 메인페이지 더보기 기능 추가 (#385)

* feat: 전체 러너 게시글 조회 타입 pageInfo 추가

* feat: RunnerPostList 더보기 기능 구현 및 리팩터링

게시글 목록을 Props로 받도록 변경

* feat: 러너 게시글 전체 mock data에 pageInfo 추가

* 서포터 마이페이지 버튼 기능 추가 (제안취소, 리뷰완료) (#389)

* feat: patch 요청 body 옵셔널로 변경

* refactor: MyPage api 요청 방식 변경

* feat: usePageRouter 서포터 선택, 서포터 피드백 페이지 추가

* feat: 마이페이지 게시글 supporterId 추가

* feat: 마이페이지 러너 게시글 mock data supporterId 추가

* fix: 서포터 선택, 서포터 피드백 페이지 라우터 인자 추가

* feat: MyPagePostButton 구현

* 게시물 상세 조회 리뷰 제안하기 기능 추가 (#381)

* design: Textarea 컴포넌트 변경

line-height Props 추가
resize: none 추가
placeholder의 fontSize도 변경 가능

* feat: SendMessageModal 컴포넌트 구현

* refactor: 러너 게시글 상세 페이지 api 메서드 분리

* feat: 상세 게시글 타입 isApplied 추가

* refactor: SendMessageModal 메시지 state Props 추가

* feat: 리뷰 제안 기능 추가

* feat: 리뷰 제안 msw 추가

* feat: 러너 상세 조회 mock data에 isApplied 추가

* MSW 버전 업 (#397)

chore: msw v1.2.3으로 변경

* 마이페이지 게시글 uri 수정 및 필터 삭제 (#399)

* fix: MainPage get uri 수정

* fix: 불필요한 msw mockData 삭제

* feat: 마이페이지 쿼리 파라미터 추가

* 토스트 메세지 적용 및 에러 핸들링 수정 (#403)

* feat: toast 메세지 상수 추가

* feat: useToken 유효성 검증 방식 변경

* feat: toast 메세지 상수 추가

* alert 메세지로 toast 메세지로 변경

* fix: 마이페이지 무한 리렌더링 오류 수정

* fix: 러너 페이지 생성 창에서 엔터 입력시 입력되어 있던 태그가 사라지는 현상 수정

* refactor: fetch 함수 매개변수 변경

* feat: 병합 후 누락된 토스트 메세지 추가

---------

Co-authored-by: 상규 <[email protected]>

* 로고 이미지 및 메인 색상 변경 + 폰트 CDN 추가 (#402)

* assets: 새로운 로고 svg 추가

* design: 전역 폰트, 메인 색상 및 폰트를 CDN으로 불러오도록 변경

* assets: font를 CDN으로 불러오도록 변경

* chore: 불필요한 모듈 삭제

* 프로필 수정하기 기능 연결 (#405)

* design: 로그인 버튼 디자인 수정

* design: 로그인 페이지 헤더 삭제

* feat: 마이페이지에서 프로필 수정 페이지로 가는 기능 구현

* design: 마이페이지 소개 width 설정

* refactor: 서포터 선택 토스트 메시지 상수화

* 메인 페이지 게시글 get 요청, Toast 에러 수정 (#411)

* feat: 마이페이지, 메인페이지 pageInfo 추가

* fix: msw 오류 수정

* 배포 전 오류 수정 (#418)

* design: 버튼 위치 변경 및 필터 밑줄 스타일 변경

* fix: 러너 서포터 옵션값을 변경했을 때 본래의 게시물 리스트가 남아있는 오류 수정

* asset: asset 속성 값 수정

* feat: 리뷰 제안 취소 기능 msw 추가

* refactor: 누락된 메세지 상수화 완료

* feat: 피드백 작성 완료 메세지 추가

* design: 게시물 생성 페이지 잘린 글자 스타일 수정

* feat: 배포용 prod workflow 파일 생성

* design: 마이페이지 디자인 수정

* design: 프로필 페이지 스타일 수정

* fix: 러너, 서포터 옵션을 변경할 시 기존 리스트가 남아있는 오류 수정

* feat: 메인페이지 더보기 기능 토큰 존재 여부 검사 추가

* feat: 리뷰 제안 취소, 리뷰 완료 후 리로드 기능 추가

---------

Co-authored-by: 상규 <[email protected]>

* [hotfix] 페이지 계속 추가되는 오류 수정 (#419)

fix: 페이지 계속 추가되는 오류 수정

* 마감기한 지남 (OVERDUE) 라벨 추가 (#421)

* feat: 마감기한 지남 상태 추가

* design: 러너 게시글 프로필 이름 가운데 정렬

* [hotfix] 피드백 제출 토스트 문구 수정 (#422)

fix: 피드백 제출 토스트 문구 수정

* 반응형 레이아웃 구현 (#442)

* assets: 모바일 로고 에셋 추가

* design: 게시글 리스트 반응형 디자인 적용

* feat: 반응형 디자인 커스텀 훅 구현

* design: 공용 컴포넌트 모바일 사이즈 추가

* design: 메인페이지 더보기 레이아웃 수정

* design: 로고 사이즈 수정

* design: 글 상세페이지 및 작성페이지 반응형 적용

* design: 러너 게시글 모바일 아이콘 사이즈 수정

* fix: 커스텀 훅 대소문자 오타 수정

* 가이드라인 컴포넌트 추가 (#447)

* asset: 화살표 svg 추가

* feat: GuideTextarea 컴포넌트 추가

---------

Co-authored-by: 상규 <[email protected]>

* 메인 페이지 필터/검색 구현 (#443)

* assets: 필터, 태그 검색 아이콘 추가

* feat: 러너 게시글 검색 컴포넌트 구현

* feat: 메인 페이지에 검색 기능 추가

* feat: 검색창 자동완성 태그 클릭 기능 구현

* feat: 검색창 자동완성 Arrow,Enter 기능 구현

* feat: Tag 관련 타입 추가

* feat: 태그 검색 API 추가

* feat: 태그 검색 MSW 추가

* feat: 자동 완성창에서 위/아래, 엔터 이외의 키가 동작하도록 변경

* fix: 게시글 검색 query parameter 변경

* design: 마감기한 지남 -> 기간 만료 문구 변경

* design: 검색 레이아웃 반응형 적용

* fix: 게시글 검색 쿼리파라미터 tagName 사용

* 프론트 CD 설정 (#457)

chore: dev_cd runs-on 태그 추가

* 채널톡 기능 구현 (#463)

* feat: 채널톡 기능 추가

* fix: 로컬 환경변수 오류 수정

* fix: 환경변수명 변경

* refactor: 채널톡 키 에러메시지 삭제

* style: 불필요한 console.log 삭제

* 더보기 이후 필터 변경시 리렌더링이 안되는 문제 (#470)

fix: 게시글 리스트 초기화 후 리스트를 set하도록 수정

* 더보기 이후 필터 변경시 리렌더링이 안되는 문제 (#471)

* fix: 게시글 리스트 초기화 후 리스트를 set하도록 수정

* fix: get 게시글 리스트 리셋 메서드 밖으로 분리

* 더보기 이후 필터 변경시 리렌더링이 안되는 문제 (#472)

* fix: 게시글 리스트 초기화 후 리스트를 set하도록 수정

* fix: get 게시글 리스트 리셋 메서드 밖으로 분리

* fix: 필터 변경시 더보기 버튼 비표시

* 러너 게시물 생성 페이지에 가이드라인 추가 (#460)

* feat: GuideText컴포넌트 반응형 디자인 추가

* feat: 러너 게시글 생성 페이지에 가이드라인 추가

* refactor: 가이드라인 메세지 상수로 분리

* feat: 게시물 생성 결과 페이지 삭제

---------

Co-authored-by: 상규 <[email protected]>

* 리프레시 토큰 적용 (#475)

* feat: cookie 관련 유틸 함수 추가

* feat: 로그인 관련 API 분리

* feat: postRequestWithCookie 추가

* feat: refreshToken 추가

* feat: 토큰 없을 때 로그인 페이지로 이동

* 리프레시 토큰 적용 (#484)

* refactor: login.ts 삭제

* feat: APIError class로 변경 및 타입으로 분리

* feat: useFetch 구현

* feat: useLogin 구현

* fix: 게시글 상세조회시 로그인 필요 X

* feat: LoginErrorBoundary 구현

* feat: 로그인 에러 컴포넌트로 분리

* feat: LoginErrorBoundary 추가

* refactor: 필요없는 구문 제거

* feat: useFetch 제네릭 대신 response를 활용

* refactor: useLogin 로직 분리

* feat: 에러 타입 변경

* feat: 로그아웃 기능 추가

* feat: useFetch 적용

* dev 서버 도메인 주소 변경 (#487)

chore: dev 서버 도메인 주소 변경

* Hotfix: 쿠키 관련 로직 제거 (#489)

fix: 쿠키 관련 로직 제거

* Hotfix: 사용하지 않는 import 제거 (#490)

fix: 사용하지 않는 import문 제거

* Hotfix: 채널톡 비활성화 (#491)

fix: 채널톡 비활성화

* 메인 페이지 검색창 변경 (#473)

* refactor: searchPosts에 필요없는 동작 삭제

* fix: msw 태그 검색 uri 수정

* assets: tag icon 회색으로 변경

* design: 검색 필터 디자인 변경

* design: 자동 완성창 디자인 수정

* 보스몬스터 이벤트 페이지 구현 (#477)

* assets: 이벤트 배너 에셋 추가

* chore: webp 확장자 추가

* assets: png 파일 용량 축소

* style: 사용하지 않는 import 삭제

* feat: 이벤트 배너 컴포넌트 구현

* refactor: Layout 컴포넌트 max-width props 추가

* design: 더보기 버튼 margin 수정 및 가운데 위치로 변경

* feat: 미션 페이지 라우터 추가

* assets: 게시물 내 이벤트 배너 에셋 추가

* design: 확인 모달창 크기 및 children 공백 허용

* design: 레이아웃 컴포넌트 padding 수정

* feat: 버튼 컴포넌트 data 속성 추가

* feat: 이벤트 페이지 구현

* feat: 미션 레포지토리 생성 msw 구현

* 글 작성 페이지 pr url 입력창 우측 github 바로가기 버튼 추가 (#478)

feat: pr url 입력창 우측 github 바로가기 버튼 추가

Co-authored-by: 상규 <[email protected]>

* 파비콘 적용 (#479)

feat: 파비콘 적용

Co-authored-by: 상규 <[email protected]>

* 채널톡 복구 (#507)

feat: 채널톡 복구

* 태그 검색 API 수정 (#503)

* fix: 태그 검색 API 수정

* test: msw 태그 검색 API 추가

* 로그인 후 새로고침 해야 하는 버그 (#504)

* fix: useLogin에 async await 사용

* fix: 로그인 오류시 토스트만 띄우도록 변경

* feat: jwt 유틸 함수 추가

* feat: jwt의 유효기간을 확인하도록 변경

* 마이페이지 반응형 디자인 추가 (#508)

* design: 마이페이지 반응형 디자인 추가

* fix: 더보기 버튼이 클릭되지 않는 오류 수정

* design: 러너, 서포터 버튼 반응형 디자인 수정

* design: 마이페이지 반응형 디자인 여백 수정

---------

Co-authored-by: 상규 <[email protected]>

* JWT 유효기간 계산 로직 오류 수정 (#512)

fix: restMinute 계산 오류 수정

* 로그인 오류 관련 로직 추가 (#517)

* feat: 로그인 오류시 엑세스 토큰 삭제

* feat: 토큰 체크 타이머가 끊기지 않도록 설정

* fix: 토큰 남은 시간 2분 전에 refresh하도록 수정

* 한글 검색 자동완성 버그 (#519)

* fix: 한글 입력시 isComposing을 검사

* test: 한글 태그 mock 데이터 추가

* 로그인 토큰 확인 후 App 렌더링 (#525)

* feat: 토큰 refresh 후 App 렌더링

* feat: jwt 유효기간 - 2분 후에 refresh 타이머 설정

* api 에러시 보여주는 문구 변경 (#521)

feat: 기본 에러 메시지 설정

* 레이아웃 시프트 수정 (#522)

* design: 레이아웃 시프트 수정

* design: 게시물 리스트 패딩 추가

---------

Co-authored-by: 상규 <[email protected]>

* 서포터 선택페이지 반응형 디자인 추가 (#529)

* design: 마이페이지 게시물 리스트 밀림현상 제거

* design: 서포터 선택 페이지 반응형 디자인 추가

* design: 서포터 선택 페이지 pc환경에서 레이아웃 변경

---------

Co-authored-by: 상규 <[email protected]>

* favicon, 로딩스피너, 반응형 디자인 수정 (#530)

* fix: favicon 설정 오류 수정

* design: 헤더 프로필 이름 위치 변경 및 기본 이미지 적용

* design: fit-content 삭제

* design: 메인페이지 모바일 padding 삭제

* feat: 러너 게시글 mockData 글자 수 변경

* design: 마이페이지 모바일 아바타 크기 수정

* design: 이벤트 페이지 미션 시작 버튼 디자인 수정

* feat: 로딩 스피너 구현

* chore: 스토리북 배포 설정

* 로그인 만료시 에러 메시지 출력 (#534)

feat: 리프레시 토큰 만료 메시지 출력

* 글 작성 완료 토스트 출력 (#543)

feat: 러너 글 작성 완료 토스트 출력

* 깃허브 Redirect 페이지 로딩 적용 (#540)

feat: redirect page에 로딩 스피너 출력

* 이벤트 미션 시작 오류 처리 (#541)

* design: 이벤트 페이지 여백 수정

* feat: 미션 브랜치 권한 에러메시지 토스트 구현

* 상세 조회 페이지 수정 (#544)

* feat: 버튼 컴포넌트 width props 수정

* feat: 상세페이지 mock데이터 변경

* design: 버튼 너비 수정

* feat: 상세 페이지 contents  세분화

---------

Co-authored-by: 상규 <[email protected]>

* 글 생성 시 두번 생성되는 오류 수정 (#546)

* feat: 러너 게시글 생성 Loading 추가

* design: 반응형 디자인 수정

* 리프레시 토큰 타이머 수정 (#550)

fix: checkLoginToken에 clearTimeout 추가

* 서포터 프로필 페이지 반응형 디자인 추가 및 api 수정 (#553)

* feat: 핸들러 base url 수정

* feat: 서포터 프로필 페이지 반응형 디자인 추가 및 api 수정

* design: 리뷰 제안하기 모달 반응형 추가

* design: 러너 프로필 페이지 반응형 디자인 추가

---------

Co-authored-by: 상규 <[email protected]>

* 프론트엔드 CD BASE URL 수정 (#557)

fix: prod cd 환경변수 수정

* 더보기 연속 클릭 및 게시글 검색 API 통일 (#560)

* feat: 게시글 조회 기능 검색 API로 통일

* feat: 게시글 검색 msw 고도화

* refactor: 사용되지 않는 mockData 삭제

* refactor: 첫 게시글 목록 불러올 때 기본 state 사용

* 반응형 디자인 수정 (#562)

* design: 로그인 페이지 반응형 추가

* design: 메인페이지 게시글 반응형 디자인 수정

* design: 상세페이지 버튼 반응형 디자인 수정

* design: 이벤트 페이지 사진 크기 수정

* refactor: 확인 모달 children 타입 변경

* design: 브랜치 생성 모달 글자 하이라이트 추가

* design: 목록 버튼 디자인 수정

* design: 로딩 스피너 문자를 css로 구현

* 마이페이지 제안취소, 리뷰완료 시 해당 게시물 리스트에서 제거 (#569)

* design: 마이페이지 게시물 반응형 디자인 수정

* design: 서포터 선택페이지 padding 수정

* feat: 마이페이지 더보기 msw 수정

* design: 리뷰 상태 라벨 높이 수정

* feat: 마이페이지 게시물 더보기 msw 추가 (서포터 탭)

* feat: 리뷰 완료 및 제안 취소시 게시글을 목록에서 삭제

* 리프레쉬 토큰 오류 코드 추가, 지원한 서포터 없을 경우 버튼 비활성화 (#572)

* feat: 로그인 만료 오류코드 추가

* feat: 지원한 서포터 없을 경우 버튼 숨기기

* 버튼 props 수정 (#577)

fix: 버튼 props 수정

* hotfix: css 밀리는 현상 수정 (#581)

* CSS 깨짐 현상 (버튼 패딩, 게시물 해시태그) (#590)

* design: 버튼 width, 해시태그 css 수정

* feat: 프로필 수정 뒤로가기 추가

* refactor: ul 태그 추가

* 테스트 코드 작성 (#592)

* chore: cypress 설치

* chore: jest, testing-library 삭제

* chore: test script 수정

* feat: aria-label 추가

* feat: 러너 e2e test 추가

* chore: package.json 버전업

* chore: ci 설정

* chore: ci 설정

* chore: ci 설정

* chore: ci 설정

* chore: ci 설정

* chore: ci 설정

* chore: CI 테스트

* chore: CI 테스트

* chore: CI 테스트

* chore: CI 테스트

* chore: CI 테스트

* chore: CI 테스트

* chore: proxy 설정 삭제

* 프론트엔드 성능 최적화 (#575)

* feat: dynamic import 추가

* feat: 애니메이션에서 transform 옵션만 사용하도록 변경

* feat: font-weight 400 500 700만 사용하도록 변경

* feat: html css js gzip압축 적용

* feat: 압축 플러그인 추가 및 버전 1.1.1로 수정

---------

Co-authored-by: 상규 <[email protected]>

* 글 작성 후 결과 페이지 추가 및 마감기한 기본값 수정 (#605)

* feat: ResultPage 구현

* feat: 기본 마감기한 10일 후로 변경

* feat: 게시글 작성 후 결과 페이지로 이동

* feat: 지원한 서포터가 없을 경우 버튼 비활성화

* fix: mockData deadline 형식에 맞춰 변경

* fix: 결과 페이지 문구 수정

* fix: 마이페이지 렌더링 테스트 수정

* 모달 Context API 적용 및 분리 (#607)

* feat: ModalContext 구현

* feat: Modal 스크롤 방지

* feat: App에 ModalProvider 추가

* refactor: open,close => openModal,closeModal 이름 변경

* design: Modal padding 제거

* refactor: Modal 변경에 따른 리팩터링

* refactor: ModalContext 적용

* fix: Modal 스토리 수정

* design: ConfirmModal 버튼 반응형 적용

* design: ConfirmModal 모바일 패딩 변경

* fix: e2e 테스트 api 요청시 wait 500ms 설정

* fix: ConfirmModal contents 부분 div로 변경

* fix: 상세 페이지 ModalContext 적용

* refactor: NoticePage ModalContext 적용

* react query 마이그레이션 (#612)

* chore: react query 라이브러리 추가

* refactor: 사용하지 않는 fetch 모듈 제거

* feat: api 타입 수정 및 추가

* feat: QueryClientProvider 추가

* feat: fetch 추상화 함수 추가

* feat: fetch 함수 에러 처리 추가

* MainPage api 함수 추가

* RunnerPost hook(react-query) 추가

* useSearchTag hook(react-query) 추가

* feat: runnerPost 핸들러 함수 및 mock 데이터 변경

* feat: MainPage react-query 적용

* feat: RunnerPostSearchBox react-query 적용

* feat: getHeaderProfile api 추가

* feat: useHeaderProfile react-query hook 추가 및 적용

* fix: api 요청 성공 시에도 에러 토스트가 작동하는 오류 수정

* feat: useRunnerPostCreation react-query hook 추가 및 queryClient 분할

* feat: getMyRunnerProfile, getMySupporterProfile api 추가

* feat: useMyGithubUrl react-query hook 추가

* feat: useMyRunnerProfile react-query hook 추가

* feat: runnerPostCreate페이지 react-query hook 추가

* refactor: react query hook 폴더 변경

* fix: 캐싱값이 refresh되지 않는 현상 수정

* feat: patchReviewCancelation, patchReviewComplete api 추가

* feat: useReviewCancelation react-query hook 추가

* feat: useReviewComplete react-query hook 추가

* feat: MyPagePostButton react-query 적용

* style: 코드 수정 요청 주석 추가

* feat: patchRunnerProfile, patchSupporterProfile api 추가

* feat: useRunnerProfileEdit, useSupporterProfileEdit react query hook 추가

* feat: staleTime 추가

* fix: 잘못된 fetch method 수정

* feat: patchMySupporterProfile api 추가

* style: 주석 설명 추가

* refactor: useRunnerProfile hook을suspense query를 사용하도록 수정

* feat: useMySupporterProfileEdit react qeury hook 추가

* feat: 테스트를 위한 핸들러 함수 지연시간 추가

* feat: ProfileEditPage react query 적용

* feat: useRunnerPostCreation  결과 페이지로 이동하도록 수정

* 즉시 refetch가 필요한 경우 invalidQueries를 refetchQueries를 사용하도록 변경

* feat: getProposedSupporterList, patchProposedSupporterSelection api 추가

* feat: useProposedSupporterList, useSelectionSupporter react qeury hook 추가

* SupporterSelectPage react query 적용

* feat: getRunnerPostDetail, postReviewSuggestionWithMessage, deleteRunnerPost api 추가

* useReviewSuggestion, useRunnerPostDelete, useRunnerPostDetail react query hook 추가

* RunnerPostDetailPage react qeury 적용

* feat: postFeedbackToSupporter api 추가

* feat: getMyRunnerPost, getMySupporterPost api 추가

* refactor: 페이지네이션 api에서 any 타입 제거

* fix: 잘못된 api url 수정

* fix: 서버로 부터 응답값이 없을 경우 에러 처리 추가

* feat: useMyPostList react query hook 추가

* feat: MyPage react qeury 적용

* fix: 잘못된 url 수정

* fix: 잘못된 url 수정

* fix: 잘못된 상태의 게시물이 조회되는 오류 수정

* feat: 피드백 페이지 react qeury 적용

* refactor: 사용하지 않는 import 제거

* fix: 잘못된 키값 수정

* feat: 타인 프로필 조회 api, 미션 브랜치 생성 api 추가

* feat: NoticePage react query 적용

* useOtherRunnerProfile, useOtherSupporterPost, useOtherSupporterProfile react query hook 추가

* 타인의 프로필 페이지 react query 적용

* style: 사용하지 않는 import 제거

* fix: fetch 메서드 then catch 순서 변경

* fix: 에러가 제대로 포착되지 않는 오류 수정

* refactor: acync 제거

* style: 중괄호 제거

* refactor: 사용하지 않는 props 제거

* feat: 최상위 suspend에 로딩 페이지 삽입

* style: 삼항 연산자 적용

* style: async 제거

* feat: 전역 staleTime 추가

* fix: 누락된 muatation 함수 수정 반영

* feat: hook async 제거

* feat: 로딩페이지 추가

---------

Co-authored-by: 상규 <[email protected]>

* 피드백 페이지 구글 설문 링크 추가 (#617)

feat: 서비스 피드백 링크 추가

* 리뷰 제안 메세지 모달 글자수 오류 (#616)

* fix: sendMessageModal에서 message state를 가지도록 변경

* fix: 리뷰 제안 후 모달 닫기

* 알림창, 마이페이지 드롭다운 공용 컴포넌트 구현 + 알림 기능 추가 (#613)

* refactor: 러너, 서포터 마이페이지 분리

* assets: 알림 아이콘 에셋 추가

* feat: Dropdown 공용 컴포넌트 구현

* feat: 알림 컴포넌트 구현

* design: 드롭다운 컴포넌트 z-index 추가

* assets: 마이페이지, 로그아웃 아이콘 에셋 추가

* feat: 드롭다운 메뉴와 트리거와의 gap 설정 props 추가

* design: 마지막 li border-radius 추가

* feat: 드롭다운 컴포넌트 esc, backdrop 클릭 닫기 구현

* feat: 러너, 서포터 마이페이지 라우터 추가

* design: 알림창 반응형 추가

* feat: 프로필 드롭다운 컴포넌트 구현

* feat: 알림, 프로필 클릭 시 드롭다운 되도록 변경

* refactor: button 태그를 p태그로 변경

* fix: 메인 페이지 이외에서 로그아웃시 권한오류 뜨는 것 수정

* chore: cypress open 스크립트 추가

* test: 러너, 서포터 마이페이지 렌더링 테스트 코드 작성

* feat: 드롭다운 컴포넌트 스토리북 추가

* fix: 글 생성 완료 페이지에서 러너 마이페이지로 가도록 변경

* fix: ci 테스트 실패 오류 수정 (명령어 체인 분리)

* design: 버튼 기본 스타일 제거

* design: 삭제 및 스크롤 추가

* feat: 알림 타입 및 게시물로 이동 이벤트 추가

* fix: 분리된 마이페이지로 라우팅 변경

* feat: 러너, 서포터 마이페이지 리액트 쿼리 마이그레이션

* style: 불필요한 공백 삭제

* refactor: Notification -> Alarm으로 네이밍 변경

* feat: 알람 불러오기 및 삭제 기능 추가

* feat: 알림 읽음 patch 구현

* feat: 알람이 없는 경우 빈 알람 아이콘 추가

* feat: 회원탈퇴 버튼 추가

* fix: 아이콘 오타 수정

* refactor: notification으로 네이밍 변경

* refactor: 콜백함수 제거 및 네이밍 변경

* refactor: 불필요한 async 제거

* refactor: 알람 인자로 isLogin 추가

* design: 알람 읽음 표시 추가

* refactor: isLogin 인자 제거

* useLogin 마이그레이션 (#621)

* feat: 로그인, refresh api 추가

* feat: jwt 유효 기간을 확인하고 refresh 후 api 요청

* fix: 누락된 return문 추가

* refactor: useLogin 수정

* refactor: useFetch 제거

* feat: jwt 유효시간 확인 유틸 추가

* feat: auth 관련 api 분리

* feat: 토큰 제거시 쿼리무효화

* feat: default retry 1 설정

* refactor: useLogin 제거

* feat: 로그인 에러 발생 이후 removeQuery

* feat: 로컬 로그인 기능 추가

* feat: 로그인 api then/catch 적용

* Merge branch 'dev/FE' into feat/614

* fix: mockData 중복 태그 제거

* feat: 인증 관련 오류 발생시 로그아웃

* feat: 로그아웃 api 추가

* fix: 로그아웃 api PATCH로 변경

* fix: 로그아웃 msw 수정

* 페이지네이션 로직 변경 및 메인페이지 전체 필터 추가 (#620)

* chore: react query 라이브러리 추가

* refactor: 사용하지 않는 fetch 모듈 제거

* feat: api 타입 수정 및 추가

* feat: QueryClientProvider 추가

* feat: fetch 추상화 함수 추가

* feat: fetch 함수 에러 처리 추가

* MainPage api 함수 추가

* RunnerPost hook(react-query) 추가

* useSearchTag hook(react-query) 추가

* feat: runnerPost 핸들러 함수 및 mock 데이터 변경

* feat: MainPage react-query 적용

* feat: RunnerPostSearchBox react-query 적용

* feat: getHeaderProfile api 추가

* feat: useHeaderProfile react-query hook 추가 및 적용

* fix: api 요청 성공 시에도 에러 토스트가 작동하는 오류 수정

* feat: useRunnerPostCreation react-query hook 추가 및 queryClient 분할

* feat: getMyRunnerProfile, getMySupporterProfile api 추가

* feat: useMyGithubUrl react-query hook 추가

* feat: useMyRunnerProfile react-query hook 추가

* feat: runnerPostCreate페이지 react-query hook 추가

* refactor: react query hook 폴더 변경

* fix: 캐싱값이 refresh되지 않는 현상 수정

* feat: patchReviewCancelation, patchReviewComplete api 추가

* feat: useReviewCancelation react-query hook 추가

* feat: useReviewComplete react-query hook 추가

* feat: MyPagePostButton react-query 적용

* style: 코드 수정 요청 주석 추가

* feat: patchRunnerProfile, patchSupporterProfile api 추가

* feat: useRunnerProfileEdit, useSupporterProfileEdit react query hook 추가

* feat: staleTime 추가

* fix: 잘못된 fetch method 수정

* feat: patchMySupporterProfile api 추가

* style: 주석 설명 추가

* refactor: useRunnerProfile hook을suspense query를 사용하도록 수정

* feat: useMySupporterProfileEdit react qeury hook 추가

* feat: 테스트를 위한 핸들러 함수 지연시간 추가

* feat: ProfileEditPage react query 적용

* feat: useRunnerPostCreation  결과 페이지로 이동하도록 수정

* 즉시 refetch가 필요한 경우 invalidQueries를 refetchQueries를 사용하도록 변경

* feat: getProposedSupporterList, patchProposedSupporterSelection api 추가

* feat: useProposedSupporterList, useSelectionSupporter react qeury hook 추가

* SupporterSelectPage react query 적용

* feat: getRunnerPostDetail, postReviewSuggestionWithMessage, deleteRunnerPost api 추가

* useReviewSuggestion, useRunnerPostDelete, useRunnerPostDetail react query hook 추가

* RunnerPostDetailPage react qeury 적용

* feat: postFeedbackToSupporter api 추가

* feat: getMyRunnerPost, getMySupporterPost api 추가

* refactor: 페이지네이션 api에서 any 타입 제거

* fix: 잘못된 api url 수정

* fix: 서버로 부터 응답값이 없을 경우 에러 처리 추가

* feat: useMyPostList react query hook 추가

* feat: MyPage react qeury 적용

* fix: 잘못된 url 수정

* fix: 잘못된 url 수정

* fix: 잘못된 상태의 게시물이 조회되는 오류 수정

* feat: 피드백 페이지 react qeury 적용

* refactor: 사용하지 않는 import 제거

* fix: 잘못된 키값 수정

* feat: 타인 프로필 조회 api, 미션 브랜치 생성 api 추가

* feat: NoticePage react query 적용

* useOtherRunnerProfile, useOtherSupporterPost, useOtherSupporterProfile react query hook 추가

* 타인의 프로필 페이지 react query 적용

* style: 사용하지 않는 import 제거

* fix: fetch 메서드 then catch 순서 변경

* fix: 에러가 제대로 포착되지 않는 오류 수정

* refactor: acync 제거

* style: 중괄호 제거

* refactor: 사용하지 않는 props 제거

* feat: 최상위 suspend에 로딩 페이지 삽입

* style: 삼항 연산자 적용

* style: async 제거

* feat: 전역 staleTime 추가

* fix: 누락된 muatation 함수 수정 반영

* feat: hook async 제거

* feat: 로딩페이지 추가

* feat: 메인페이지 전체 필터 추가

* feat: api 인자 수정

* feat: 마이페이지, 타인의 서포터 프로필 페이지 페이지네이션 방식 수정

* fix: 전체 필터 더보기 버튼을 누를 시 다른 필터값 데이터와 겹쳐지는 문제 수정

* refactor: reviewStatus 값이 없을경우 타입을 Null로 수정

* feat: 서포터 프로필 페이지 총 게시물 수 제거

---------

Co-authored-by: 상규 <[email protected]>

* 구글 애널리틱스 삽입 (#641)

feat: 구글 애널리틱스 추가

* NOT FOUND 페이지 구현 (#639)

* assets: not found 이미지 추가

* feat: not found 페이지 구현

* 러너 게시물 상세 페이지 캐싱 오류 수정, 에러 발생 시 전체 동작이 정지되지 않도록 수정 (#645)

* fix: 러너 게시물 상세 페이지 캐싱 오류 수정

* feat: 최상위 에러 바운더리 페이지 추가

* fix: 핸들러 오류 수정

---------

Co-authored-by: 상규 <[email protected]>

* 서포터가 리뷰 완료한 게시물 개수 조회 api 반영 (#655)

feat: 서포터가 리뷰 완료한 게시물 개수 조회 기능 추가

Co-authored-by: 상규 <[email protected]>

* 알림 기능 수정 (전체 읽음, 마이페이지로 이동) (#656)

* fix: 서포터 마이페이지에서 러너게시물을 불러오는 오류 수정

* refactor: isRead transient props 적용

* refactor: 알림메시지 선택시 마이페이지로 이동하도록 변경

* feat: 알림 전체 읽음 기능 추가

* 전체읽음 바로 반영되지 않는 오류 수정 (#659)

* fix: 전체 읽음 오류 수정

* style: 불필요한 콘솔로그 삭제

* 전체읽음 바로 반영되지 않는 오류 수정(2) (#661)

fix: 알림 전체 읽음 즉시 반영

* 구글 애널리틱스 환경변수 추가 (#665)

chore: 구글 애널리틱스 환경변수 추가

* 구글 애널리틱스 적용되지 않는 오류 수정 (ga -> ga4로 변경) (#667)

chore: react-ga4 패키지 추가

---------

Co-authored-by: KangSan Lee <[email protected]>
Co-authored-by: 남상규 <[email protected]>
Co-authored-by: 상규 <[email protected]>
Co-authored-by: 에이든 <[email protected]>
Co-authored-by: 남상규 <[email protected]>
  • Loading branch information
6 people authored Oct 13, 2023
1 parent b40c553 commit 4698889
Show file tree
Hide file tree
Showing 101 changed files with 3,397 additions and 1,086 deletions.
6 changes: 3 additions & 3 deletions .github/workflows/frontend_ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ on:
push:
branches:
- dev/FE
paths: 'frontend/**'
paths: "frontend/**"
pull_request:
branches:
- dev/FE
paths: 'frontend/**'
paths: "frontend/**"

defaults:
run:
Expand All @@ -25,7 +25,7 @@ jobs:
uses: actions/setup-node@v3
with:
node-version: 18
cache: 'npm'
cache: "npm"
cache-dependency-path: ./frontend/package-lock.json

- name: install dependencies
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/frontend_dev_cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ jobs:
run: |
echo "REACT_APP_BASE_URL=${{ secrets.REACT_APP_DEV_BASE_URL }}
REACT_APP_CHANNELTALK_KEY=${{ secrets.REACT_APP_CHANNELTALK_KEY }}
REACT_APP_GA_TRACKING_ID=${{ secrets.REACT_APP_GA_TRACKING_ID }}
" >> .env
- name: Install Dependancies
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/frontend_prod_cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ jobs:
run: |
echo "REACT_APP_BASE_URL=${{ secrets.REACT_APP_PROD_BASE_URL }}
REACT_APP_CHANNELTALK_KEY=${{ secrets.REACT_APP_CHANNELTALK_KEY }}
REACT_APP_GA_TRACKING_ID=${{ secrets.REACT_APP_GA_TRACKING_ID }}
" >> .env
- name: Install Dependancies
Expand Down
34 changes: 24 additions & 10 deletions frontend/cypress/e2e/app.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ describe('러너 E2E 테스트', () => {
it('리뷰 요청글을 작성한다.', () => {
cy.get('button[aria-label="리뷰 요청 글 작성"]').click();

cy.wait(100);
cy.wait(500);

typeAll('form input', [
'제제제제제목목목목목',
Expand All @@ -65,25 +65,34 @@ describe('러너 E2E 테스트', () => {

cy.get('button[aria-label="리뷰 요청 글 생성"]').click();

cy.wait(100);
cy.wait(500);

cy.get('div[aria-label="에러 메시지"]').should('be.visible');

cy.get('input[value="주소주소"]').clear().type('https://github.com/woowacourse-teams/2023-baton/pull/1');
cy.get('input[value="주소주소"]').clear();
cy.get('input[value=""]').type('https://github.com/woowacourse-teams/2023-baton/pull/1');

cy.get('button[aria-label="리뷰 요청 글 생성"]').click();

cy.wait(500);

cy.get('div[aria-label="알림 메시지"]').should('be.visible');
});

it('마이페이지 게시글을 불러온다', () => {
it('러너 마이페이지 대기중인 리뷰 게시글을 불러온다', () => {
cy.get('img[alt="프로필"]').click();

cy.wait(100);
cy.wait(500);

cy.get('li[aria-label="러너 마이페이지"]').should('be.visible');
cy.get('li[aria-label="서포터 마이페이지"]').should('be.visible');
cy.get('li[aria-label="로그아웃"]').should('be.visible');

cy.get('li[aria-label="러너 마이페이지"]').click();

cy.contains('더보기').click();

cy.wait(100);
cy.wait(500);

const list = cy.get('ul[aria-label="게시글 목록"]').children();

Expand All @@ -95,17 +104,22 @@ describe('러너 E2E 테스트', () => {
.then((cur) => {
cy.wrap(ele)
.find('button')
.should(Number(cur.text()) > 0 ? 'be.visible' : 'not.be.visible');
.should(Number(cur.text()) > 0 ? 'be.enabled' : 'be.disabled');
});
});
});

it('마이페이지 추가 게시글을 불러온다.', () => {
it('서포터 마이페이지 진행중인 리뷰 게시글을 불러온다.', () => {
cy.get('img[alt="프로필"]').click();

cy.wait(100);
cy.wait(500);

cy.get('li[aria-label="러너 마이페이지"]').should('be.visible');
cy.get('li[aria-label="서포터 마이페이지"]').should('be.visible');
cy.get('li[aria-label="로그아웃"]').should('be.visible');

cy.get('li[aria-label="서포터 마이페이지"]').click();

cy.contains('button', '서포터').click();
cy.contains('button', '진행중인 리뷰').click();

cy.wait(500);
Expand Down
60 changes: 58 additions & 2 deletions frontend/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 4 additions & 0 deletions frontend/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
"dev": "webpack-dev-server --config webpack/webpack.dev.js",
"build": "webpack --config webpack/webpack.prod.js",
"test": "cypress run",
"cypress": "cypress open",
"storybook": "storybook dev -p 6006",
"build-storybook": "storybook build",
"chromatic": "npx chromatic --project-token=chpt_2be44b6342a5cae"
Expand All @@ -15,12 +16,15 @@
"author": "",
"license": "ISC",
"dependencies": {
"@tanstack/react-query": "^5.0.0-rc.1",
"@types/react": "^18.2.14",
"@types/react-dom": "^18.2.6",
"core-js": "^3.31.1",
"dotenv": "^16.3.1",
"history": "^5.3.0",
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-ga4": "^2.1.0",
"react-router-dom": "^6.14.2",
"styled-components": "^6.0.4"
},
Expand Down
49 changes: 34 additions & 15 deletions frontend/src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,19 +1,30 @@
import React, { Suspense, useState } from 'react';
import React, { Suspense, useEffect } from 'react';
import { styled } from 'styled-components';
import { Outlet } from 'react-router-dom';
import ToastProvider from './contexts/ToastContext';
import ChannelService from './ChannelService';
import { CHANNEL_SERVICE_KEY } from './constants';
import { useLogin } from './hooks/useLogin';
import LoadingPage from './pages/LoadingPage';
import ModalProvider from './contexts/ModalContext';
import { QueryClientProvider, QueryErrorResetBoundary } from '@tanstack/react-query';
import { queryClient } from './hooks/query/queryClient';
import { createBrowserHistory } from 'history';
import ErrorBoundary from './components/ErrorBoundary/ErrorBoundary';
import ReactGA from 'react-ga4';

const App = () => {
const { checkLoginToken } = useLogin();
const [isLoading, setIsLoading] = useState<boolean>(true);
useEffect(() => {
const gaTrackingId = process.env.REACT_APP_GA_TRACKING_ID;
if (gaTrackingId) {
ReactGA.initialize(gaTrackingId);
}

checkLoginToken().finally(() => {
setIsLoading(false);
});
const history = createBrowserHistory();
history.listen((response) => {
ReactGA.set({ page: response.location.pathname });
ReactGA.send(response.location.pathname);
});
}, []);

ChannelService.loadScript();

Expand All @@ -23,15 +34,23 @@ const App = () => {
});
}

return isLoading ? (
<LoadingPage />
) : (
return (
<ToastProvider>
<S.AppContainer>
<Suspense fallback={<div></div>}>
<Outlet />
</Suspense>
</S.AppContainer>
<ModalProvider>
<S.AppContainer>
<QueryClientProvider client={queryClient}>
<QueryErrorResetBoundary>
{({ reset }) => (
<ErrorBoundary onReset={reset}>
<Suspense fallback={<LoadingPage />}>
<Outlet />
</Suspense>
</ErrorBoundary>
)}
</QueryErrorResetBoundary>
</QueryClientProvider>
</S.AppContainer>
</ModalProvider>
</ToastProvider>
);
};
Expand Down
Loading

0 comments on commit 4698889

Please sign in to comment.