Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Feat] Route Nav 컴포넌트 구현 및 레이아웃 반영 #294

Merged
merged 8 commits into from
Oct 25, 2024

Conversation

wuzoo
Copy link
Contributor

@wuzoo wuzoo commented Oct 25, 2024

해당 이슈 번호

closed #292


체크리스트

  • 🔀 PR 제목의 형식을 잘 작성했나요? e.g. [feat] PR을 등록한다.
  • 💯 테스트는 잘 통과했나요?
  • 🏗️ 빌드는 성공했나요?
  • 🧹 불필요한 코드는 제거했나요?
  • ✅ 컨벤션을 지켰나요?
  • 💭 이슈는 등록했나요?
  • 🏷️ 라벨은 등록했나요?
  • 🙇‍♂️ 리뷰어를 지정했나요?
  • ✨ 저는 shared로 분리했어요.

💎 PR Point

새롭게 GUI에 추가된 헤더에 Route 이동을 담당하는 Nav 컴포넌트를 추가하였습니다. GUI와 동일하게 "파일", "타임라인", "인수인계 노트" 페이지를 해당 Nav로 이동할 수 있도록 구현하였고, framer-motion을 도입하여 좀 더 UX 적으로 트렌디(?)하게 느껴지도록 애니메이션을 적용하였어요 !

추가적으로 Archiving 페이지에 헤더랑 Nav 추가해두었고, 지금 documentBar는 임시로 다시 absolute로 바꾼 상태입니다.. 레이아웃이 도큐먼트바 때문에 조금은 어지럽게 되었는데, 이 부분은 카톡에서 말씀드렸다시피 디자이너분들과 다시 논의하여 오버레이로 바꿀려고 계획하고 있습니다 ..


📌스크린샷 (선택)

2024-10-25.4.10.24.mov

Copy link
Member

@namdaeun namdaeun left a comment

Choose a reason for hiding this comment

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

애니메이션 짱 예뻐요 고생하셨습니다!

@@ -20,6 +20,7 @@
"@tanstack/react-query": "^5.49.2",
"@tanstack/react-query-devtools": "^5.49.2",
"axios": "^1.7.2",
"framer-motion": "^11.11.9",
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
Contributor

Choose a reason for hiding this comment

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

처음 보는 친군데 이쁘네요!

Comment on lines 30 to 33

if (!teamId) throw new Error('has no teamId');
const teamId = localStorage.getItem('teamId');

const { ref, currentYear, selectedMonth, handlePrevYear, handleNextYear, endDay, handleMonthClick } = useDate(teamId);
const { ref, currentYear, selectedMonth, handlePrevYear, handleNextYear, endDay, handleMonthClick } = useDate(
teamId!
);
Copy link
Member

Choose a reason for hiding this comment

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

teamId!라고 해줌으로써 undefined 값이 아니라고 명시해주는 걸 최근에 알게됐는데 역시 주용님은 알고 계셨군요 👍🏻

Copy link

🚀 Storybook 확인하기 🚀

Copy link

🚀 Storybook 확인하기 🚀

Copy link
Contributor

@rtttr1 rtttr1 left a comment

Choose a reason for hiding this comment

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

LGTM! 궁금한점 남겨놨는데 답변주시면 감사하겠습니다~

@@ -20,6 +20,7 @@
"@tanstack/react-query": "^5.49.2",
"@tanstack/react-query-devtools": "^5.49.2",
"axios": "^1.7.2",
"framer-motion": "^11.11.9",
Copy link
Contributor

Choose a reason for hiding this comment

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

처음 보는 친군데 이쁘네요!

const teamId = new URLSearchParams(location.search).get('teamId');

if (!teamId) throw new Error('has no teamId');
const teamId = localStorage.getItem('teamId');
Copy link
Contributor

Choose a reason for hiding this comment

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

이제 localStorage를 사용하는군요!


const { data } = useGetTimeBlockQuery(+teamId, 'executive', currentYear, currentMonth);
const { data } = useGetTimeBlockQuery(+teamId!, 'executive', currentYear, currentMonth);
Copy link
Contributor

Choose a reason for hiding this comment

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

위에 Error 던지는 코드가 없어져서 요 ! 를 해준건가요?

Copy link
Contributor Author

@wuzoo wuzoo Oct 25, 2024

Choose a reason for hiding this comment

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

error라기 보다는 teamIdnull일 때의 분기처리를 안하기 위해서 !를 붙혀줬습니다. !undefined 혹은 null이 될 수 있는 값이 있을 때, 해당 변수가 null이나 undefined가 되는 것을 무시한다! 라는 의미에용

<nav>
<ul css={navListStyle}>
<li css={{ position: 'relative' }}>
<Link css={itemStyle(isDrivePage)} to={PATH.DRIVE}>
Copy link
Contributor

Choose a reason for hiding this comment

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

Link 컴포넌트를 클릭하면 to 에 지정된 경로로 이동한다는 것은 알겠습니다.
그런데 이동하고 랜더링 되는 컴포넌트의 위치는 어디서 잡는거죠?
찾아본 바로는 Route 컴포넌트가 위치한 곳으로 잡힌다고 했는데 Route 컴포넌트가 안보여서 질문드립니다!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Link 태그는 react-router-dom에서 제공하는 요소로, 말씀하신대로 지정한 router 내에 라우트 이동을 담당합니다 ! Route 컴포넌트로 라우트를 정의하기도 하는데, 저희는 createBrowserRouter로 객체 형식으로 라우터를 생성했어요 ! 만약 규홍님이 말씀하신대로 구현한다면 아래와 같아요 !

// router.tsx
return (
  <BrowserRouter>
    <Route path="..." element={<Home />} />
  </BrowserRouter>
)

리액트 라우터에서 제공하는 브라우저라우터라는 태그 하위에 각각의 라우트 요소로 pathelement를 정의해주면 됩니다 ! 거의 동일한 방법이긴 하나, 저는 createBrowserRouter를 통해 객체 형식으로 선언하는 것을 선호해서 저렇게 한거에용

Copy link

🚀 Storybook 확인하기 🚀

@wuzoo wuzoo merged commit 6c71446 into develop Oct 25, 2024
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

네비게이션 기능 탭 구현 및 레이아웃에 포함
3 participants