Skip to content

Commit

Permalink
프론트엔드 main 병합 v1.1 (#579)
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 수정

---------

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 Sep 20, 2023
1 parent d040704 commit a667411
Show file tree
Hide file tree
Showing 80 changed files with 4,129 additions and 699 deletions.
6 changes: 4 additions & 2 deletions .github/workflows/frontend_dev_cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,9 @@ jobs:

- name: Setup environment variables
run: |
echo "REACT_APP_BASE_URL=${{ secrets.REACT_APP_DEV_BASE_URL }}" >> .env
echo "REACT_APP_BASE_URL=${{ secrets.REACT_APP_DEV_BASE_URL }}
REACT_APP_CHANNELTALK_KEY=${{ secrets.REACT_APP_CHANNELTALK_KEY }}
" >> .env
- name: Install Dependancies
run: npm install
Expand All @@ -45,7 +47,7 @@ jobs:

deploy:
needs: build-and-upload
runs-on: [self-hosted, Linux, ARM64]
runs-on: [self-hosted, Linux, ARM64, dev]

steps:
- name: Remove previous version app
Expand Down
4 changes: 3 additions & 1 deletion .github/workflows/frontend_prod_cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,9 @@ jobs:

- name: Setup environment variables
run: |
echo "REACT_APP_BASE_URL=${{ secrets.REACT_APP_PROD_BASE_URL }}" >> .env
echo "REACT_APP_BASE_URL=${{ secrets.REACT_APP_PROD_BASE_URL }}
REACT_APP_CHANNELTALK_KEY=${{ secrets.REACT_APP_CHANNELTALK_KEY }}
" >> .env
- name: Install Dependancies
run: npm install
Expand Down
4 changes: 3 additions & 1 deletion frontend/.gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
node_modules
/dist
/dist

.env
14 changes: 13 additions & 1 deletion frontend/package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 7 additions & 3 deletions frontend/package.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
{
"name": "baton",
"version": "1.0.0",
"version": "1.1.0",
"description": "코드 리뷰를 주고 받을 수 있는 서비스",
"main": "index.js",
"scripts": {
"dev": "webpack-dev-server --config webpack/webpack.dev.js",
"build": "webpack --config webpack/webpack.prod.js",
"test": "jest",
"storybook": "storybook dev -p 6006",
"build-storybook": "storybook build"
"build-storybook": "storybook build",
"chromatic": "npx chromatic --project-token=chpt_2be44b6342a5cae"
},
"keywords": [],
"author": "",
Expand Down Expand Up @@ -42,6 +43,7 @@
"@types/jest": "^29.5.3",
"@types/styled-components": "^5.1.26",
"babel-loader": "^9.1.2",
"chromatic": "^7.2.0",
"eslint": "^8.44.0",
"eslint-config-prettier": "^8.8.0",
"eslint-plugin-prettier": "^4.2.1",
Expand All @@ -65,5 +67,7 @@
"extends": [
"plugin:storybook/recommended"
]
}
},
"readme": "ERROR: No README data found!",
"_id": "[email protected]"
}
Binary file added frontend/public/favicon.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
26 changes: 21 additions & 5 deletions frontend/src/App.tsx
Original file line number Diff line number Diff line change
@@ -1,15 +1,31 @@
import React from 'react';
import React, { useState } from 'react';
import { styled } from 'styled-components';
import { Outlet } from 'react-router-dom';
import { useToken } from './hooks/useToken';
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';

const App = () => {
const { validateToken } = useToken();
const { checkLoginToken } = useLogin();
const [isLoading, setIsLoading] = useState<boolean>(true);

validateToken();
checkLoginToken().finally(() => {
setIsLoading(false);
});

return (
ChannelService.loadScript();

if (CHANNEL_SERVICE_KEY) {
ChannelService.boot({
pluginKey: CHANNEL_SERVICE_KEY,
});
}

return isLoading ? (
<LoadingPage />
) : (
<ToastProvider>
<S.AppContainer>
<Outlet />
Expand Down
201 changes: 201 additions & 0 deletions frontend/src/ChannelService.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,201 @@
declare global {
interface Window {
ChannelIO?: IChannelIO;
ChannelIOInitialized?: boolean;
}
}

interface IChannelIO {
c?: (...args: any) => void;
q?: [methodName: string, ...args: any[]][];
(...args: any): void;
}

interface BootOption {
appearance?: string;
customLauncherSelector?: string;
hideChannelButtonOnBoot?: boolean;
hidePopup?: boolean;
language?: string;
memberHash?: string;
memberId?: string;
pluginKey: string;
profile?: Profile;
trackDefaultEvent?: boolean;
trackUtmSource?: boolean;
unsubscribe?: boolean;
unsubscribeEmail?: boolean;
unsubscribeTexting?: boolean;
zIndex?: number;
}

interface Callback {
(error: Error | null, user: CallbackUser | null): void;
}

interface CallbackUser {
alert: number;
avatarUrl: string;
id: string;
language: string;
memberId: string;
name?: string;
profile?: Profile | null;
tags?: string[] | null;
unsubscribeEmail: boolean;
unsubscribeTexting: boolean;
}

interface UpdateUserInfo {
language?: string;
profile?: Profile | null;
profileOnce?: Profile;
tags?: string[] | null;
unsubscribeEmail?: boolean;
unsubscribeTexting?: boolean;
}

interface Profile {
[key: string]: string | number | boolean | null | undefined;
}

interface FollowUpProfile {
name?: string | null;
mobileNumber?: string | null;
email?: string | null;
}

interface EventProperty {
[key: string]: string | number | boolean | null | undefined;
}

type Appearance = 'light' | 'dark' | 'system' | null;

class ChannelService {
constructor() {
this.loadScript();
}

loadScript() {
(function () {
var w = window;
if (w.ChannelIO) {
return w.console.error('ChannelIO script included twice.');
}
var ch: IChannelIO = function () {
ch.c?.(arguments);
};
ch.q = [];
ch.c = function (args) {
ch.q?.push(args);
};
w.ChannelIO = ch;
function l() {
if (w.ChannelIOInitialized) {
return;
}
w.ChannelIOInitialized = true;
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true;
s.src = 'https://cdn.channel.io/plugin/ch-plugin-web.js';
var x = document.getElementsByTagName('script')[0];
if (x.parentNode) {
x.parentNode.insertBefore(s, x);
}
}
if (document.readyState === 'complete') {
l();
} else {
w.addEventListener('DOMContentLoaded', l);
w.addEventListener('load', l);
}
})();
}

boot(option: BootOption, callback?: Callback) {
window.ChannelIO?.('boot', option, callback);
}

shutdown() {
window.ChannelIO?.('shutdown');
}

showMessenger() {
window.ChannelIO?.('showMessenger');
}

hideMessenger() {
window.ChannelIO?.('hideMessenger');
}

openChat(chatId?: string | number, message?: string) {
window.ChannelIO?.('openChat', chatId, message);
}

track(eventName: string, eventProperty?: EventProperty) {
window.ChannelIO?.('track', eventName, eventProperty);
}

onShowMessenger(callback: () => void) {
window.ChannelIO?.('onShowMessenger', callback);
}

onHideMessenger(callback: () => void) {
window.ChannelIO?.('onHideMessenger', callback);
}

onBadgeChanged(callback: (unread: number, alert: number) => void) {
window.ChannelIO?.('onBadgeChanged', callback);
}

onChatCreated(callback: () => void) {
window.ChannelIO?.('onChatCreated', callback);
}

onFollowUpChanged(callback: (profile: FollowUpProfile) => void) {
window.ChannelIO?.('onFollowUpChanged', callback);
}

onUrlClicked(callback: (url: string) => void) {
window.ChannelIO?.('onUrlClicked', callback);
}

clearCallbacks() {
window.ChannelIO?.('clearCallbacks');
}

updateUser(userInfo: UpdateUserInfo, callback?: Callback) {
window.ChannelIO?.('updateUser', userInfo, callback);
}

addTags(tags: string[], callback?: Callback) {
window.ChannelIO?.('addTags', tags, callback);
}

removeTags(tags: string[], callback?: Callback) {
window.ChannelIO?.('removeTags', tags, callback);
}

setPage(page: string) {
window.ChannelIO?.('setPage', page);
}

resetPage() {
window.ChannelIO?.('resetPage');
}

showChannelButton() {
window.ChannelIO?.('showChannelButton');
}

hideChannelButton() {
window.ChannelIO?.('hideChannelButton');
}

setAppearance(appearance: Appearance) {
window.ChannelIO?.('setAppearance', appearance);
}
}

export default new ChannelService();
25 changes: 18 additions & 7 deletions frontend/src/api/fetch.ts
Original file line number Diff line number Diff line change
@@ -1,17 +1,15 @@
import { BATON_BASE_URL } from '@/constants';
interface customError {
errorCode: string;
message: string;
}
import { APIError } from '@/types/error';

const fetchAPI = async (url: string, options: RequestInit) => {
const response = await fetch(`${BATON_BASE_URL}${url}`, options);

if (!response.ok) {
const error: customError = await response.json();
const error: APIError = await response.json();

throw new Error(error.message);
throw error;
}

return response;
};

Expand All @@ -33,7 +31,7 @@ export const getRequest = async (url: string, token?: string) => {
return response;
};

export const postRequest = async (url: string, token: string, body: BodyInit) => {
export const postRequest = async (url: string, token: string, body?: BodyInit) => {
const response = await fetchAPI(url, {
method: 'POST',
headers: {
Expand All @@ -46,6 +44,19 @@ export const postRequest = async (url: string, token: string, body: BodyInit) =>
return response;
};

export const postRequestWithCookie = async (url: string, token: string) => {
const response = await fetchAPI(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json',
Authorization: `Bearer ${token}`,
credentials: 'include',
},
});

return response;
};

export const deleteRequest = async (url: string, token: string) => {
const response = await fetchAPI(url, {
method: 'DELETE',
Expand Down
Loading

0 comments on commit a667411

Please sign in to comment.