Skip to content

Commit

Permalink
[Deploy] 배포 테스트 (#133)
Browse files Browse the repository at this point in the history
* style : 전역 디자인 시스템 세팅

* style : 전역 디자인 시스템 세팅

* chore : 이슈 템플릿 수정

* refactor: build-test.yml 파일 수정 (#14)

- node_modules 캐싱 기능 추가
- main, dev 브랜치 push, PR 시 빌드 테스트 돌아가도록 수정

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

* feature: deploy.yml 파일 추가 (#15)

* feature: deploy.yml 파일 추가
- main 브랜치에 push할 때 S3로 파일 업로드

* fix: pre-push 코드 수정

* fix: deploy.yml 파일 수정
- build폴더가 아닌 dist 폴더로 수정

---------

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

* [Style] 모바일 레이아웃 작업 (#19)

* style : 모바일 레이아웃 작업

* chore : 이슈, pr 템플릿 docs 수정

* style: HeroImage, AlertText 공통 컴포넌트 제작 (#24)

* style: HeroImage 추가

* style: AlertText

* style: Input 공통 컴포넌트  (#26)

* style: HeroImage 추가

* style: AlertText

* style: Input

* feature: Button 공통 컴포넌트 제작 (#20)

* feature: 네이버, 카카오 아이콘 컴포넌트 추가

* feature: NormalButton 컴포넌트 추가

* feature: palette, typo 스타일 수정

* feature:  Divider, Text 공통 컴포넌트 추가

* feature: IconButtons 추가
- 관심사, 네이버, 카카오, 특정 주제, 랜덤 매칭 버튼

* feature: Button 컴포넌트 사용법 + timeStamp 유틸 함수 추가

* feature: RandomMatchingJoin 버튼 추가

---------

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

* style : flexbox 컴포넌트 제작 (#32)

* style : spacing 컴포넌트 생성 (#33)

* [Feature] mock service worker settings (#29)

* deploy: 초기 배포 (#23)

* style : 전역 디자인 시스템 세팅

* style : 전역 디자인 시스템 세팅

* chore : 이슈 템플릿 수정

* refactor: build-test.yml 파일 수정 (#14)

- node_modules 캐싱 기능 추가
- main, dev 브랜치 push, PR 시 빌드 테스트 돌아가도록 수정

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

* feature: deploy.yml 파일 추가 (#15)

* feature: deploy.yml 파일 추가
- main 브랜치에 push할 때 S3로 파일 업로드

* fix: pre-push 코드 수정

* fix: deploy.yml 파일 수정
- build폴더가 아닌 dist 폴더로 수정

---------

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

* [Style] 모바일 레이아웃 작업 (#19)

* style : 모바일 레이아웃 작업

* chore : 이슈, pr 템플릿 docs 수정

---------

Co-authored-by: judahhh <[email protected]>
Co-authored-by: wukddang <[email protected]>

* chore : mock service worker 설치 및 세팅

* chore : mock service worder setting

---------

Co-authored-by: Changuk Woo <[email protected]>
Co-authored-by: wukddang <[email protected]>

* style: BottomSheet 컴포넌트 제작 (#34)

* feature: Timer 컴포넌트 추가 + d3.js 라이브러리 설치

* feature: BottomSheet 컴포넌트 추가

* feature: RandomMatchingJoinButton props 수정

* feature: framer-motion 설치 + 애니메이션 효과 추가

* refactor: BottomSheet 폴더 변경

* refactor: isDarkMode 필수 타입으로 수정

* refactor: AlertText, HeroImage 폴더 구조 변경

* refactor: BottomSheet 컴포넌트 분리

* feature: Avatar 컴포넌트 제작

* refactor: RandomMatchingSheet 컴포넌트 이벤트 props 추가

* fix: package-lock.json 파일 오류 수정

---------

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

* [Style/] navigation bar 컴포넌트 제작 (#37)

* style : 네비게이션 바 디자인

* style : 네비게이션 바 디자인 및 라우팅 처리

* fix : 프로필 이미지를 Avatar 컴포넌트를 이용하도록 수정

* chore : 타입 에러 해결

* chore : 홈 페이지에 네비게이션 바 예시 제거

* style: CountNumber 공통 컴포넌트 제작 (#38)

* style: CountNumber

* feat: Input Wrapper 추가.

* chore : CountNumber 폴더 구조 변경

* style: InputTimer 공통 컴포넌트 제작 (#41)

* style: CountNumber

* feat: Input Wrapper 추가.

* style: InputTimer 제작

* style : 로딩 컴포넌트 제작 (#47)

* style: WhiteSelectorButton, DarkSelectorButton 공통 컴포넌트  (#46)

* style: whiteselectorButton

* refactor: 불필요 주석 삭제

* style: darkselectorbutton

* Update src/components/common/DarkSelectorButton/index.tsx

* Update src/components/common/WhiteSelectorButton/index.tsx

* fix: font-weight 오타 수정

---------

Co-authored-by: Changuk Woo <[email protected]>
Co-authored-by: wukddang <[email protected]>

* style: ListRow 컴포넌트 제작 (#43)

* refactor: Style prefix 붙이도록 수정

* refactor: Divider 컴포넌트 수정 + 웹 폰트 수정
- Divider 컴포넌트가 확장성 있도록 수정
- 웹 폰트 오타 수정

* feature: AdminListRow 컴포넌트 추가
- 관리자 페이지에 사용되는 ListRow 컴포넌트

* feature: ProfileListRow 컴포넌트 추가
- 프로필 페이지에 사용되는 ListRow

---------

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

* style: �useToast 커스텀 훅 제작 (#48)

* feature: useToast 커스텀 훅 추가

* refactor: RandomMatchingJoinButton으로 이름 변경

* feature: Layout 컴포넌트에 ToastContainer 설정

* refactor: NormalButton 컴포넌트 수정
- isDarkMode props 받도록 수정

* fix: RandomMatchingJoin.tsx 파일 오류 수정

* fix: 파일명 오류 수정

---------

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

* [Style] Modal 컴포넌트 제작 (#52)

* chore : zustand 설치 및 store 폴더 생성

* feat : 모달창 전역 상태 추가

* style : 모달창 컴포넌트 제작

* fix: package.json 쉼표 오류

* �fix: package-lock.json 쉼표 오류

* fix : 모달창 type 받아 분기 처리

* fix : type 에러 수정

* chore : 주석 제거

* fix: isDarkMode 옵셔널로 수정

---------

Co-authored-by: Changuk Woo <[email protected]>
Co-authored-by: wukddang <[email protected]>

* style: selector button 공통 컴포넌트  (#55)

* refactor: white,dark selectorbutton erase

* style: selectorbutton

* style: selectorbutton re

* style: Appbar, Card, GradationBackground, PageContainer 컴포넌트 추가 + Home 페이지 레이아웃 추가 (#57)

* refactor: CountNumber, Input 위치 변경

* refactor: Avatar 컴포넌트 props 타입 수정 + tsdoc 추가

* feature: Tip 컴포넌트 추가

* feature: AppHeader 컴포넌트 추가

* refactor: IconButtonType 수정 + 클릭 효과 속성 추가

* feature: Profile 페이지 라우팅 추가

* refactor: AppHeader 높이값 받도록 수정

* style: typo, palette, Layout, global 파일 수정

* refactor: RandomMatchingSheet 동적으로 변하도록 수정

* refactor: NormalButton 폴더 변경 + 클릭 시 배경 변경 타입 추가

* refactor: tsdoc 추가

* feature: GradationBackground 컴포넌트 추가

* refactor: NavigationBar 라우팅 + position: sticky로 수정

* feature: PageContainer 컴포넌트 추가

* feature: AvatarGroup 컴포넌트 추가

* feature: Card 컴포넌트 추가

* feature: Home 페이지 레이아웃 추가

* refactor: tsdoc 추가

* fix: merge conflict 해결용 파일 추가

* fix: NormalButton 파일 에러 수정

---------

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

* style: PageHeader 컴포넌트 제작 (#59)

* feature: ExitIcon 컴포넌트 추가

* feature: BackChevron 컴포넌트 추가

* feature: PageHeader 컴포넌트 추가

* refactor: 사용하지 않는 코드 제거

* refactor: tsdoc 추가

* refactor: tsdoc 추가 + exitClick으로 props명 변경

* refactor: PageHeader border-bottom 수정

---------

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

* [Style] chatting bubble 컴포넌트 제작 및 소켓 라이브러리 설치 (#65)

* style : chatting bubble 컴포넌트 publishing

* chore : 소켓 라이브러리 stomp 설치 및 세팅

* style: BusinessCardContainer 공통 컴포넌트 (재PR) (#62)

* feat: businesscardcontainer

* style: Text 컴포넌트 textColor 속성 추가

* test: API Test 코드 (#76)

* feat: businesscardcontainer

* style: Text 컴포넌트 textColor 속성 추가

* style: alerttext, countnumber 수정

* style: selectorbutton 수정

* style: customselectorbutton

* refactor: 필수 prop 설정

* style: selectorbuttoncontainer

* refactor: 함수컴포넌트 구조 변경

* refactor: react 삭제

* test: APITest 코드

* test: retest (#78)

* fix: vite 설정 (cors) (#80)

* test: retest

* fix: vite 설정 (cors)

* fix: cors 재설정 (#82)

* test: retest

* fix: vite 설정 (cors)

* fix: cors2

* fix: vite 설정 변경 (#84)

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

* fix: axios 파일 수정 (#86)

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

* fix: REST API 주소 코드 수정 (#92)

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

* refactor: AlertText, CountNumber 공통 컴포넌트 수정 (#68)

* feat: businesscardcontainer

* style: Text 컴포넌트 textColor 속성 추가

* style: alerttext, countnumber 수정

* refactor: pr 수정사항 반영

* refactor: styled emotion 코드 통일성 적용

* feature: HomePage 다크모드 기능 추가 + Card 컴포넌트 분리 + timerWorker 추가 (#94)

* style: DARK_GRADIENT 색 추가

* feature: 다크모드/화이트모드 설정을 위한 ThemeStore 추가

* feature: ParticularTopicButton에 이동하는 props 추가

* feature: AppHeader 컴포넌트 다크모드 설정 기능 추가

* feature: PageContainer 컴포넌트 다크모드 props 추가

* refactor: Card 컴포넌트 코드 분리

* refactor: Tip 컴포넌트 주석 제거 + import문 수정

* feature: timerWorker 추가 + TimerStore 추가
- 백그라운드에서 동작하는 웹 워커로 타이머 동작
- 새로고침을 해도 계속 동작하지만 어플리케이션을 종료하면 동작 종료
- 현재 동기적으로 코드가 작동하고 있어서, indexedDB를 사용해서 비동기 동작을 지원하도록 수정할 계획

* feature: 다크모드 추가
- GradationBackground, NavigationBar, Home 페이지

* refactor: 사용하지 않는 코드 제거

* refactor: Card 컴포넌트 수정
-undefined값을 가지는 time props 수정
- navigationType 에러 수정

* refactor: AppHeader 컴포넌트 수정
- cursor: pointer 스타일 추가

* refactor: Styled prefix 사용하도록 PR 관련 코드 수정

---------

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

* style: LoginPage 레이아웃 작성 (#96)

* feat: businesscardcontainer

* style: Text 컴포넌트 textColor 속성 추가

* style: alerttext, countnumber 수정

* style: selectorbutton 수정

* style: customselectorbutton

* refactor: 필수 prop 설정

* style: selectorbuttoncontainer

* refactor: 함수컴포넌트 구조 변경

* refactor: react 삭제

* style: LoginPage 레이아웃 작성

* refactor: 이미지 경로 변경

* refactor: pr 수정사항 반영

* refactor: LoginImage 경로 변경

* style: naver, kakao Button 텍스트 위치 수정

* refactor: frament 제거

* style: 배경색 skyblue 적용. 불필요 fragment 제거.

* feature: NotFoundPage 제작 (#102)

* refactor: font-family를 동적으로 변경하도록 수정
- 600 미만이면 'Pretendard-Regular'
- 600 이상이면 'Pretendard'

* feature: NotFound 페이지 제작
- NotFoundIcon 추가

* fix: GradationBackground 에 isDarkMode props 추가

---------

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

* refactor: SelectorButton 공통 컴포넌트 수정 (#70)

* feat: businesscardcontainer

* style: Text 컴포넌트 textColor 속성 추가

* style: alerttext, countnumber 수정

* style: selectorbutton 수정

* refactor: pr 수정사항 반영

* refactor: prop 명 변경

* refactor: 변수명 수정

* refactor: pr 재수정

* style: CustomSelectorButton 공통 컴포넌트 (#71)

* feat: businesscardcontainer

* style: Text 컴포넌트 textColor 속성 추가

* style: alerttext, countnumber 수정

* style: selectorbutton 수정

* style: customselectorbutton

* refactor: 필수 prop 설정

* refactor: pr 수정사항 반영

* refactor: 속성명 수정

* style: SelectorButtonContainer 공통 컴포넌트  (#72)

* feat: businesscardcontainer

* style: Text 컴포넌트 textColor 속성 추가

* style: alerttext, countnumber 수정

* style: selectorbutton 수정

* style: customselectorbutton

* refactor: 필수 prop 설정

* style: selectorbuttoncontainer

* refactor: 함수컴포넌트 구조 변경

* refactor: react 삭제

* refactor: pr 수정사항 반영

* refactor: Input 컴포넌트 ref, onchange 추가 (#90)

* refactor: Input 컴포넌트 ref, onchange 추가

* refactor: pr 수정사항 반영

* feature: 로그인 페이지 OAuth 연결 + 반응형 레이아웃 구성 (#107)

* feature: LoginPendingPage 컴포넌트 추가
- App.tsx에 라우팅 추가

* refactor: 네이버, 카카오 버튼 props 수정
- moveToOAuthProvider props 받도록 수정

* refactor: HeroImage 크기 수정

* feature: LoginPending 페이지 추가
- zustand-persist로 현재 OAuth provider를 저장하도록 설정
- Status Code가 400이면 회원가입 페이지로 가도록 라우팅

* fix: 회원가입 리다이렉트 상태코드 404로 변경

* refactor: 로그인 페이지 반응형 구현
- Spacing 컴포넌트 css props 받도록 리팩토링
- max-width: 280px인 갤럭시 폴드를 중심으로 리팩토링

* refactor: 로그인 페이지 폰트 크기 반응형으로 수정

* feature: 로그인 리다이렉팅 시 authCode를 state에 담도록 수정

---------

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

* hotfix: VITE_BASE_URL 환경변수 설정 (#113)

* fix: VITE_BASE_URL 환경변수 설정

* fix: 띄어쓰기 오류 수정

---------

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

* fix: OAuth 로그인 오류 처리

* [Feature] 사용자의 닉네임, 관심사 정보 등록 페이지 구현 (#119)

* style : RegisterInput 공통 컴포넌트 제작

* feat : 유저 정보 등록 페이지 기능 구현

* fix : Oauth 로그인 후 authCode와 token을 받아와 넘겨주도록 수정

* chore : 사용되지 않는 import 문 삭제

* chore : msw 버전에 따른 import 수정

* chore : 사용되지 않은 변수 에러 해결

* chore : 주석 제거

* chore : 닉네임 중복 요청 react-query로 수정

* chore : 사용되지 않은 import 문 제거

* feature: ChatList 페이지 레이아웃 제작 + 반응형 디자인 (#97)

* refactor: Home 레이아웃 수정
- PageContainer 스타일을 동적으로 받도록 수정

* refactor: PageContainer 컴포넌트 수정
- style props 받을 수 있도록 수정
- 다크모드 받을 수 있도록 수정

* refactor: 반응형 디자인
- AppHeader: max-width: 280px일 때 텍스트 폰트 줄이도록 수정
- Avatar: max-width: 280px일 때 아바타 크기 줄이도록 수정

* refactor: PageHeader 컴포넌트 수정
- max-width: 414px로 가지도록 수정
- cursor: pointer 가지도록 수정

* refactor: AvatarGroup 수정
- style props 받도록 수정
- AvatarGroup이 높이를 가지도록 수정

* refactor: Card 컴포넌트 수정
- PageContainer 수정에 따른 리팩토링

* feature: ChatList 페이지 구현
- chatRoomList 더미데이터 추가
- ChatRoomBubbles: chatRoomList를 받아서 ChatRoomBubble 렌더링
- ChatRoomBubble: 채팅방 생성 시점 기준 1일 이후를 D-Day로 설정한 타이머 추가
- max-width: 280px일 때 column이 하나로만 나오도록 반응형 디자인

* refactor: ChatRoomBubble 빌드 오류 수정

* fix: merge conflict 해결

* refactor: Card 컴포넌트의 Styled 태그 코드들 하단으로 이동

* hotfix: VITE_BASE_URL 환경변수 설정 (#113)

* fix: VITE_BASE_URL 환경변수 설정

* fix: 띄어쓰기 오류 수정

---------

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

* feature: 이전대화방 MSW 설정 + framer-motion 효과 추가
- /api/v1/histories로 이전 대화방 목록 요청하도록 세팅 (+useQuery)
- 로컬에서도 MSW 동작할 수 있도록 설정

---------

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

* [Fix] 관심사 버튼 해제 시 전역 store에 반영되지 않는 문제  해결 (#121)

* fix : axios 요청이 가지 않는 에러 해결

* chore : 주석 제거

* fix : 관심사 버튼 해제 시 전역 store에 반영되지 않는 문제 해결

* feature: 관리자 페이지 '승인 대기 목록', '사용자 신고 내역' 레이아웃작업, 컴포넌트 제작 (mergeX, draft 미적용) (#105)

* style: AdminAppHeader 컴포넌트 추가

* style: AdminNavigationBar 컴포넌트 생성

* style: AdminNavigationBar 색 변경

* feat: AdminTabs 컴포넌트 추가

* refactor: 컴포넌트 변수명 변경

* refactor: 컴포넌트 변수명 변경

* feat: AdminApprovalList 컴포넌트 추가

* feat: outerwrapper 제거

* feat: AdminReportListRow 컴포넌트 예시 추가

* feat: AdminReportList 컴포넌트 예시 추가

* feat: AdminTabs 컴포넌트로 다른 컴포넌트들 연결 및 디자인 수정, 변수명 수정

* refactor: admin 컴포넌트 이전

* refactor: eslint 에러 수정

* refactor: import 경로 변경

---------

Co-authored-by: Changuk Woo <[email protected]>

* feature: 관리자 페이지 레이아웃, 기능 구현 (mergeX, draft) (#116)

* style: AdminAppHeader 컴포넌트 추가

* style: AdminNavigationBar 컴포넌트 생성

* style: AdminNavigationBar 색 변경

* feat: AdminTabs 컴포넌트 추가

* refactor: 컴포넌트 변수명 변경

* refactor: 컴포넌트 변수명 변경

* feat: AdminApprovalList 컴포넌트 추가

* feat: outerwrapper 제거

* feat: AdminReportListRow 컴포넌트 예시 추가

* feat: AdminReportList 컴포넌트 예시 추가

* feat: AdminTabs 컴포넌트로 다른 컴포넌트들 연결 및 디자인 수정, 변수명 수정

* refactor: admin 컴포넌트 이전

* refactor: eslint 에러 수정

* refactor: import 경로 변경

* feat: AdminApprovalInfo 컴포넌트 1

* style: 예시 이미지 추가

* feat: AdminApprovalInfo 컴포넌트 추가 1

* feat: input text fontweight 속성 추가

* style: Input 속성 추가

* style: AdminApprovalInfo 컴포넌트 디자인 2

* style: AdminReportInfo 컴포넌트 1

* refactor: props명 수정

* style: AdminReportInfo 컴포넌트 1

* style: AdminReportInfoListRow 컴포넌트

* feat: useModal 컴포넌트 적용, 기타 스타일 수정

* feat: AdminReportInfo 컴포넌트 userModal 적용

* refactor: 불필요 컴포넌트 삭제

* refactor: 이름 수정

* feat: AdminReportListRow 속성 추가

* feat: 관리자페이지 신고자 목록 클릭 시, 정보 출력

* feat: AdminReportList 특정 목록 클릭 시, 해당 AdminReportInfo 출력

* feat: AdminReportList mockdata 추가, 함수 연결

* refactor: 이름 예시 변경

* refactor: 변수명 수정 (adminapprovalinfo와 구분)

* feat: AdminTabs 승인 탭 추가

* refactor: 변수명 수정(구별필요)

* feat: 승인 페이지 이름 적용,  불필요 컴포넌트 제거

* refactor: mock data 적용. 변수명 수정.

* feat: 승인페이지 mock data 적용. 목록 클릭 함수 추가. interface 추가.

* feat: adminapprovallistrow onclick 함수 속성 추가

* style: ListRow의 ListContainer 가운데 정렬

* style: 중복 HomeNavigationBar 제거

* feat: AdminInfo 컴포넌트 AdminPageHeader컴포넌트 적용

* feat: AdminPageHeader 컴포넌트 추가

* style: Admin 컴포넌트 스타일 수정(폰트,cursor,가운데정렬등)

* style: Input component padding 속성추가

* feat: adminlogin 컴포넌트 추가

* feat: adminapprovalinfo input 텍스트로 변경 (+스타일 적용)

* style: 관리자 페이지 스타일 피그마 세부 적용

* chore : 개발 단계에서 토큰을 볼 수 있도록 수정

* chore : 잘못 import 된 import 문 제거

* chore : lint 에러 수정

* feature: 프로필 페이지 제작 (#109)

* refactor: Modal 컴포넌트 관련 코드 리팩토링
- useModal: acceptText, cancelText 받도록 수정
- Modal: framer-motion으로 애니메이션 효과 추가

* refactor: tsdoc 추가 + CSS 스타일 수정
- tsdoc: NaverIcon, KakaoIcon
- CSS 스타일 수정: AppHeader,Avatar, BackChevron

* refactor: CSS 스타일 수정
- Divider: width, height props string으로 타입 수정
- InterestButton: width props string으로 수정
- NavigationBar: Text 컴포넌트 사용하도록 수정

* refactor: tsdoc 추가 + emotion 코드 위치 변경
- emotion 코드 위치 변경: ProfileListRow, PageContainer, PageHeader
- tsdoc 추가: Text 컴포넌트

* refactor: Home 페이지 fragment 제거

* feature: ProfileDefault 페이지 제작
- useModal: 로그아웃, 계정 삭제 시 모달 사용
- useNavigate: 뒤로가기, 프로필 수정, 회사 정보 변경, 로그아웃, 계정 삭제에 라우팅 기능 추가
- 페이지 레이아웃 작업
- ProfileEdit: 기존 테스트 코드 제거

* refactor: BusinessCardContainer 공백 제거

* refactor: StyleList 관련 conflict 해결

* feature: 프로필 페이지 반응형 디자인 제작
- 갤럭시 Fold에서 적절하게 보이도록 미디어 쿼리 사용

* refactor: 사용하지 않는 파일 제거 + 반응형 디자인
- 모달 버튼의 폰트 크기 수정

* feature: 프로필 페이지 다크모드 코드 추가

* feature: Modal 컴포넌트 다크모드 추가

* feature: 404 페이지에서 홈으로 라우팅하게 수정

* fix: msw 2 버전으로 수정

* fix: authTokens이 없어서 생기는 오류 수정

* feature: 레이아웃 깨지는 부분 수정

* fix: useAuthTokens 주석 처리

* chore: msw 2.0.5 버전으로 수정

* Update handlers.ts

---------

Co-authored-by: wukddang <[email protected]>
Co-authored-by: from1to2 <[email protected]>
Co-authored-by: DaHyeonJu <[email protected]>

* [Feature] 실시간 채팅 기능 및 상대방 프로필 클릭 시 상대방 프로필 조회 기능 (#125)

* chore : 충돌 수정

* chore : 충돌 수정

* chore : 충돌 수정

* fix : 에러 주석 처리

* fix : 채팅방 통신 수정

* style : 채팅 버블 스타일 변경 및 첫 렌더 링 시 스크롤 맨 아래로 이동

* feat : 채팅방에서 상대방 프로필 클릭 시 정보 조회 기능 추가

* chore : 사용되지 않는 import 문 제거

* Update handlers.ts

* Update handlers.ts

* [Fix] 카카오 로그인 성공 시 토큰 불러오는 함수 무한루프 제거 (#127)

* chore : lint 에러 수정

* fix : 함수 무한루프 돌던 것 수정

* chore : lint 에러 수정

* chore : lint 에러 수정

* Update index.tsx (#129)

* chore : baseURL 중복 제거

* chore : prettier 에러 수정

* feature: 관리자 페이지 MSW를 활용한 API 명세와 테스트 (#117)

* style: AdminAppHeader 컴포넌트 추가

* style: AdminNavigationBar 컴포넌트 생성

* style: AdminNavigationBar 색 변경

* feat: AdminTabs 컴포넌트 추가

* refactor: 컴포넌트 변수명 변경

* refactor: 컴포넌트 변수명 변경

* feat: AdminApprovalList 컴포넌트 추가

* feat: outerwrapper 제거

* feat: AdminReportListRow 컴포넌트 예시 추가

* feat: AdminReportList 컴포넌트 예시 추가

* feat: AdminTabs 컴포넌트로 다른 컴포넌트들 연결 및 디자인 수정, 변수명 수정

* refactor: admin 컴포넌트 이전

* refactor: eslint 에러 수정

* refactor: import 경로 변경

* feat: AdminApprovalInfo 컴포넌트 1

* style: 예시 이미지 추가

* feat: AdminApprovalInfo 컴포넌트 추가 1

* feat: input text fontweight 속성 추가

* style: Input 속성 추가

* style: AdminApprovalInfo 컴포넌트 디자인 2

* style: AdminReportInfo 컴포넌트 1

* refactor: props명 수정

* style: AdminReportInfo 컴포넌트 1

* style: AdminReportInfoListRow 컴포넌트

* feat: useModal 컴포넌트 적용, 기타 스타일 수정

* feat: AdminReportInfo 컴포넌트 userModal 적용

* refactor: 불필요 컴포넌트 삭제

* refactor: 이름 수정

* feat: AdminReportListRow 속성 추가

* feat: 관리자페이지 신고자 목록 클릭 시, 정보 출력

* feat: AdminReportList 특정 목록 클릭 시, 해당 AdminReportInfo 출력

* feat: AdminReportList mockdata 추가, 함수 연결

* refactor: 이름 예시 변경

* refactor: 변수명 수정 (adminapprovalinfo와 구분)

* feat: AdminTabs 승인 탭 추가

* refactor: 변수명 수정(구별필요)

* feat: 승인 페이지 이름 적용,  불필요 컴포넌트 제거

* refactor: mock data 적용. 변수명 수정.

* feat: 승인페이지 mock data 적용. 목록 클릭 함수 추가. interface 추가.

* feat: adminapprovallistrow onclick 함수 속성 추가

* feat: msw handlers interface 파일들

* feat: 관리자페이지 - MSW 활용한 API request, response 명세. API 테스트.

* style: 오류 관련 주석 처리

* feat: AdminPageHeader

* feat: 관리자페이지 승인요청 사용자들 목록 불러오기 MSW API 요청 코드 완료. 테스트 완료.

* feat: 관리자페이지 신고당한자 목록 API 코드 추가. 테스트 완료.

* feat: 관리자페이지 승인요청자 세부정보 출력 1

* refactor: 불필요 코드 삭제

* refactor: 불필요코드 제거 2

* [Feature] 회사 정보 등록 페이지 구현 (#132)

* feat : 회사 이메일 인증 및 직무 정보 등록 페이지 구현

* feat : 회사 정보 등록 페이지 구현

* chore : 안 쓰이는 변수 제거

---------

Co-authored-by: Changuk Woo <[email protected]>
Co-authored-by: wukddang <[email protected]>
Co-authored-by: from1to2 <[email protected]>
  • Loading branch information
4 people authored Nov 17, 2023
1 parent bb3f246 commit 2784f85
Show file tree
Hide file tree
Showing 11 changed files with 596 additions and 55 deletions.
18 changes: 18 additions & 0 deletions src/apis/adminApproval/AdminApprovalApi.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
import { axiosAPI } from '@/apis/axios'

const AdminApprovalAPI = {
GET_APPROVAL_REQUEST_LIST: async () => {
const response = await axiosAPI.get(`/admin/approvals`)
return {
data: response.data,
}
},
GET_APPROVAL_INFO: async () => {
const response = await axiosAPI.get(`/admin/approvals/1`)
return {
data: response.data,
}
},
}

export default AdminApprovalAPI
12 changes: 12 additions & 0 deletions src/apis/adminReport/AdminReportApi.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import { axiosAPI } from '@/apis/axios'

const AdminReportAPI = {
GET_REPORT_LIST: async () => {
const response = await axiosAPI.get(`/admin/reports`)
return {
data: response.data,
}
},
}

export default AdminReportAPI
2 changes: 1 addition & 1 deletion src/apis/axios.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ axiosAPI.interceptors.request.use(
function (config) {
// 요청 바로 직전
// axios 설정값에 대해 작성합니다.

config.headers['Authorization'] = `Bearer ${localStorage.getItem('token')}`
// const { authTokens } = useAuthStore()
// config.headers['Authorization'] = `Bearer ${authTokens}`

Expand Down
53 changes: 27 additions & 26 deletions src/components/common/ListRow/AdminApprovalList.tsx
Original file line number Diff line number Diff line change
@@ -1,43 +1,44 @@
import styled from '@emotion/styled'
import { useQuery } from '@tanstack/react-query'

import AdminApprovalAPI from '@/apis/adminApproval/AdminApprovalApi'
import AdminApprovalListRow from '@/components/common/ListRow/AdminApprovalListRow'
import { palette } from '@/styles/palette'

interface AdminApprovalListProps {
onApproveSelect: (nickname: string) => void
onApproveSelectUserName: (nickname: string) => void
}
interface ApprovalListData {
approvalRequestUser: string
approvalRequestUserStatus: string
}

const AdminApprovalList = ({ onApproveSelectUserName }: AdminApprovalListProps) => {
// API 요청 코드
const { data, isSuccess } = useQuery(
['ApprovalRequestList'],
AdminApprovalAPI.GET_APPROVAL_REQUEST_LIST,
)

const AdminApprovalList = ({ onApproveSelect }: AdminApprovalListProps) => {
const handlePersonApproval = (nickname: string) => {
onApproveSelect(nickname)
onApproveSelectUserName(nickname)
}
const AdminApprovalListData = [
{ nickname: '유명한', height: 71, infoMessage: '대기 중', isDarkMode: false },
{ nickname: '박상민', height: 71, infoMessage: '대기 중', isDarkMode: false },
{ nickname: '박은지', height: 71, infoMessage: '대기 중', isDarkMode: false },
{ nickname: '주다현', height: 71, infoMessage: '대기 중', isDarkMode: false },
{ nickname: '남궁호수', height: 71, infoMessage: '대기 중', isDarkMode: false },
{ nickname: '우창욱', height: 71, infoMessage: '대기 중', isDarkMode: false },
{ nickname: '홍길동', height: 71, infoMessage: '대기 중', isDarkMode: false },
{ nickname: '홍길동', height: 71, infoMessage: '대기 중', isDarkMode: false },
{ nickname: '홍길동', height: 71, infoMessage: '대기 중', isDarkMode: false },
{ nickname: '홍길동', height: 71, infoMessage: '대기 중', isDarkMode: false },
{ nickname: '홍길동', height: 71, infoMessage: '대기 중', isDarkMode: false },
{ nickname: '홍길동', height: 71, infoMessage: '대기 중', isDarkMode: false },
{ nickname: '홍길동', height: 71, infoMessage: '대기 중', isDarkMode: false },
{ nickname: '홍길동', height: 71, infoMessage: '대기 중', isDarkMode: false },
]
const ApprovalDatas = data?.data.approvals

return (
<AdminApprovalListContainerOuterWrapper>
<AdminApprovalListContainer>
{AdminApprovalListData.map((data, index) => (
<AdminApprovalListRow
key={index}
{...data}
onClick={() => handlePersonApproval(data.nickname)}
/>
))}
{isSuccess &&
ApprovalDatas.map((approvalListData: ApprovalListData, index: number) => (
<AdminApprovalListRow
key={index}
height={71}
nickname={approvalListData.approvalRequestUser}
infoMessage={approvalListData.approvalRequestUserStatus}
isDarkMode={false}
onClick={() => handlePersonApproval(approvalListData.approvalRequestUser)}
/>
))}
</AdminApprovalListContainer>
</AdminApprovalListContainerOuterWrapper>
)
Expand Down
42 changes: 19 additions & 23 deletions src/components/common/ListRow/AdminReportList.tsx
Original file line number Diff line number Diff line change
@@ -1,42 +1,38 @@
import styled from '@emotion/styled'
import { useQuery } from '@tanstack/react-query'

import AdminReportAPI from '@/apis/adminReport/AdminReportApi'
import AdminReportListRow from '@/components/common/ListRow/AdminReportListRow'
import { palette } from '@/styles/palette'

interface AdminReportListProps {
onReportSelect: (nickname: string) => void
}
interface ReportListData {
reportedUserName: string
reportCount: number
}
const AdminReportList = ({ onReportSelect }: AdminReportListProps) => {
const { data, isSuccess } = useQuery(['ReportedUserList'], AdminReportAPI.GET_REPORT_LIST)
const handlePersonReported = (nickname: string) => {
onReportSelect(nickname)
}
const AdminReportListData = [
{ nickname: '유명한', height: 71, infoMessage: '누적 1회', isDarkMode: false },
{ nickname: '박상민', height: 71, infoMessage: '누적 2회', isDarkMode: false },
{ nickname: '박은지', height: 71, infoMessage: '누적 2회', isDarkMode: false },
{ nickname: '주다현', height: 71, infoMessage: '누적 1회', isDarkMode: false },
{ nickname: '남궁호수', height: 71, infoMessage: '누적 1회', isDarkMode: false },
{ nickname: '우창욱', height: 71, infoMessage: '누적 2회', isDarkMode: false },
{ nickname: '홍길동', height: 71, infoMessage: '누적 1회', isDarkMode: false },
{ nickname: '홍길동', height: 71, infoMessage: '누적 1회', isDarkMode: false },
{ nickname: '홍길동', height: 71, infoMessage: '누적 1회', isDarkMode: false },
{ nickname: '홍길동', height: 71, infoMessage: '누적 1회', isDarkMode: false },
{ nickname: '홍길동', height: 71, infoMessage: '누적 1회', isDarkMode: false },
{ nickname: '홍길동', height: 71, infoMessage: '누적 1회', isDarkMode: false },
{ nickname: '홍길동', height: 71, infoMessage: '누적 1회', isDarkMode: false },
{ nickname: '홍길동', height: 71, infoMessage: '누적 1회', isDarkMode: false },
]
const ReportDatas = data?.data.reports

return (
<StyledAdminReportListContainerOuterWrapper>
<StyledAdminReportListContainer>
{AdminReportListData.map((data, index) => (
<AdminReportListRow
key={index}
{...data}
onClick={() => handlePersonReported(data.nickname)}
/>
))}
{isSuccess &&
ReportDatas.map((reportListData: ReportListData, index: number) => (
<AdminReportListRow
key={index}
height={71}
nickname={reportListData.reportedUserName}
infoMessage={reportListData.reportCount}
isDarkMode={false}
onClick={() => handlePersonReported(reportListData.reportedUserName)}
/>
))}
</StyledAdminReportListContainer>
</StyledAdminReportListContainerOuterWrapper>
)
Expand Down
115 changes: 115 additions & 0 deletions src/mocks/handlers.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,14 @@
import { http, HttpResponse } from 'msw'

import { Approval, ApprovalInfo, ReportInfo, Reports } from './handlersInterface'
const nickname = '주다다'

export const handlers = [
// example
http.get('/pets', () => {
return HttpResponse.json(['Tom', 'Jerry', 'Spike'])
}),

http.get('/v1/histories', () => {
return HttpResponse.json([
{
Expand Down Expand Up @@ -355,4 +363,111 @@ export const handlers = [
statusText: 'Out Of Apples',
})
}),

// example
http.get('/pets', () => {
return HttpResponse.json(['Tom', 'Jerry', 'Spike'])
}),
// 승인 목록 API 핸들러
http.get('/admin/approvals', () => {
const approvals: Approval[] = [
{ approvalRequestUser: '박상민', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '박은지', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '주다현', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '남궁호수', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '우창욱', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '홍길동', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '홍길동', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '홍길동', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '홍길동', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '홍길동', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '홍길동', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '홍길동', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '홍길동', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '홍길동', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '홍길동', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '홍길동', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '홍길동', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '홍길동', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '홍길동', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '홍길동', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '홍길동', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '홍길동', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '홍길동', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '홍길동', approvalRequestUserStatus: '대기 중' },
{ approvalRequestUser: '홍길동', approvalRequestUserStatus: '대기 중' },
]
return HttpResponse.json({ approvals })
}),

// 승인 상세 정보 API 핸들러
http.get('/admin/approvals/:userId', (req) => {
const { userId } = req.params
const approvalInfo: ApprovalInfo = {
approvalRequestUserName: `userId:${userId}에 해당하는 userName`,
approvalRequestUserEmail: `userId:${userId}에 해당하는 userName의 Email`,
approvalRequestUserBusinessCardImage: `https://www.imageExample.jpg`,
}

return HttpResponse.json({ approvalInfo })
}),

// 승인/거절 처리 API 핸들러
// req.body 오류 해결이 필요한 부분
// http.post('/admin/approvals/:userId/action', (req) => {
// const { userId } = req.params
// const { action } = req.body
// const approvalResult: ApprovalResult = {
// result: action === 'accept' ? 'accepted' : 'rejected',
// }
// return HttpResponse.json({ approvalResult })
// }),

// 신고 목록 API 핸들러
http.get('/admin/reports', () => {
const reports: Reports[] = [
{ reportedUserName: '유명한', reportCount: 1 },
{ reportedUserName: '박상민', reportCount: 2 },
{ reportedUserName: '박은지', reportCount: 1 },
{ reportedUserName: '주다현', reportCount: 1 },
{ reportedUserName: '남궁호수', reportCount: 1 },
{ reportedUserName: '우창욱', reportCount: 1 },
{ reportedUserName: '홍길동', reportCount: 0 },
{ reportedUserName: '홍길동', reportCount: 2 },
{ reportedUserName: '홍길동', reportCount: 3 },
{ reportedUserName: '홍길동', reportCount: 1 },
{ reportedUserName: '홍길동', reportCount: 2 },
{ reportedUserName: '홍길동', reportCount: 3 },
{ reportedUserName: '홍길동', reportCount: 1 },
{ reportedUserName: '홍길동', reportCount: 0 },
]
return HttpResponse.json({ reports })
}),

// 신고 상세 정보 API 핸들러
http.get('/admin/reports/:userId', (req) => {
const { userId } = req.params
const reportInfo: ReportInfo = {
reportedUserName: `userName, userId:${userId}`,
reporterUserName: 'reporterUserName',
reportDate: new Date().toISOString(),
reason: 'saying swear words',
reportCount: 3,
email: `userId:${userId}@example.com`,
}
return HttpResponse.json({
reportInfo,
})
}),

// // 신고 처리 API 핸들러
// req.body 오류 해결이 필요한 부분
// http.post('/admin/reports/:userId/action', (req) => {
// const { userId } = req.params
// const { action } = req.body
// const reportResult: ReportResult = {
// result: action === 'addCount' ? 'countAdded' : 'ignored',
// }
// return HttpResponse.json({ reportResult })
// }),
]
29 changes: 29 additions & 0 deletions src/mocks/handlersInterface.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
export interface Approval {
approvalRequestUser: string
approvalRequestUserStatus: string
}
export interface ApprovalInfo {
approvalRequestUserName: string
approvalRequestUserEmail: string
approvalRequestUserBusinessCardImage: string
}
// req.body 오류 해결이 필요한 부분
// export interface ApprovalResult {
// result: string
// }
export interface Reports {
reportedUserName: string
reportCount: number
}
export interface ReportInfo {
reportedUserName: string
reporterUserName: string
reportDate: string
reason: string
reportCount: number
email: string
}
// req.body 오류 해결이 필요한 부분
// export interface ReportResult {
// result: string
// }
7 changes: 7 additions & 0 deletions src/pages/admin/components/AdminApprovalInfo.tsx
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import styled from '@emotion/styled'
import { useQuery } from '@tanstack/react-query'

import AdminApprovalAPI from '@/apis/adminApproval/AdminApprovalApi'
import businessCardExample from '@/assets/images/businessCardExample.jpg'
import NormalButton from '@/components/common/Buttons/NormalButton'
import Spacing from '@/components/common/Spacing'
Expand All @@ -14,6 +16,11 @@ interface AdminApprovalInfoProps {
}

const AdminApprovalInfo = ({ selectedApprovalNickname }: AdminApprovalInfoProps) => {
const { data, isSuccess } = useQuery(
['ApprovalRequestUserInfo'],
AdminApprovalAPI.GET_APPROVAL_INFO,
)
console.log(isSuccess && data)
const { openModal } = useModal()
const handleAcceptCertificationBtn = () => {
openModal({
Expand Down
6 changes: 3 additions & 3 deletions src/pages/admin/components/AdminTabs.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,13 @@ const AdminTabs = () => {
setSelectedReportNickname(reportNickname)
setActiveTab('reportInfo')
}
const handleApprovalSelectNickname = (approvalNickname: string) => {
const handleApprovalSelectUserName = (approvalNickname: string) => {
setSelectedApprovalNickname(approvalNickname)
setActiveTab('approvalInfo')
}

const ApprovalList = ({ onPersonApprovalSelected }: ApprovalListProps) => (
<AdminApprovalList onApproveSelect={onPersonApprovalSelected} />
<AdminApprovalList onApproveSelectUserName={onPersonApprovalSelected} />
)
const ReportList = ({ onPersonReportedSelected }: ReportListProps) => (
<AdminReportList onReportSelect={onPersonReportedSelected} />
Expand Down Expand Up @@ -70,7 +70,7 @@ const AdminTabs = () => {

<StyledListContainer>
{activeTab === 'approval' && (
<ApprovalList onPersonApprovalSelected={handleApprovalSelectNickname} />
<ApprovalList onPersonApprovalSelected={handleApprovalSelectUserName} />
)}
{activeTab === 'report' && (
<ReportList onPersonReportedSelected={handleReportSelectNickname} />
Expand Down
Loading

0 comments on commit 2784f85

Please sign in to comment.