Skip to content
This repository has been archived by the owner on Nov 8, 2023. It is now read-only.

[fix] Auth API 수정 및 User Context 구현 #107

Merged
merged 5 commits into from
Nov 1, 2023

Conversation

Kakamotobi
Copy link
Member

구현한 것

  • 수정된 API에 맞게 mutation 수정.
  • 로그인시 access token, refresh token, 사용자 정보를 한번에 받기 때문에 userInfoQuery 제거하고 user context 사용.

기타

  • Google 로그인과 이메일/비밀번호 로그인은 아직 서버 미구현.
  • Naver 로그인은 검수 필요.
  • Kakao 로그인은 정상 작동.
  • Router도 protected, public only가 적용되도록 route들을 원위치로 옮겨놨습니다.

@Kakamotobi Kakamotobi added frontend 프론트 이슈 feat 새로운 기능 추가 labels Nov 1, 2023
@Kakamotobi Kakamotobi added this to the [FE] Sprint #4 milestone Nov 1, 2023
@Kakamotobi Kakamotobi self-assigned this Nov 1, 2023
Copy link

@bakhacode bakhacode left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍

Comment on lines 15 to 25
const {
jwt: { accessToken, refreshToken },
user,
} = data;

localStorage.setItem("accessToken", accessToken);
localStorage.setItem("refreshToken", refreshToken);

fetchUserInfo();
onSignIn(user);

navigate(Routes.DASHBOARD);
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

같은 로직이 useOAuthSignInMutation에도 있는데 onSignIn에 data만 넘기고 onSignin에게 localStorage에 token을 넣고 navigate까지 하는 건 어떨까요?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

localStorage 로직은 그렇게 수정했습니다. useNavigate은 Router 컴포넌트 맥락에서만 쓸 수 있어서 User Context로는 못 옮길 것 같습니다

queryKey: userKeys.info().queryKey,
exact: true,
});
onSignOut();
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

위 방법을 사용한다면 onSignOut에도 token을 지우는 로직을 넣을 수 있을 것 같네요.
그리고 onSignOut 이후에 navigate는 따로 필요없나요?

Copy link
Member Author

@Kakamotobi Kakamotobi Nov 1, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

20번 줄에 signout하고 navigate이 있는데 signin page로 이동하고 있어서 landing page로 변경했습니다

@altmit altmit merged commit e9864e8 into dev-fe Nov 1, 2023
@altmit altmit deleted the fe/feat/#25-signin-page branch November 1, 2023 12:43
@Kakamotobi Kakamotobi linked an issue Nov 1, 2023 that may be closed by this pull request
5 tasks
Kakamotobi added a commit that referenced this pull request Nov 2, 2023
* chore: Dependency 설치 및 프로젝트 초기화

* chore: Mock 초기화

* chore: vscode settings unignore

* chore: React query 설치 및 설정

* feat: Router 설정

* feat: API response 및 status 타입 정의

* feat: SignUpPage 세팅

* chore: README 초기화

* docs: FE 브랜치 전략 수정

* [feat] Home/Dashboard 구현 (#13)

* #5 feat: Nav Compound Component로 구현

* #5 feat: TickerTape 위젯 컴포넌트화

* #5 feat: Search 컴포넌트 구현

* #5 feat: UserControls 컴포넌트 구현

* #5 feat: Header 컴포넌트 구현

* #5 feat: Footer 컴포넌트 구현

* #5 feat: Dashboard UI 구현

* #5 feat: DateRange 추가

* #5 refactor: Nav 컴포넌트 Context 활용한 방식으로 수정

* #5 refactor: a태그 url 상수 사용

* #5 refactor: NavBar Item들을 직접 넘겨주는 방식으로 수정

* #5 feat: Dropdown 컴포넌트 Compound Component 구현

* #5 refactor: PR 피드백 반영한 수정

* #5 refactor: NavBar,Dropdown 수정

* [feat] SignUpPage 구현 (#26)

* #4 fix: ProtectedRoute, PublicOnlyRoute 수정

* #4 chore: vite-tsconfig-paths 설치

* #4 feat: OAuthProvider type 수정 및 useOAuthSignInMutation 추가

* #4 chore: Path alias 추가

* #4 design: GlobalStyles 및 기본 css 적용

* #4 chore: Utils path alias 추가

* #4 feat: BasePage 구현

* #4 design: BasePage 구현

* #4 design: Sign up SubPage 구현

* #4 feat: NicknameSubPage 구현

* #4 feat: EmailSubPage 구현

* #4 feat: PasswordSubPage 구현

* #4 feat: VerificationCodeInput 컴포넌트 구현

* #4 feat: VerificationSubPage 구현

* #4 feat: Sign up MainSubPage 구현

* #4 feat: SignUpPage 구현

* [feat] my profile page 구현 (#27)

* #11 refactor : route 관련 임시 작성

* #11 feat : 콤마 추가하는 유틸함수 구현

* #11 feat : MyProfilePage 구현

- App.tsx에 path 문제 수정
- PortfoliosPage 구현
- ProfileEditPage 구현

* #11 rename : profile 관련 파일 구조 변경

* #11 refactor : 변수, 함수 네이밍 피드백 반영

* merge  dev-fe into fe/feat/#11-myProfile-page

* #11 refactor : MyProfilePage 리팩토링

- 불필요한 state 제거
- MyProfilePage에 section 없이 이동시 portfoliosPage로 리다이렉트

---------

Co-authored-by: Daeram Chung <daeram.chung@gmail.com>

* [feat] WatchlistPage 구현 (#28)

* #24 refactor: TVTickerTape function 형식으로 수정

* #24 feat: WatchlistPage 구현

* #24 refactor: NavBar props 형식 수정

* #24 comment: 주석 삭제

* #24 refactor: 심볼 구성 변겅

* #24 chore: 드래그앤드롭 라이브러리 설치

* #24 refactor: PR 리뷰 피드백 반영

* [feat] Dashboard 포트폴리오 파이차트, 총 자산현황 라인차트 구현 (#34)

* #30 refactor: currentValue 컴포넌트로 분리

* #30 feat: Portfolio Pie Chart 구현

* #30 feat: 총 자산 형황 추이 Line Chart 구현

* #30 style: 불필요한 console log 삭제

* #30 chore: 의존성 추가 및 주석처리

* #30 refactor: PR 피드백 반영한 수정

* [feat] OAuth SignIn 구현 (#42)

* #4 feat: Sign up data에 passwordConfirm field 추가

* #4 feat: Sign up, 닉네임/이메일 중복검사 api 및 mock 추가

* #4 fix: useText 초기값 validate 적용

* #4 feat: NicknameSubPage "다음" 버튼 disabled 조건 적용

* #4 feat: Email verification code api 및 mock 추가

* #4 feat: Sign up subpage "다음" 버튼 disabled 조건 추가

* #4 feat: Signup nickname 중복 체크 기능 추가

* #4 feat: Signup email 중복 체크 기능 추가

* #4 feat: Signup password confirm mismatch 에러 메시지 추가

* #4 feat: Signup email verification code 요청 추가

* #4 feat: Google SignIn 추가

* #4 feat: Popup window 구현

* #4 feat: Kakao 로그인 버튼 구현

* #4 feat: Naver 로그인 버튼 구현

* #4 style: console.log 제거

* #4 fix: Window.naver doesn't exist type error

* #4 refactor: KakaoSignInButton oAuthPopUpWindow type guard 적용

* #4 refactor: Env variables 상수화

* PortfolioPage API 공유를 위한 PR (#53)

* #44 design: Plus icon 추가

* #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가

* #44 chore: MUI icons 패키지 설치

* #44 feat: PortfolioHoldingsTable 컴포넌트 구현

* #44 feat: PortfolioPage 기본 틀 구현

* #44 feat: Portfolio details data type 수정

* #44 feat: PortfolioHoldingsRow 컴포넌트 분리

* #44 fix: Portfolio holding mock data 수정

* Dependencies 공유를 위한 PR (#59)

* #44 design: Plus icon 추가

* #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가

* #44 chore: MUI icons 패키지 설치

* #44 feat: PortfolioHoldingsTable 컴포넌트 구현

* #44 feat: PortfolioPage 기본 틀 구현

* #44 feat: Portfolio details data type 수정

* #44 feat: PortfolioHoldingsRow 컴포넌트 분리

* #44 fix: Portfolio holding mock data 수정

* #44 chore: Jest dependencies 설치

* #44 feat: formatDate 함수 추가

* #44 refactor: PortfolioHoldingLots 컴포넌트 분리

* [feat] 포트폴리오 페이지 차트 영역 구현 (#60)

* #52 refactor: 자잘한 색깔 변경 및 코드 위치 수정

* #52 feat: 포트폴리오 종목별 파이차트 구현

* #52 feat: 월 배당금 막대 그래프 구현

* #52 feat: 섹터 Bar 구현

* #52 refactor: 데이터 받는 구조 수정

* #52 feat: 포트폴리오 페이지에 완성된 차트 조합

* #52 refactor: PR 피드백 반영한 수정

* #52 refactor: PR 피드백 반영한 수정

* [feat] 포트폴리오 종목 테이블 관련 기능 중간 공유 (#71)

* #44 design: Plus icon 추가

* #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가

* #44 chore: MUI icons 패키지 설치

* #44 feat: PortfolioHoldingsTable 컴포넌트 구현

* #44 feat: PortfolioPage 기본 틀 구현

* #44 feat: Portfolio details data type 수정

* #44 feat: PortfolioHoldingsRow 컴포넌트 분리

* #44 fix: Portfolio holding mock data 수정

* #44 chore: Jest dependencies 설치

* #44 feat: formatDate 함수 추가

* #44 refactor: PortfolioHoldingLots 컴포넌트 분리

* #44 rename: textValidators -> authInputValidators 파일명 변경

* #44 feat: validateDateFormat util 함수 추가

* #44 fix: import path 수정

* #44 feat: Portfolio 매입이력 수정 컴포넌트 구현

* #44 fix: Auth query key import 수정

* #44 chore: package.json 수정

* #44 refactor: Portfolio holding lot 개별 수정 및 저장으로 변경

* #44 feat: Portfolio holding purchase add api 및 mutation 추가

* #44 feat: Portoflio holding purchase add 틀 구현

* #44 fix: usePortfolioHoldingPurchaseAddMutation filter 수정

* #44 feat: Portfolio holding purchase edit api 및 mutation 추가

* #44 fix: Portfolio holding purchase edit mutation key 수정

* #44 feat: Portfolio holding purchase delete api 및 mutation 추가

* #44 feat: Portfolio holding add api 및 mutation 추가

* #44 feat: Portfolio holding delete api 및 mutation 추가

* #44 style: 종목 삭제 버튼 todo 주석 추가

* [feat] 포트폴리오 상태 영역 구현 및 공용 컴포넌트 구현 (#72)

* #39 feat : Portfolio base Page 구현

* #40 refactor : MUI 문제 해결
- @emotion/react, @emotion/styled 패키지 추가
- tsconfig resolve 삭제
- main에 StyledEngineProvider 추가

* #40 feat : 모달 관련 공용 컴포넌트 구현
- Confirm과 PortfolioModal에 공용으로 사용할 baseModal 구현
- Confirm, PortfolioModal 구현

* #40 feat : MUI를 활용한 ToggleSwitch 구현

* #40 refactor : 포트폴리오 data에 securitiesFirm 추가

* #40 feat : PortfolioOverview 컴포넌트 구현

* #40 rename : Confirm -> ConfirmAlert으로 변경

* #40 refactor : destructuring 컨벤션에 맞게 수정

* #40 refactor : destructuring 컨벤션에 맞게 수정

* #40 refactor : 불필요한 useEffect 제거

---------

Co-authored-by: Daeram Chung <daeram.chung@gmail.com>

* style: Package.json 쉼표 제거

* chore: 누락된 dependencies 설치 및 기타 수정

* [chore] Husky 및 lint-staged setup (#78)

* #76 chore: Husky, lint-staged 설치 및 설정

* #76 chore: Fix invalid husky pre-commit hook name

* #76 fix: Type error 처리

* fix: ESLint unnamed export default 수정

* feat: 차트 분류 퍼센티지 표기

* style: 아직 안쓰는 변수 주석 및 기타 처리

* [feat] Portfolio holding purchase history 삭제 기능 (#91)

* #44: React query devtools 설치

* #44 fix: Portfolio 관련 invalidateQueries query key 수정

* #44 feat: Portfolio holding purchase history delete mock 추가

* #44 feat: Portfolio holding purchase history 삭제 기능 추가

* [feat] 검색바 UI에 검색 API 연동 (#96)

* #93 feat: 검색바 UI에 검색 API 연동

* design: 자잘한 디자인 수정

* chore: 개발 환경 수정

* chore: eslint console.log error 처리

* refactor: search 쿼리 설정 수정

* refactor: PR 리뷰 피드백 수정

* [refactor] portfolioOverView 리팩토링 (#102)

* #77 refactor : number input에 숫자 제외 입력 제한, 반복 로직 분리

* #77 refactor : ToggleSwitch 불필요한 margin 제거

* #77 feat : 포트폴리오 추가, 수정, 삭제 api 구현

* #77 refactor : 포트폴리오 추가, 수정, 삭제 api 적용

* #77 refactor : api에 맞게 구현 및 수정

- purchaseHistory에 memo api에 맞게 string | null로 수정
- msw에서 포트폴리오 추가, 삭제, 수정 기능

* #77 refactor : 불필요한 useEffect cleanup 삭제

* #77 refactor : 포트폴리오 추가시 모달이 닫히지 않는 문제 수정

* #77 refactor : 불필요한 invalidate 제거

* #77 refactor : mutate 명확한 이름으로 재정의

* #77 refactor : 반복적으로 사용하는 함수 utils로 이동 및 적용

* #77 refactor : pr 피드백 반영

- boolean 값 네이밍 is가 접두사로 오게 수정
- 함수명 더 명확하게 재정의

* #77 rename : calculate -> calculations

* #77 refactor : 잘못 수정한 로직 변경

* #77 refactor : portfolioDetails 형태 변경

* [fix] Auth API 수정 및 User Context 구현 (#107)

* fix: 로그인 상태 유지 안되는 버그 해결

- 후에 토큰 및 사용자 정보 API 분리 후 사용자 정보(user)는 localStorage가 아니라 query cache 사용 예정

* feat: 로그아웃 버튼 추가 및 로그아웃 mock 추가

* [feat] 포트폴리오 매입 이력 추가 및 수정 기능 구현 (#109)

* #44 rename: Portfolio holdings 관련 파일 정리

* #44 chore: MUI date picker 및 Dayjs 설치

* #44 feat: 포트폴리오 매입 이력 추가 기능 및 mock 구현

* #44 feat: 포트폴리오 매입 이력 수정 기능 및 mock 추가

* [feat] StockPage 구현 및 포트폴리오 종목 추가,삭제 구현 (#123)

* #108 feat: 검색결과와 StockPage 연결 구현

* rename: 포트폴리오 쿼리 이름 변경

* design: 포트폴리오 페이지 차트 컨테이너들에 그림자 추가

* feat: 포트폴리오 종목 추가,삭제 기능 추가 + msw

* design: 포트폴리오 오버뷰 UI 디자인 적용

* rename: 포트폴리오 쿼리 이름 변경

* refactor: mutation onSuccess 위치 수정

* refactor: 함수명 컨벤션에 맞게 수정

* refactor: PR 리뷰 피드백 수정

* rename: PR 리뷰 피드백 수정

* [feat] 포트폴리오 상세 조회 및 종목 조회 WebSocket 구현 (#124)

* fix: Sign out API 수정

* #113 chore: Stompjs 설치

* #113 feat: useStompSubWithRQ 구현 및 포트폴리오 페이지 websocket 구현

* refactor: Hooks 폴더 정리 및 포트폴리오 모달 usePortfolioAddMutation 수정

---------

Co-authored-by: bakhacode <bakhamitai@naver.com>
Co-authored-by: Jay <chlwodnjs34@gmail.com>
Kakamotobi added a commit that referenced this pull request Nov 2, 2023
* chore: Dependency 설치 및 프로젝트 초기화

* chore: Mock 초기화

* chore: vscode settings unignore

* chore: React query 설치 및 설정

* feat: Router 설정

* feat: API response 및 status 타입 정의

* feat: SignUpPage 세팅

* chore: README 초기화

* docs: FE 브랜치 전략 수정

* [feat] Home/Dashboard 구현 (#13)

* #5 feat: Nav Compound Component로 구현

* #5 feat: TickerTape 위젯 컴포넌트화

* #5 feat: Search 컴포넌트 구현

* #5 feat: UserControls 컴포넌트 구현

* #5 feat: Header 컴포넌트 구현

* #5 feat: Footer 컴포넌트 구현

* #5 feat: Dashboard UI 구현

* #5 feat: DateRange 추가

* #5 refactor: Nav 컴포넌트 Context 활용한 방식으로 수정

* #5 refactor: a태그 url 상수 사용

* #5 refactor: NavBar Item들을 직접 넘겨주는 방식으로 수정

* #5 feat: Dropdown 컴포넌트 Compound Component 구현

* #5 refactor: PR 피드백 반영한 수정

* #5 refactor: NavBar,Dropdown 수정

* [feat] SignUpPage 구현 (#26)

* #4 fix: ProtectedRoute, PublicOnlyRoute 수정

* #4 chore: vite-tsconfig-paths 설치

* #4 feat: OAuthProvider type 수정 및 useOAuthSignInMutation 추가

* #4 chore: Path alias 추가

* #4 design: GlobalStyles 및 기본 css 적용

* #4 chore: Utils path alias 추가

* #4 feat: BasePage 구현

* #4 design: BasePage 구현

* #4 design: Sign up SubPage 구현

* #4 feat: NicknameSubPage 구현

* #4 feat: EmailSubPage 구현

* #4 feat: PasswordSubPage 구현

* #4 feat: VerificationCodeInput 컴포넌트 구현

* #4 feat: VerificationSubPage 구현

* #4 feat: Sign up MainSubPage 구현

* #4 feat: SignUpPage 구현

* [feat] my profile page 구현 (#27)

* #11 refactor : route 관련 임시 작성

* #11 feat : 콤마 추가하는 유틸함수 구현

* #11 feat : MyProfilePage 구현

- App.tsx에 path 문제 수정
- PortfoliosPage 구현
- ProfileEditPage 구현

* #11 rename : profile 관련 파일 구조 변경

* #11 refactor : 변수, 함수 네이밍 피드백 반영

* merge  dev-fe into fe/feat/#11-myProfile-page

* #11 refactor : MyProfilePage 리팩토링

- 불필요한 state 제거
- MyProfilePage에 section 없이 이동시 portfoliosPage로 리다이렉트

---------

Co-authored-by: Daeram Chung <daeram.chung@gmail.com>

* [feat] WatchlistPage 구현 (#28)

* #24 refactor: TVTickerTape function 형식으로 수정

* #24 feat: WatchlistPage 구현

* #24 refactor: NavBar props 형식 수정

* #24 comment: 주석 삭제

* #24 refactor: 심볼 구성 변겅

* #24 chore: 드래그앤드롭 라이브러리 설치

* #24 refactor: PR 리뷰 피드백 반영

* [feat] Dashboard 포트폴리오 파이차트, 총 자산현황 라인차트 구현 (#34)

* #30 refactor: currentValue 컴포넌트로 분리

* #30 feat: Portfolio Pie Chart 구현

* #30 feat: 총 자산 형황 추이 Line Chart 구현

* #30 style: 불필요한 console log 삭제

* #30 chore: 의존성 추가 및 주석처리

* #30 refactor: PR 피드백 반영한 수정

* [feat] OAuth SignIn 구현 (#42)

* #4 feat: Sign up data에 passwordConfirm field 추가

* #4 feat: Sign up, 닉네임/이메일 중복검사 api 및 mock 추가

* #4 fix: useText 초기값 validate 적용

* #4 feat: NicknameSubPage "다음" 버튼 disabled 조건 적용

* #4 feat: Email verification code api 및 mock 추가

* #4 feat: Sign up subpage "다음" 버튼 disabled 조건 추가

* #4 feat: Signup nickname 중복 체크 기능 추가

* #4 feat: Signup email 중복 체크 기능 추가

* #4 feat: Signup password confirm mismatch 에러 메시지 추가

* #4 feat: Signup email verification code 요청 추가

* #4 feat: Google SignIn 추가

* #4 feat: Popup window 구현

* #4 feat: Kakao 로그인 버튼 구현

* #4 feat: Naver 로그인 버튼 구현

* #4 style: console.log 제거

* #4 fix: Window.naver doesn't exist type error

* #4 refactor: KakaoSignInButton oAuthPopUpWindow type guard 적용

* #4 refactor: Env variables 상수화

* PortfolioPage API 공유를 위한 PR (#53)

* #44 design: Plus icon 추가

* #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가

* #44 chore: MUI icons 패키지 설치

* #44 feat: PortfolioHoldingsTable 컴포넌트 구현

* #44 feat: PortfolioPage 기본 틀 구현

* #44 feat: Portfolio details data type 수정

* #44 feat: PortfolioHoldingsRow 컴포넌트 분리

* #44 fix: Portfolio holding mock data 수정

* Dependencies 공유를 위한 PR (#59)

* #44 design: Plus icon 추가

* #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가

* #44 chore: MUI icons 패키지 설치

* #44 feat: PortfolioHoldingsTable 컴포넌트 구현

* #44 feat: PortfolioPage 기본 틀 구현

* #44 feat: Portfolio details data type 수정

* #44 feat: PortfolioHoldingsRow 컴포넌트 분리

* #44 fix: Portfolio holding mock data 수정

* #44 chore: Jest dependencies 설치

* #44 feat: formatDate 함수 추가

* #44 refactor: PortfolioHoldingLots 컴포넌트 분리

* [feat] 포트폴리오 페이지 차트 영역 구현 (#60)

* #52 refactor: 자잘한 색깔 변경 및 코드 위치 수정

* #52 feat: 포트폴리오 종목별 파이차트 구현

* #52 feat: 월 배당금 막대 그래프 구현

* #52 feat: 섹터 Bar 구현

* #52 refactor: 데이터 받는 구조 수정

* #52 feat: 포트폴리오 페이지에 완성된 차트 조합

* #52 refactor: PR 피드백 반영한 수정

* #52 refactor: PR 피드백 반영한 수정

* [feat] 포트폴리오 종목 테이블 관련 기능 중간 공유 (#71)

* #44 design: Plus icon 추가

* #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가

* #44 chore: MUI icons 패키지 설치

* #44 feat: PortfolioHoldingsTable 컴포넌트 구현

* #44 feat: PortfolioPage 기본 틀 구현

* #44 feat: Portfolio details data type 수정

* #44 feat: PortfolioHoldingsRow 컴포넌트 분리

* #44 fix: Portfolio holding mock data 수정

* #44 chore: Jest dependencies 설치

* #44 feat: formatDate 함수 추가

* #44 refactor: PortfolioHoldingLots 컴포넌트 분리

* #44 rename: textValidators -> authInputValidators 파일명 변경

* #44 feat: validateDateFormat util 함수 추가

* #44 fix: import path 수정

* #44 feat: Portfolio 매입이력 수정 컴포넌트 구현

* #44 fix: Auth query key import 수정

* #44 chore: package.json 수정

* #44 refactor: Portfolio holding lot 개별 수정 및 저장으로 변경

* #44 feat: Portfolio holding purchase add api 및 mutation 추가

* #44 feat: Portoflio holding purchase add 틀 구현

* #44 fix: usePortfolioHoldingPurchaseAddMutation filter 수정

* #44 feat: Portfolio holding purchase edit api 및 mutation 추가

* #44 fix: Portfolio holding purchase edit mutation key 수정

* #44 feat: Portfolio holding purchase delete api 및 mutation 추가

* #44 feat: Portfolio holding add api 및 mutation 추가

* #44 feat: Portfolio holding delete api 및 mutation 추가

* #44 style: 종목 삭제 버튼 todo 주석 추가

* [feat] 포트폴리오 상태 영역 구현 및 공용 컴포넌트 구현 (#72)

* #39 feat : Portfolio base Page 구현

* #40 refactor : MUI 문제 해결
- @emotion/react, @emotion/styled 패키지 추가
- tsconfig resolve 삭제
- main에 StyledEngineProvider 추가

* #40 feat : 모달 관련 공용 컴포넌트 구현
- Confirm과 PortfolioModal에 공용으로 사용할 baseModal 구현
- Confirm, PortfolioModal 구현

* #40 feat : MUI를 활용한 ToggleSwitch 구현

* #40 refactor : 포트폴리오 data에 securitiesFirm 추가

* #40 feat : PortfolioOverview 컴포넌트 구현

* #40 rename : Confirm -> ConfirmAlert으로 변경

* #40 refactor : destructuring 컨벤션에 맞게 수정

* #40 refactor : destructuring 컨벤션에 맞게 수정

* #40 refactor : 불필요한 useEffect 제거

---------

Co-authored-by: Daeram Chung <daeram.chung@gmail.com>

* style: Package.json 쉼표 제거

* chore: 누락된 dependencies 설치 및 기타 수정

* [chore] Husky 및 lint-staged setup (#78)

* #76 chore: Husky, lint-staged 설치 및 설정

* #76 chore: Fix invalid husky pre-commit hook name

* #76 fix: Type error 처리

* fix: ESLint unnamed export default 수정

* feat: 차트 분류 퍼센티지 표기

* style: 아직 안쓰는 변수 주석 및 기타 처리

* [feat] Portfolio holding purchase history 삭제 기능 (#91)

* #44: React query devtools 설치

* #44 fix: Portfolio 관련 invalidateQueries query key 수정

* #44 feat: Portfolio holding purchase history delete mock 추가

* #44 feat: Portfolio holding purchase history 삭제 기능 추가

* [feat] 검색바 UI에 검색 API 연동 (#96)

* #93 feat: 검색바 UI에 검색 API 연동

* design: 자잘한 디자인 수정

* chore: 개발 환경 수정

* chore: eslint console.log error 처리

* refactor: search 쿼리 설정 수정

* refactor: PR 리뷰 피드백 수정

* [refactor] portfolioOverView 리팩토링 (#102)

* #77 refactor : number input에 숫자 제외 입력 제한, 반복 로직 분리

* #77 refactor : ToggleSwitch 불필요한 margin 제거

* #77 feat : 포트폴리오 추가, 수정, 삭제 api 구현

* #77 refactor : 포트폴리오 추가, 수정, 삭제 api 적용

* #77 refactor : api에 맞게 구현 및 수정

- purchaseHistory에 memo api에 맞게 string | null로 수정
- msw에서 포트폴리오 추가, 삭제, 수정 기능

* #77 refactor : 불필요한 useEffect cleanup 삭제

* #77 refactor : 포트폴리오 추가시 모달이 닫히지 않는 문제 수정

* #77 refactor : 불필요한 invalidate 제거

* #77 refactor : mutate 명확한 이름으로 재정의

* #77 refactor : 반복적으로 사용하는 함수 utils로 이동 및 적용

* #77 refactor : pr 피드백 반영

- boolean 값 네이밍 is가 접두사로 오게 수정
- 함수명 더 명확하게 재정의

* #77 rename : calculate -> calculations

* #77 refactor : 잘못 수정한 로직 변경

* #77 refactor : portfolioDetails 형태 변경

* [fix] Auth API 수정 및 User Context 구현 (#107)

* fix: 로그인 상태 유지 안되는 버그 해결

- 후에 토큰 및 사용자 정보 API 분리 후 사용자 정보(user)는 localStorage가 아니라 query cache 사용 예정

* feat: 로그아웃 버튼 추가 및 로그아웃 mock 추가

* [feat] 포트폴리오 매입 이력 추가 및 수정 기능 구현 (#109)

* #44 rename: Portfolio holdings 관련 파일 정리

* #44 chore: MUI date picker 및 Dayjs 설치

* #44 feat: 포트폴리오 매입 이력 추가 기능 및 mock 구현

* #44 feat: 포트폴리오 매입 이력 수정 기능 및 mock 추가

* [feat] StockPage 구현 및 포트폴리오 종목 추가,삭제 구현 (#123)

* #108 feat: 검색결과와 StockPage 연결 구현

* rename: 포트폴리오 쿼리 이름 변경

* design: 포트폴리오 페이지 차트 컨테이너들에 그림자 추가

* feat: 포트폴리오 종목 추가,삭제 기능 추가 + msw

* design: 포트폴리오 오버뷰 UI 디자인 적용

* rename: 포트폴리오 쿼리 이름 변경

* refactor: mutation onSuccess 위치 수정

* refactor: 함수명 컨벤션에 맞게 수정

* refactor: PR 리뷰 피드백 수정

* rename: PR 리뷰 피드백 수정

* [feat] 포트폴리오 상세 조회 및 종목 조회 WebSocket 구현 (#124)

* fix: Sign out API 수정

* #113 chore: Stompjs 설치

* #113 feat: useStompSubWithRQ 구현 및 포트폴리오 페이지 websocket 구현

* refactor: Hooks 폴더 정리 및 포트폴리오 모달 usePortfolioAddMutation 수정

* fix: import 누락 및 기타 잔버그 수정

---------

Co-authored-by: bakhacode <bakhamitai@naver.com>
Co-authored-by: Jay <chlwodnjs34@gmail.com>
Kakamotobi added a commit that referenced this pull request Nov 2, 2023
* chore: Dependency 설치 및 프로젝트 초기화

* chore: Mock 초기화

* chore: vscode settings unignore

* chore: React query 설치 및 설정

* feat: Router 설정

* feat: API response 및 status 타입 정의

* feat: SignUpPage 세팅

* chore: README 초기화

* docs: FE 브랜치 전략 수정

* [feat] Home/Dashboard 구현 (#13)

* #5 feat: Nav Compound Component로 구현

* #5 feat: TickerTape 위젯 컴포넌트화

* #5 feat: Search 컴포넌트 구현

* #5 feat: UserControls 컴포넌트 구현

* #5 feat: Header 컴포넌트 구현

* #5 feat: Footer 컴포넌트 구현

* #5 feat: Dashboard UI 구현

* #5 feat: DateRange 추가

* #5 refactor: Nav 컴포넌트 Context 활용한 방식으로 수정

* #5 refactor: a태그 url 상수 사용

* #5 refactor: NavBar Item들을 직접 넘겨주는 방식으로 수정

* #5 feat: Dropdown 컴포넌트 Compound Component 구현

* #5 refactor: PR 피드백 반영한 수정

* #5 refactor: NavBar,Dropdown 수정

* [feat] SignUpPage 구현 (#26)

* #4 fix: ProtectedRoute, PublicOnlyRoute 수정

* #4 chore: vite-tsconfig-paths 설치

* #4 feat: OAuthProvider type 수정 및 useOAuthSignInMutation 추가

* #4 chore: Path alias 추가

* #4 design: GlobalStyles 및 기본 css 적용

* #4 chore: Utils path alias 추가

* #4 feat: BasePage 구현

* #4 design: BasePage 구현

* #4 design: Sign up SubPage 구현

* #4 feat: NicknameSubPage 구현

* #4 feat: EmailSubPage 구현

* #4 feat: PasswordSubPage 구현

* #4 feat: VerificationCodeInput 컴포넌트 구현

* #4 feat: VerificationSubPage 구현

* #4 feat: Sign up MainSubPage 구현

* #4 feat: SignUpPage 구현

* [feat] my profile page 구현 (#27)

* #11 refactor : route 관련 임시 작성

* #11 feat : 콤마 추가하는 유틸함수 구현

* #11 feat : MyProfilePage 구현

- App.tsx에 path 문제 수정
- PortfoliosPage 구현
- ProfileEditPage 구현

* #11 rename : profile 관련 파일 구조 변경

* #11 refactor : 변수, 함수 네이밍 피드백 반영

* merge  dev-fe into fe/feat/#11-myProfile-page

* #11 refactor : MyProfilePage 리팩토링

- 불필요한 state 제거
- MyProfilePage에 section 없이 이동시 portfoliosPage로 리다이렉트

---------

Co-authored-by: Daeram Chung <daeram.chung@gmail.com>

* [feat] WatchlistPage 구현 (#28)

* #24 refactor: TVTickerTape function 형식으로 수정

* #24 feat: WatchlistPage 구현

* #24 refactor: NavBar props 형식 수정

* #24 comment: 주석 삭제

* #24 refactor: 심볼 구성 변겅

* #24 chore: 드래그앤드롭 라이브러리 설치

* #24 refactor: PR 리뷰 피드백 반영

* [feat] Dashboard 포트폴리오 파이차트, 총 자산현황 라인차트 구현 (#34)

* #30 refactor: currentValue 컴포넌트로 분리

* #30 feat: Portfolio Pie Chart 구현

* #30 feat: 총 자산 형황 추이 Line Chart 구현

* #30 style: 불필요한 console log 삭제

* #30 chore: 의존성 추가 및 주석처리

* #30 refactor: PR 피드백 반영한 수정

* [feat] OAuth SignIn 구현 (#42)

* #4 feat: Sign up data에 passwordConfirm field 추가

* #4 feat: Sign up, 닉네임/이메일 중복검사 api 및 mock 추가

* #4 fix: useText 초기값 validate 적용

* #4 feat: NicknameSubPage "다음" 버튼 disabled 조건 적용

* #4 feat: Email verification code api 및 mock 추가

* #4 feat: Sign up subpage "다음" 버튼 disabled 조건 추가

* #4 feat: Signup nickname 중복 체크 기능 추가

* #4 feat: Signup email 중복 체크 기능 추가

* #4 feat: Signup password confirm mismatch 에러 메시지 추가

* #4 feat: Signup email verification code 요청 추가

* #4 feat: Google SignIn 추가

* #4 feat: Popup window 구현

* #4 feat: Kakao 로그인 버튼 구현

* #4 feat: Naver 로그인 버튼 구현

* #4 style: console.log 제거

* #4 fix: Window.naver doesn't exist type error

* #4 refactor: KakaoSignInButton oAuthPopUpWindow type guard 적용

* #4 refactor: Env variables 상수화

* PortfolioPage API 공유를 위한 PR (#53)

* #44 design: Plus icon 추가

* #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가

* #44 chore: MUI icons 패키지 설치

* #44 feat: PortfolioHoldingsTable 컴포넌트 구현

* #44 feat: PortfolioPage 기본 틀 구현

* #44 feat: Portfolio details data type 수정

* #44 feat: PortfolioHoldingsRow 컴포넌트 분리

* #44 fix: Portfolio holding mock data 수정

* Dependencies 공유를 위한 PR (#59)

* #44 design: Plus icon 추가

* #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가

* #44 chore: MUI icons 패키지 설치

* #44 feat: PortfolioHoldingsTable 컴포넌트 구현

* #44 feat: PortfolioPage 기본 틀 구현

* #44 feat: Portfolio details data type 수정

* #44 feat: PortfolioHoldingsRow 컴포넌트 분리

* #44 fix: Portfolio holding mock data 수정

* #44 chore: Jest dependencies 설치

* #44 feat: formatDate 함수 추가

* #44 refactor: PortfolioHoldingLots 컴포넌트 분리

* [feat] 포트폴리오 페이지 차트 영역 구현 (#60)

* #52 refactor: 자잘한 색깔 변경 및 코드 위치 수정

* #52 feat: 포트폴리오 종목별 파이차트 구현

* #52 feat: 월 배당금 막대 그래프 구현

* #52 feat: 섹터 Bar 구현

* #52 refactor: 데이터 받는 구조 수정

* #52 feat: 포트폴리오 페이지에 완성된 차트 조합

* #52 refactor: PR 피드백 반영한 수정

* #52 refactor: PR 피드백 반영한 수정

* [feat] 포트폴리오 종목 테이블 관련 기능 중간 공유 (#71)

* #44 design: Plus icon 추가

* #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가

* #44 chore: MUI icons 패키지 설치

* #44 feat: PortfolioHoldingsTable 컴포넌트 구현

* #44 feat: PortfolioPage 기본 틀 구현

* #44 feat: Portfolio details data type 수정

* #44 feat: PortfolioHoldingsRow 컴포넌트 분리

* #44 fix: Portfolio holding mock data 수정

* #44 chore: Jest dependencies 설치

* #44 feat: formatDate 함수 추가

* #44 refactor: PortfolioHoldingLots 컴포넌트 분리

* #44 rename: textValidators -> authInputValidators 파일명 변경

* #44 feat: validateDateFormat util 함수 추가

* #44 fix: import path 수정

* #44 feat: Portfolio 매입이력 수정 컴포넌트 구현

* #44 fix: Auth query key import 수정

* #44 chore: package.json 수정

* #44 refactor: Portfolio holding lot 개별 수정 및 저장으로 변경

* #44 feat: Portfolio holding purchase add api 및 mutation 추가

* #44 feat: Portoflio holding purchase add 틀 구현

* #44 fix: usePortfolioHoldingPurchaseAddMutation filter 수정

* #44 feat: Portfolio holding purchase edit api 및 mutation 추가

* #44 fix: Portfolio holding purchase edit mutation key 수정

* #44 feat: Portfolio holding purchase delete api 및 mutation 추가

* #44 feat: Portfolio holding add api 및 mutation 추가

* #44 feat: Portfolio holding delete api 및 mutation 추가

* #44 style: 종목 삭제 버튼 todo 주석 추가

* [feat] 포트폴리오 상태 영역 구현 및 공용 컴포넌트 구현 (#72)

* #39 feat : Portfolio base Page 구현

* #40 refactor : MUI 문제 해결
- @emotion/react, @emotion/styled 패키지 추가
- tsconfig resolve 삭제
- main에 StyledEngineProvider 추가

* #40 feat : 모달 관련 공용 컴포넌트 구현
- Confirm과 PortfolioModal에 공용으로 사용할 baseModal 구현
- Confirm, PortfolioModal 구현

* #40 feat : MUI를 활용한 ToggleSwitch 구현

* #40 refactor : 포트폴리오 data에 securitiesFirm 추가

* #40 feat : PortfolioOverview 컴포넌트 구현

* #40 rename : Confirm -> ConfirmAlert으로 변경

* #40 refactor : destructuring 컨벤션에 맞게 수정

* #40 refactor : destructuring 컨벤션에 맞게 수정

* #40 refactor : 불필요한 useEffect 제거

---------

Co-authored-by: Daeram Chung <daeram.chung@gmail.com>

* style: Package.json 쉼표 제거

* chore: 누락된 dependencies 설치 및 기타 수정

* [chore] Husky 및 lint-staged setup (#78)

* #76 chore: Husky, lint-staged 설치 및 설정

* #76 chore: Fix invalid husky pre-commit hook name

* #76 fix: Type error 처리

* fix: ESLint unnamed export default 수정

* feat: 차트 분류 퍼센티지 표기

* style: 아직 안쓰는 변수 주석 및 기타 처리

* [feat] Portfolio holding purchase history 삭제 기능 (#91)

* #44: React query devtools 설치

* #44 fix: Portfolio 관련 invalidateQueries query key 수정

* #44 feat: Portfolio holding purchase history delete mock 추가

* #44 feat: Portfolio holding purchase history 삭제 기능 추가

* [feat] 검색바 UI에 검색 API 연동 (#96)

* #93 feat: 검색바 UI에 검색 API 연동

* design: 자잘한 디자인 수정

* chore: 개발 환경 수정

* chore: eslint console.log error 처리

* refactor: search 쿼리 설정 수정

* refactor: PR 리뷰 피드백 수정

* [refactor] portfolioOverView 리팩토링 (#102)

* #77 refactor : number input에 숫자 제외 입력 제한, 반복 로직 분리

* #77 refactor : ToggleSwitch 불필요한 margin 제거

* #77 feat : 포트폴리오 추가, 수정, 삭제 api 구현

* #77 refactor : 포트폴리오 추가, 수정, 삭제 api 적용

* #77 refactor : api에 맞게 구현 및 수정

- purchaseHistory에 memo api에 맞게 string | null로 수정
- msw에서 포트폴리오 추가, 삭제, 수정 기능

* #77 refactor : 불필요한 useEffect cleanup 삭제

* #77 refactor : 포트폴리오 추가시 모달이 닫히지 않는 문제 수정

* #77 refactor : 불필요한 invalidate 제거

* #77 refactor : mutate 명확한 이름으로 재정의

* #77 refactor : 반복적으로 사용하는 함수 utils로 이동 및 적용

* #77 refactor : pr 피드백 반영

- boolean 값 네이밍 is가 접두사로 오게 수정
- 함수명 더 명확하게 재정의

* #77 rename : calculate -> calculations

* #77 refactor : 잘못 수정한 로직 변경

* #77 refactor : portfolioDetails 형태 변경

* [fix] Auth API 수정 및 User Context 구현 (#107)

* fix: 로그인 상태 유지 안되는 버그 해결

- 후에 토큰 및 사용자 정보 API 분리 후 사용자 정보(user)는 localStorage가 아니라 query cache 사용 예정

* feat: 로그아웃 버튼 추가 및 로그아웃 mock 추가

* [feat] 포트폴리오 매입 이력 추가 및 수정 기능 구현 (#109)

* #44 rename: Portfolio holdings 관련 파일 정리

* #44 chore: MUI date picker 및 Dayjs 설치

* #44 feat: 포트폴리오 매입 이력 추가 기능 및 mock 구현

* #44 feat: 포트폴리오 매입 이력 수정 기능 및 mock 추가

* [feat] StockPage 구현 및 포트폴리오 종목 추가,삭제 구현 (#123)

* #108 feat: 검색결과와 StockPage 연결 구현

* rename: 포트폴리오 쿼리 이름 변경

* design: 포트폴리오 페이지 차트 컨테이너들에 그림자 추가

* feat: 포트폴리오 종목 추가,삭제 기능 추가 + msw

* design: 포트폴리오 오버뷰 UI 디자인 적용

* rename: 포트폴리오 쿼리 이름 변경

* refactor: mutation onSuccess 위치 수정

* refactor: 함수명 컨벤션에 맞게 수정

* refactor: PR 리뷰 피드백 수정

* rename: PR 리뷰 피드백 수정

* [feat] 포트폴리오 상세 조회 및 종목 조회 WebSocket 구현 (#124)

* fix: Sign out API 수정

* #113 chore: Stompjs 설치

* #113 feat: useStompSubWithRQ 구현 및 포트폴리오 페이지 websocket 구현

* refactor: Hooks 폴더 정리 및 포트폴리오 모달 usePortfolioAddMutation 수정

* fix: import 누락 및 기타 잔버그 수정

* fix: 포트폴리오 종목 추가 시 모달 닫히지 않는 문제 해결

* feat: 종목 삭제 확인 알럿 추가

* style: 테스트용 버튼 제거

* fix: 테스트용 코드 제

* feat: LandingPage 구현

---------

Co-authored-by: bakhacode <bakhamitai@naver.com>
Co-authored-by: Jay <chlwodnjs34@gmail.com>
bakhacode added a commit that referenced this pull request Nov 3, 2023
* chore: Dependency 설치 및 프로젝트 초기화

* chore: Mock 초기화

* chore: vscode settings unignore

* chore: React query 설치 및 설정

* feat: Router 설정

* feat: API response 및 status 타입 정의

* feat: SignUpPage 세팅

* chore: README 초기화

* docs: FE 브랜치 전략 수정

* [feat] Home/Dashboard 구현 (#13)

* #5 feat: Nav Compound Component로 구현

* #5 feat: TickerTape 위젯 컴포넌트화

* #5 feat: Search 컴포넌트 구현

* #5 feat: UserControls 컴포넌트 구현

* #5 feat: Header 컴포넌트 구현

* #5 feat: Footer 컴포넌트 구현

* #5 feat: Dashboard UI 구현

* #5 feat: DateRange 추가

* #5 refactor: Nav 컴포넌트 Context 활용한 방식으로 수정

* #5 refactor: a태그 url 상수 사용

* #5 refactor: NavBar Item들을 직접 넘겨주는 방식으로 수정

* #5 feat: Dropdown 컴포넌트 Compound Component 구현

* #5 refactor: PR 피드백 반영한 수정

* #5 refactor: NavBar,Dropdown 수정

* [feat] SignUpPage 구현 (#26)

* #4 fix: ProtectedRoute, PublicOnlyRoute 수정

* #4 chore: vite-tsconfig-paths 설치

* #4 feat: OAuthProvider type 수정 및 useOAuthSignInMutation 추가

* #4 chore: Path alias 추가

* #4 design: GlobalStyles 및 기본 css 적용

* #4 chore: Utils path alias 추가

* #4 feat: BasePage 구현

* #4 design: BasePage 구현

* #4 design: Sign up SubPage 구현

* #4 feat: NicknameSubPage 구현

* #4 feat: EmailSubPage 구현

* #4 feat: PasswordSubPage 구현

* #4 feat: VerificationCodeInput 컴포넌트 구현

* #4 feat: VerificationSubPage 구현

* #4 feat: Sign up MainSubPage 구현

* #4 feat: SignUpPage 구현

* [feat] my profile page 구현 (#27)

* #11 refactor : route 관련 임시 작성

* #11 feat : 콤마 추가하는 유틸함수 구현

* #11 feat : MyProfilePage 구현

- App.tsx에 path 문제 수정
- PortfoliosPage 구현
- ProfileEditPage 구현

* #11 rename : profile 관련 파일 구조 변경

* #11 refactor : 변수, 함수 네이밍 피드백 반영

* merge  dev-fe into fe/feat/#11-myProfile-page

* #11 refactor : MyProfilePage 리팩토링

- 불필요한 state 제거
- MyProfilePage에 section 없이 이동시 portfoliosPage로 리다이렉트

---------

Co-authored-by: Daeram Chung <daeram.chung@gmail.com>

* [feat] WatchlistPage 구현 (#28)

* #24 refactor: TVTickerTape function 형식으로 수정

* #24 feat: WatchlistPage 구현

* #24 refactor: NavBar props 형식 수정

* #24 comment: 주석 삭제

* #24 refactor: 심볼 구성 변겅

* #24 chore: 드래그앤드롭 라이브러리 설치

* #24 refactor: PR 리뷰 피드백 반영

* [feat] Dashboard 포트폴리오 파이차트, 총 자산현황 라인차트 구현 (#34)

* #30 refactor: currentValue 컴포넌트로 분리

* #30 feat: Portfolio Pie Chart 구현

* #30 feat: 총 자산 형황 추이 Line Chart 구현

* #30 style: 불필요한 console log 삭제

* #30 chore: 의존성 추가 및 주석처리

* #30 refactor: PR 피드백 반영한 수정

* [feat] OAuth SignIn 구현 (#42)

* #4 feat: Sign up data에 passwordConfirm field 추가

* #4 feat: Sign up, 닉네임/이메일 중복검사 api 및 mock 추가

* #4 fix: useText 초기값 validate 적용

* #4 feat: NicknameSubPage "다음" 버튼 disabled 조건 적용

* #4 feat: Email verification code api 및 mock 추가

* #4 feat: Sign up subpage "다음" 버튼 disabled 조건 추가

* #4 feat: Signup nickname 중복 체크 기능 추가

* #4 feat: Signup email 중복 체크 기능 추가

* #4 feat: Signup password confirm mismatch 에러 메시지 추가

* #4 feat: Signup email verification code 요청 추가

* #4 feat: Google SignIn 추가

* #4 feat: Popup window 구현

* #4 feat: Kakao 로그인 버튼 구현

* #4 feat: Naver 로그인 버튼 구현

* #4 style: console.log 제거

* #4 fix: Window.naver doesn't exist type error

* #4 refactor: KakaoSignInButton oAuthPopUpWindow type guard 적용

* #4 refactor: Env variables 상수화

* PortfolioPage API 공유를 위한 PR (#53)

* #44 design: Plus icon 추가

* #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가

* #44 chore: MUI icons 패키지 설치

* #44 feat: PortfolioHoldingsTable 컴포넌트 구현

* #44 feat: PortfolioPage 기본 틀 구현

* #44 feat: Portfolio details data type 수정

* #44 feat: PortfolioHoldingsRow 컴포넌트 분리

* #44 fix: Portfolio holding mock data 수정

* Dependencies 공유를 위한 PR (#59)

* #44 design: Plus icon 추가

* #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가

* #44 chore: MUI icons 패키지 설치

* #44 feat: PortfolioHoldingsTable 컴포넌트 구현

* #44 feat: PortfolioPage 기본 틀 구현

* #44 feat: Portfolio details data type 수정

* #44 feat: PortfolioHoldingsRow 컴포넌트 분리

* #44 fix: Portfolio holding mock data 수정

* #44 chore: Jest dependencies 설치

* #44 feat: formatDate 함수 추가

* #44 refactor: PortfolioHoldingLots 컴포넌트 분리

* [feat] 포트폴리오 페이지 차트 영역 구현 (#60)

* #52 refactor: 자잘한 색깔 변경 및 코드 위치 수정

* #52 feat: 포트폴리오 종목별 파이차트 구현

* #52 feat: 월 배당금 막대 그래프 구현

* #52 feat: 섹터 Bar 구현

* #52 refactor: 데이터 받는 구조 수정

* #52 feat: 포트폴리오 페이지에 완성된 차트 조합

* #52 refactor: PR 피드백 반영한 수정

* #52 refactor: PR 피드백 반영한 수정

* [feat] 포트폴리오 종목 테이블 관련 기능 중간 공유 (#71)

* #44 design: Plus icon 추가

* #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가

* #44 chore: MUI icons 패키지 설치

* #44 feat: PortfolioHoldingsTable 컴포넌트 구현

* #44 feat: PortfolioPage 기본 틀 구현

* #44 feat: Portfolio details data type 수정

* #44 feat: PortfolioHoldingsRow 컴포넌트 분리

* #44 fix: Portfolio holding mock data 수정

* #44 chore: Jest dependencies 설치

* #44 feat: formatDate 함수 추가

* #44 refactor: PortfolioHoldingLots 컴포넌트 분리

* #44 rename: textValidators -> authInputValidators 파일명 변경

* #44 feat: validateDateFormat util 함수 추가

* #44 fix: import path 수정

* #44 feat: Portfolio 매입이력 수정 컴포넌트 구현

* #44 fix: Auth query key import 수정

* #44 chore: package.json 수정

* #44 refactor: Portfolio holding lot 개별 수정 및 저장으로 변경

* #44 feat: Portfolio holding purchase add api 및 mutation 추가

* #44 feat: Portoflio holding purchase add 틀 구현

* #44 fix: usePortfolioHoldingPurchaseAddMutation filter 수정

* #44 feat: Portfolio holding purchase edit api 및 mutation 추가

* #44 fix: Portfolio holding purchase edit mutation key 수정

* #44 feat: Portfolio holding purchase delete api 및 mutation 추가

* #44 feat: Portfolio holding add api 및 mutation 추가

* #44 feat: Portfolio holding delete api 및 mutation 추가

* #44 style: 종목 삭제 버튼 todo 주석 추가

* [feat] 포트폴리오 상태 영역 구현 및 공용 컴포넌트 구현 (#72)

* #39 feat : Portfolio base Page 구현

* #40 refactor : MUI 문제 해결
- @emotion/react, @emotion/styled 패키지 추가
- tsconfig resolve 삭제
- main에 StyledEngineProvider 추가

* #40 feat : 모달 관련 공용 컴포넌트 구현
- Confirm과 PortfolioModal에 공용으로 사용할 baseModal 구현
- Confirm, PortfolioModal 구현

* #40 feat : MUI를 활용한 ToggleSwitch 구현

* #40 refactor : 포트폴리오 data에 securitiesFirm 추가

* #40 feat : PortfolioOverview 컴포넌트 구현

* #40 rename : Confirm -> ConfirmAlert으로 변경

* #40 refactor : destructuring 컨벤션에 맞게 수정

* #40 refactor : destructuring 컨벤션에 맞게 수정

* #40 refactor : 불필요한 useEffect 제거

---------

Co-authored-by: Daeram Chung <daeram.chung@gmail.com>

* style: Package.json 쉼표 제거

* chore: 누락된 dependencies 설치 및 기타 수정

* [chore] Husky 및 lint-staged setup (#78)

* #76 chore: Husky, lint-staged 설치 및 설정

* #76 chore: Fix invalid husky pre-commit hook name

* #76 fix: Type error 처리

* fix: ESLint unnamed export default 수정

* feat: 차트 분류 퍼센티지 표기

* style: 아직 안쓰는 변수 주석 및 기타 처리

* [feat] Portfolio holding purchase history 삭제 기능 (#91)

* #44: React query devtools 설치

* #44 fix: Portfolio 관련 invalidateQueries query key 수정

* #44 feat: Portfolio holding purchase history delete mock 추가

* #44 feat: Portfolio holding purchase history 삭제 기능 추가

* [feat] 검색바 UI에 검색 API 연동 (#96)

* #93 feat: 검색바 UI에 검색 API 연동

* design: 자잘한 디자인 수정

* chore: 개발 환경 수정

* chore: eslint console.log error 처리

* refactor: search 쿼리 설정 수정

* refactor: PR 리뷰 피드백 수정

* [refactor] portfolioOverView 리팩토링 (#102)

* #77 refactor : number input에 숫자 제외 입력 제한, 반복 로직 분리

* #77 refactor : ToggleSwitch 불필요한 margin 제거

* #77 feat : 포트폴리오 추가, 수정, 삭제 api 구현

* #77 refactor : 포트폴리오 추가, 수정, 삭제 api 적용

* #77 refactor : api에 맞게 구현 및 수정

- purchaseHistory에 memo api에 맞게 string | null로 수정
- msw에서 포트폴리오 추가, 삭제, 수정 기능

* #77 refactor : 불필요한 useEffect cleanup 삭제

* #77 refactor : 포트폴리오 추가시 모달이 닫히지 않는 문제 수정

* #77 refactor : 불필요한 invalidate 제거

* #77 refactor : mutate 명확한 이름으로 재정의

* #77 refactor : 반복적으로 사용하는 함수 utils로 이동 및 적용

* #77 refactor : pr 피드백 반영

- boolean 값 네이밍 is가 접두사로 오게 수정
- 함수명 더 명확하게 재정의

* #77 rename : calculate -> calculations

* #77 refactor : 잘못 수정한 로직 변경

* #77 refactor : portfolioDetails 형태 변경

* [fix] Auth API 수정 및 User Context 구현 (#107)

* fix: 로그인 상태 유지 안되는 버그 해결

- 후에 토큰 및 사용자 정보 API 분리 후 사용자 정보(user)는 localStorage가 아니라 query cache 사용 예정

* feat: 로그아웃 버튼 추가 및 로그아웃 mock 추가

* [feat] 포트폴리오 매입 이력 추가 및 수정 기능 구현 (#109)

* #44 rename: Portfolio holdings 관련 파일 정리

* #44 chore: MUI date picker 및 Dayjs 설치

* #44 feat: 포트폴리오 매입 이력 추가 기능 및 mock 구현

* #44 feat: 포트폴리오 매입 이력 수정 기능 및 mock 추가

* [feat] StockPage 구현 및 포트폴리오 종목 추가,삭제 구현 (#123)

* #108 feat: 검색결과와 StockPage 연결 구현

* rename: 포트폴리오 쿼리 이름 변경

* design: 포트폴리오 페이지 차트 컨테이너들에 그림자 추가

* feat: 포트폴리오 종목 추가,삭제 기능 추가 + msw

* design: 포트폴리오 오버뷰 UI 디자인 적용

* rename: 포트폴리오 쿼리 이름 변경

* refactor: mutation onSuccess 위치 수정

* refactor: 함수명 컨벤션에 맞게 수정

* refactor: PR 리뷰 피드백 수정

* rename: PR 리뷰 피드백 수정

* [feat] 포트폴리오 상세 조회 및 종목 조회 WebSocket 구현 (#124)

* fix: Sign out API 수정

* #113 chore: Stompjs 설치

* #113 feat: useStompSubWithRQ 구현 및 포트폴리오 페이지 websocket 구현

* refactor: Hooks 폴더 정리 및 포트폴리오 모달 usePortfolioAddMutation 수정

* fix: import 누락 및 기타 잔버그 수정

* fix: 포트폴리오 종목 추가 시 모달 닫히지 않는 문제 해결

* feat: 종목 삭제 확인 알럿 추가

* style: 테스트용 버튼 제거

* fix: 테스트용 코드 제

* feat: LandingPage 구현

* feat: 변동값들 색깔 표시되게 구현

* style: 주석 제거 및 타입 속성 이름 변경

* style: 상태 이름 수정

* style: 핸들러 함수 담아서 사용

---------

Co-authored-by: Daeram Chung <daeram.chung@gmail.com>
Co-authored-by: Jay <chlwodnjs34@gmail.com>
Kakamotobi added a commit that referenced this pull request Nov 3, 2023
* chore: Dependency 설치 및 프로젝트 초기화

* chore: Mock 초기화

* chore: vscode settings unignore

* chore: React query 설치 및 설정

* feat: Router 설정

* feat: API response 및 status 타입 정의

* feat: SignUpPage 세팅

* chore: README 초기화

* docs: FE 브랜치 전략 수정

* [feat] Home/Dashboard 구현 (#13)

* #5 feat: Nav Compound Component로 구현

* #5 feat: TickerTape 위젯 컴포넌트화

* #5 feat: Search 컴포넌트 구현

* #5 feat: UserControls 컴포넌트 구현

* #5 feat: Header 컴포넌트 구현

* #5 feat: Footer 컴포넌트 구현

* #5 feat: Dashboard UI 구현

* #5 feat: DateRange 추가

* #5 refactor: Nav 컴포넌트 Context 활용한 방식으로 수정

* #5 refactor: a태그 url 상수 사용

* #5 refactor: NavBar Item들을 직접 넘겨주는 방식으로 수정

* #5 feat: Dropdown 컴포넌트 Compound Component 구현

* #5 refactor: PR 피드백 반영한 수정

* #5 refactor: NavBar,Dropdown 수정

* [feat] SignUpPage 구현 (#26)

* #4 fix: ProtectedRoute, PublicOnlyRoute 수정

* #4 chore: vite-tsconfig-paths 설치

* #4 feat: OAuthProvider type 수정 및 useOAuthSignInMutation 추가

* #4 chore: Path alias 추가

* #4 design: GlobalStyles 및 기본 css 적용

* #4 chore: Utils path alias 추가

* #4 feat: BasePage 구현

* #4 design: BasePage 구현

* #4 design: Sign up SubPage 구현

* #4 feat: NicknameSubPage 구현

* #4 feat: EmailSubPage 구현

* #4 feat: PasswordSubPage 구현

* #4 feat: VerificationCodeInput 컴포넌트 구현

* #4 feat: VerificationSubPage 구현

* #4 feat: Sign up MainSubPage 구현

* #4 feat: SignUpPage 구현

* [feat] my profile page 구현 (#27)

* #11 refactor : route 관련 임시 작성

* #11 feat : 콤마 추가하는 유틸함수 구현

* #11 feat : MyProfilePage 구현

- App.tsx에 path 문제 수정
- PortfoliosPage 구현
- ProfileEditPage 구현

* #11 rename : profile 관련 파일 구조 변경

* #11 refactor : 변수, 함수 네이밍 피드백 반영

* merge  dev-fe into fe/feat/#11-myProfile-page

* #11 refactor : MyProfilePage 리팩토링

- 불필요한 state 제거
- MyProfilePage에 section 없이 이동시 portfoliosPage로 리다이렉트

---------

Co-authored-by: Daeram Chung <daeram.chung@gmail.com>

* [feat] WatchlistPage 구현 (#28)

* #24 refactor: TVTickerTape function 형식으로 수정

* #24 feat: WatchlistPage 구현

* #24 refactor: NavBar props 형식 수정

* #24 comment: 주석 삭제

* #24 refactor: 심볼 구성 변겅

* #24 chore: 드래그앤드롭 라이브러리 설치

* #24 refactor: PR 리뷰 피드백 반영

* [feat] Dashboard 포트폴리오 파이차트, 총 자산현황 라인차트 구현 (#34)

* #30 refactor: currentValue 컴포넌트로 분리

* #30 feat: Portfolio Pie Chart 구현

* #30 feat: 총 자산 형황 추이 Line Chart 구현

* #30 style: 불필요한 console log 삭제

* #30 chore: 의존성 추가 및 주석처리

* #30 refactor: PR 피드백 반영한 수정

* [feat] OAuth SignIn 구현 (#42)

* #4 feat: Sign up data에 passwordConfirm field 추가

* #4 feat: Sign up, 닉네임/이메일 중복검사 api 및 mock 추가

* #4 fix: useText 초기값 validate 적용

* #4 feat: NicknameSubPage "다음" 버튼 disabled 조건 적용

* #4 feat: Email verification code api 및 mock 추가

* #4 feat: Sign up subpage "다음" 버튼 disabled 조건 추가

* #4 feat: Signup nickname 중복 체크 기능 추가

* #4 feat: Signup email 중복 체크 기능 추가

* #4 feat: Signup password confirm mismatch 에러 메시지 추가

* #4 feat: Signup email verification code 요청 추가

* #4 feat: Google SignIn 추가

* #4 feat: Popup window 구현

* #4 feat: Kakao 로그인 버튼 구현

* #4 feat: Naver 로그인 버튼 구현

* #4 style: console.log 제거

* #4 fix: Window.naver doesn't exist type error

* #4 refactor: KakaoSignInButton oAuthPopUpWindow type guard 적용

* #4 refactor: Env variables 상수화

* PortfolioPage API 공유를 위한 PR (#53)

* #44 design: Plus icon 추가

* #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가

* #44 chore: MUI icons 패키지 설치

* #44 feat: PortfolioHoldingsTable 컴포넌트 구현

* #44 feat: PortfolioPage 기본 틀 구현

* #44 feat: Portfolio details data type 수정

* #44 feat: PortfolioHoldingsRow 컴포넌트 분리

* #44 fix: Portfolio holding mock data 수정

* Dependencies 공유를 위한 PR (#59)

* #44 design: Plus icon 추가

* #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가

* #44 chore: MUI icons 패키지 설치

* #44 feat: PortfolioHoldingsTable 컴포넌트 구현

* #44 feat: PortfolioPage 기본 틀 구현

* #44 feat: Portfolio details data type 수정

* #44 feat: PortfolioHoldingsRow 컴포넌트 분리

* #44 fix: Portfolio holding mock data 수정

* #44 chore: Jest dependencies 설치

* #44 feat: formatDate 함수 추가

* #44 refactor: PortfolioHoldingLots 컴포넌트 분리

* [feat] 포트폴리오 페이지 차트 영역 구현 (#60)

* #52 refactor: 자잘한 색깔 변경 및 코드 위치 수정

* #52 feat: 포트폴리오 종목별 파이차트 구현

* #52 feat: 월 배당금 막대 그래프 구현

* #52 feat: 섹터 Bar 구현

* #52 refactor: 데이터 받는 구조 수정

* #52 feat: 포트폴리오 페이지에 완성된 차트 조합

* #52 refactor: PR 피드백 반영한 수정

* #52 refactor: PR 피드백 반영한 수정

* [feat] 포트폴리오 종목 테이블 관련 기능 중간 공유 (#71)

* #44 design: Plus icon 추가

* #44 feat: 포트폴리오 상세 조회 및 종목 조회 API 및 mock 추가

* #44 chore: MUI icons 패키지 설치

* #44 feat: PortfolioHoldingsTable 컴포넌트 구현

* #44 feat: PortfolioPage 기본 틀 구현

* #44 feat: Portfolio details data type 수정

* #44 feat: PortfolioHoldingsRow 컴포넌트 분리

* #44 fix: Portfolio holding mock data 수정

* #44 chore: Jest dependencies 설치

* #44 feat: formatDate 함수 추가

* #44 refactor: PortfolioHoldingLots 컴포넌트 분리

* #44 rename: textValidators -> authInputValidators 파일명 변경

* #44 feat: validateDateFormat util 함수 추가

* #44 fix: import path 수정

* #44 feat: Portfolio 매입이력 수정 컴포넌트 구현

* #44 fix: Auth query key import 수정

* #44 chore: package.json 수정

* #44 refactor: Portfolio holding lot 개별 수정 및 저장으로 변경

* #44 feat: Portfolio holding purchase add api 및 mutation 추가

* #44 feat: Portoflio holding purchase add 틀 구현

* #44 fix: usePortfolioHoldingPurchaseAddMutation filter 수정

* #44 feat: Portfolio holding purchase edit api 및 mutation 추가

* #44 fix: Portfolio holding purchase edit mutation key 수정

* #44 feat: Portfolio holding purchase delete api 및 mutation 추가

* #44 feat: Portfolio holding add api 및 mutation 추가

* #44 feat: Portfolio holding delete api 및 mutation 추가

* #44 style: 종목 삭제 버튼 todo 주석 추가

* [feat] 포트폴리오 상태 영역 구현 및 공용 컴포넌트 구현 (#72)

* #39 feat : Portfolio base Page 구현

* #40 refactor : MUI 문제 해결
- @emotion/react, @emotion/styled 패키지 추가
- tsconfig resolve 삭제
- main에 StyledEngineProvider 추가

* #40 feat : 모달 관련 공용 컴포넌트 구현
- Confirm과 PortfolioModal에 공용으로 사용할 baseModal 구현
- Confirm, PortfolioModal 구현

* #40 feat : MUI를 활용한 ToggleSwitch 구현

* #40 refactor : 포트폴리오 data에 securitiesFirm 추가

* #40 feat : PortfolioOverview 컴포넌트 구현

* #40 rename : Confirm -> ConfirmAlert으로 변경

* #40 refactor : destructuring 컨벤션에 맞게 수정

* #40 refactor : destructuring 컨벤션에 맞게 수정

* #40 refactor : 불필요한 useEffect 제거

---------

Co-authored-by: Daeram Chung <daeram.chung@gmail.com>

* style: Package.json 쉼표 제거

* chore: 누락된 dependencies 설치 및 기타 수정

* [chore] Husky 및 lint-staged setup (#78)

* #76 chore: Husky, lint-staged 설치 및 설정

* #76 chore: Fix invalid husky pre-commit hook name

* #76 fix: Type error 처리

* fix: ESLint unnamed export default 수정

* feat: 차트 분류 퍼센티지 표기

* style: 아직 안쓰는 변수 주석 및 기타 처리

* [feat] Portfolio holding purchase history 삭제 기능 (#91)

* #44: React query devtools 설치

* #44 fix: Portfolio 관련 invalidateQueries query key 수정

* #44 feat: Portfolio holding purchase history delete mock 추가

* #44 feat: Portfolio holding purchase history 삭제 기능 추가

* [feat] 검색바 UI에 검색 API 연동 (#96)

* #93 feat: 검색바 UI에 검색 API 연동

* design: 자잘한 디자인 수정

* chore: 개발 환경 수정

* chore: eslint console.log error 처리

* refactor: search 쿼리 설정 수정

* refactor: PR 리뷰 피드백 수정

* [refactor] portfolioOverView 리팩토링 (#102)

* #77 refactor : number input에 숫자 제외 입력 제한, 반복 로직 분리

* #77 refactor : ToggleSwitch 불필요한 margin 제거

* #77 feat : 포트폴리오 추가, 수정, 삭제 api 구현

* #77 refactor : 포트폴리오 추가, 수정, 삭제 api 적용

* #77 refactor : api에 맞게 구현 및 수정

- purchaseHistory에 memo api에 맞게 string | null로 수정
- msw에서 포트폴리오 추가, 삭제, 수정 기능

* #77 refactor : 불필요한 useEffect cleanup 삭제

* #77 refactor : 포트폴리오 추가시 모달이 닫히지 않는 문제 수정

* #77 refactor : 불필요한 invalidate 제거

* #77 refactor : mutate 명확한 이름으로 재정의

* #77 refactor : 반복적으로 사용하는 함수 utils로 이동 및 적용

* #77 refactor : pr 피드백 반영

- boolean 값 네이밍 is가 접두사로 오게 수정
- 함수명 더 명확하게 재정의

* #77 rename : calculate -> calculations

* #77 refactor : 잘못 수정한 로직 변경

* #77 refactor : portfolioDetails 형태 변경

* [fix] Auth API 수정 및 User Context 구현 (#107)

* fix: 로그인 상태 유지 안되는 버그 해결

- 후에 토큰 및 사용자 정보 API 분리 후 사용자 정보(user)는 localStorage가 아니라 query cache 사용 예정

* feat: 로그아웃 버튼 추가 및 로그아웃 mock 추가

* [feat] 포트폴리오 매입 이력 추가 및 수정 기능 구현 (#109)

* #44 rename: Portfolio holdings 관련 파일 정리

* #44 chore: MUI date picker 및 Dayjs 설치

* #44 feat: 포트폴리오 매입 이력 추가 기능 및 mock 구현

* #44 feat: 포트폴리오 매입 이력 수정 기능 및 mock 추가

* [feat] StockPage 구현 및 포트폴리오 종목 추가,삭제 구현 (#123)

* #108 feat: 검색결과와 StockPage 연결 구현

* rename: 포트폴리오 쿼리 이름 변경

* design: 포트폴리오 페이지 차트 컨테이너들에 그림자 추가

* feat: 포트폴리오 종목 추가,삭제 기능 추가 + msw

* design: 포트폴리오 오버뷰 UI 디자인 적용

* rename: 포트폴리오 쿼리 이름 변경

* refactor: mutation onSuccess 위치 수정

* refactor: 함수명 컨벤션에 맞게 수정

* refactor: PR 리뷰 피드백 수정

* rename: PR 리뷰 피드백 수정

* [feat] 포트폴리오 상세 조회 및 종목 조회 WebSocket 구현 (#124)

* fix: Sign out API 수정

* #113 chore: Stompjs 설치

* #113 feat: useStompSubWithRQ 구현 및 포트폴리오 페이지 websocket 구현

* refactor: Hooks 폴더 정리 및 포트폴리오 모달 usePortfolioAddMutation 수정

* fix: import 누락 및 기타 잔버그 수정

* fix: 포트폴리오 종목 추가 시 모달 닫히지 않는 문제 해결

* feat: 종목 삭제 확인 알럿 추가

* style: 테스트용 버튼 제거

* fix: 테스트용 코드 제

* feat: LandingPage 구현

* feat: 변동값들 색깔 표시되게 구현

* style: 주석 제거 및 타입 속성 이름 변경

* style: 상태 이름 수정

* style: 핸들러 함수 담아서 사용

* style: 속성값 변경한 값으로 수정

---------

Co-authored-by: Daeram Chung <daeram.chung@gmail.com>
Co-authored-by: Jay <chlwodnjs34@gmail.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
feat 새로운 기능 추가 frontend 프론트 이슈
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[feat] SignInPage
3 participants