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

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

Merged
merged 10 commits into from
Nov 2, 2023

Conversation

bakhacode
Copy link

@bakhacode bakhacode commented Nov 2, 2023

구현한 것

  • StockPage 구현
  • 검색 결과 클릭 시 StockPage로 이동
  • 모달 내 검색 결과 클릭시 포트폴리오에 종목 추가
  • 포트폴리오의 종목 옆 삭제버튼 클릭시 종목 삭제
  • 포트폴리오 오버뷰 UI 변경
  • 포트폴리오 차트 컨테이너들에 그림자 추가

@bakhacode bakhacode added frontend 프론트 이슈 feat 새로운 기능 추가 design CSS 등 사용자 UI 디자인 변경 labels Nov 2, 2023
@bakhacode bakhacode added this to the [FE] Sprint #4 milestone Nov 2, 2023
@bakhacode bakhacode self-assigned this Nov 2, 2023
@bakhacode bakhacode linked an issue Nov 2, 2023 that may be closed by this pull request
6 tasks
@@ -77,7 +77,7 @@ type PortfolioReqBody = {
maximumLoss: number;
};

export const getPortfolioChart = async () => {
export const getPortfolios = async () => {
const res =
await fetcher.get<Response<PortfolioPieChartDataItem>>("/portfolios");
Copy link
Member

Choose a reason for hiding this comment

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

Type 이름도 적절하게 변경해주시면 좋을 것 같습니다

Copy link
Author

Choose a reason for hiding this comment

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

Comment on lines 27 to 32
{
onSuccess: () => {
onClose(); // 모달을 닫음
},
// onError: (error) => {error;},
}
Copy link
Member

Choose a reason for hiding this comment

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

악!

Copy link
Author

Choose a reason for hiding this comment

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

@@ -37,8 +38,15 @@ export default function PortfolioHoldingRow({
purchaseHistory,
} = row;

const { mutate: portfolioHoldingDelete } =
Copy link
Member

Choose a reason for hiding this comment

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

저희 컨벤션에 맞게 뒤에 Mutate 추가하면 좋을 것 같습니다.
이름들이 길어지긴 해서 나중에 다시 논의해봐야할것 같네요

Copy link
Author

Choose a reason for hiding this comment

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

const [isOpen, setIsOpen] = useState(false);

const deleteHoldingToPortfolio = () => {
Copy link
Member

Choose a reason for hiding this comment

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

onDeleteClick이 저희 컨벤션에 맞을것 같네요

Copy link
Author

Choose a reason for hiding this comment

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

@@ -1,5 +1,6 @@
import { PortfolioDetails } from "@api/portfolio";
import usePortfolioDeleteMutation from "@api/portfolio/queries/usePortfolioDeleteMutation";
import tossSymbol from "@assets/images/Toss_Symbol_Primary.png";
Copy link
Member

Choose a reason for hiding this comment

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

"Logo"로 통일하면 좋을것 같아요

Copy link
Author

Choose a reason for hiding this comment

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

interface SearchBarContextProps {
value: string;
searchResults: StockSearchResponse[];
isQuerySearched: boolean;
Copy link
Member

Choose a reason for hiding this comment

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

value값으로만 구현해도 될것 같은 느낌이 드네요

Copy link
Author

Choose a reason for hiding this comment

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

Copy link
Member

Choose a reason for hiding this comment

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

const { data: searchResults = [] } = useStockSearchQuery(value)가 있는데 따로 context로 래핑할 필요가 없는 것 같습니다

Copy link
Author

Choose a reason for hiding this comment

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

</SearchBarContext.Provider>
);

// return (
Copy link

Choose a reason for hiding this comment

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

필요 없는 주석은 지워주세요~

Copy link
Author

Choose a reason for hiding this comment

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

돌아갈 것 같아서 남겨놨습니다 😅

@@ -0,0 +1,40 @@
// import { StockSearchResponse } from "@api/stock";
Copy link

Choose a reason for hiding this comment

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

🤔

Copy link
Author

Choose a reason for hiding this comment

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

얘도 다시... 😅

},
},
{
name: "물린게아니고장기투자",
onClick: () => {
navigate("/portfolio/3");
navigate("/portfolio/6");
},
},
];
Copy link
Member

Choose a reason for hiding this comment

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

포트폴리오 목록 조회 API가 나와서 적용해주시면 될것 같습니다

},
},
];

const moveToStockDetail = (ticker: string) => {
Copy link
Member

Choose a reason for hiding this comment

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

뒤에 Page붙여 주시면 좋을것 같아요

@Kakamotobi Kakamotobi merged commit fbb8659 into dev-fe Nov 2, 2023
@Kakamotobi Kakamotobi deleted the fe/feat/#108-stock-page branch November 2, 2023 08:54
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
design CSS 등 사용자 UI 디자인 변경 feat 새로운 기능 추가 frontend 프론트 이슈
Projects
None yet
Development

Successfully merging this pull request may close these issues.

[feat] StockPage 구현 및 포트폴리오 종목 추가,삭제 구현
3 participants