-
Notifications
You must be signed in to change notification settings - Fork 2
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
[FE] feat: 리뷰 링크 관리 페이지와 라우터 설정 추가 #1032
base: develop
Are you sure you want to change the base?
[FE] feat: 리뷰 링크 관리 페이지와 라우터 설정 추가 #1032
Conversation
코드 확인했어요! 파일 위치는 나중에 페이지 들어오면 페이지 하위의 레이아웃 폴더로 돌리는 게 좋다고 생각합니다. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
쑤쑤 구현하느라 고생했어요.
코멘트에 남겨놨지만, 저는 레이아웃 컴포넌트보다 바로 리뷰 url 관리 페이지를 만드는게 어떨까 싶어요. pr에 남겨준 코드의 경우 아래의 두 가지 상황이 우려가 되네요.
<ReviewLinkManagementLayout
leftContent={<URLGeneratorForm />}
rightContent={<ReviewCard createdAt={''} contentPreview={''} categories={[]} handleClick={() => {}} />}
/>
- 위의 코드대로 라면, ReviewLinkManageLayout 의 부모 컴포넌트에서 리뷰 url 목록 데이터를 불러와야한다.
- leftContent, rightContent에 사용되는 컴포넌트 코드의 가독성 부분
- ex : 리뷰 url 목록 컴포넌트내에서 데이터 패칭 시, suspsen, error boundary에 대한 코드가 붙어야하는 등, rightContent 컴포넌트 코드가 길어질 가능성이 높아 코드 가독성이 좋지 않다.
코멘트 확인 부탁해요! 연초인데 로그인 연동까지 하느라 고생이 많아요!! 성장하는 쑤쑤 화이팅!!!
interface ReviewLinkManagementLayoutProps { | ||
leftContent: React.ReactNode; | ||
rightContent: React.ReactNode; | ||
} | ||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
스타일링이 복잡한 코드라면, 레이아웃 컴포넌트로 만들어서 재사용하면 좋겠지만 저는 다음의 이유로 레이아웃 컴포넌트보다는 리뷰 관리 페이지로 가는데 어떨까 싶네요. 리뷰 url 폼과 리뷰 url 목록 컴포넌트가 바로 ReviewLinkManagement에 선언되는 게 더 좋을 것 같아요.
- 가로 정렬과 세로 정렬을 오가는 단순한 스타일
- 반복되어서 사용하지 않음
- 코드의 단순성에 비해서, leftContent, rightContent 에 컴포넌트 할당 시 코드 가독성이 나빠짐
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이번에는 리뷰 링크 관리 페이지의 기본 레이아웃만, 즉 "껍데기"만 구현하는 것이 목표라고 생각해서 레이아웃 작업만 진행했는데, 역시 페이지 전체로 만드는게 더 나은 것 같네요!
탭 PR을 리뷰 링크 관리 페이지 PR보다 늦게 올리긴 했는데, 탭 PR 먼저 머지되고 여기서 합치려고 합니다! |
리뷰 링크 관리 페이지와 라우터 설정으로 PR 내용 수정했습니다~ |
@@ -24,6 +24,7 @@ export const PAGE_VISITED_EVENT_NAME: { [key in Exclude<PageName, undefined>]: s | |||
detailedReview: '[page] 리뷰 상세 보기 페이지', | |||
reviewWriting: '[page] 리뷰 작성 페이지', | |||
reviewWritingComplete: '[page] 리뷰 작성 완료 페이지', | |||
reviewLinkManagement: '[page] 리뷰 링크 관리 페이지', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
세심하게, Amplitude도 챙겼네요 👍
Amplitude에서 접속한 페이지 경로를 추적하려면, ROUTE에 'reviewLinkManagement' 를 key로 하는 경로도 추가되어야해요.
const TITLE = '생성한 리뷰 링크를 확인해보세요'; | ||
const SUBTITLE = '클릭하면 해당 프로젝트의 리뷰 목록으로 이동해요'; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
TITEL, SUBTITLE을 상수화한 이유가 있을까요?
반복 사용하는 상수나, 매직넘버가 아니라서 이유가 궁금하네요
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
큰... 이유가 있진 않습니다.......😅
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
export const Logo = styled.div` | ||
line-height: 8rem; | ||
text-align: center; | ||
span { | ||
font-size: 3rem; | ||
font-size: 2.8rem; | ||
font-weight: ${({ theme }) => theme.fontWeight.bolder}; | ||
letter-spacing: 0.7rem; | ||
${media.small} { | ||
font-size: 2.8rem; | ||
} | ||
${media.xSmall} { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
기존 로고 컴포넌트가 Topbar의 padding 때문에 영역을 벗어났는데, 해결되었네요👍🏻
@@ -7,4 +7,5 @@ export const ROUTE = { | |||
detailedReview: 'user/detailed-review', | |||
reviewZone: 'user/review-zone', | |||
reviewCollection: 'user/review-collection', | |||
reviewLinkManagement: 'user/review-link-management', |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
URL의 경우, 개인적으로 간단하게 user/review-links
나 user/my-review-links
같은 느낌도 괜찮을 것 같아요!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
훨씬 좋은 것 같네요!👍👍
일단 이 부분은 회의를 통해서 확정을 지어야 할 것 같아서 추후에 변경할게요!
|
||
background-color: ${({ theme }) => theme.colors.lightGray}; | ||
|
||
margin: 0 10rem; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
|
||
export const Separator = styled.div` | ||
width: 0.1rem; | ||
min-height: calc(100vh - 13rem); // 전체 영역에서 헤더와 푸터 영역 제외 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
이 부분도 네비게이션 탭이 들어오면 값이 바뀌겠네요
const ReviewLinkManagementPage = () => { | ||
return ( | ||
<ErrorSuspenseContainer> | ||
{/* TODO: 네비게이션 탭 추가 */} |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
쑤쑤가 구현한 네비게이션 탭은 '네비게이션 탭은 부모 페이지에만 두고 탭을 클릭하면 네비게이션 탭은 그대로 유지되면서, 탭 아래의 컨텐츠가 전환되는 방식' 같은데, ReviewLinkManagementPage 안에 네비게이션 탭이 추가된다고 주석이 되어 있어서 어떤 방식이 맞는 건가요?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
원래 의도했던 바는리뷰 링크 관리
, 작성한 리뷰 확인
페이지를 포함하는 부모 페이지 안에 네비게이션 탭을 배치하는 거였어요. 근데 이 부분은 제가 임의로 결정할 문제가 아닌 것 같아서 OptionSwitch
와 같은 방식으로 각 페이지에 넣는 방식으로 하려고 합니다!
🚀 어떤 기능을 구현했나요 ?
리뷰 링크 관리 페이지(ReviewLinkManagementPage)를 만들고, 라우터 설정을 추가했습니다.
리뷰 링크 관리 페이지 레이아웃 구성
URLGeneratorForm
)ReviewCard
)반응형 디자인
768px
이하일 경우, 두 영역이 세로로 나열되도록 구현라우터 설정
🔥 어떻게 해결했나요 ?
기존에는
ReviewLinkManagementLayout
을 생성하여,leftContent
와rightContent
를 props로 받도록 구성했습니다. 하지만, 코드 가독성과 추후suspense
등 관련 코드가 추가될 것을 고려하여,ReviewLinkManagementPage
페이지 컴포넌트를 만들어 레이아웃을 삽입하는 방식으로 구현했습니다.추가 변경 사항
📝 어떤 부분에 집중해서 리뷰해야 할까요?
user/review-link-management
경로로 설정했어요. 더 나은 경로 명칭이 있으면 코멘트로 남겨주세요!URLGeneratorForm
)을pages/ReviewLinkManagementPage/
안으로 이동하는 것이 좋을 것 같습니다! (바다의 리뷰 링크 생성 폼 PR이 머지된 이후에)📚 참고 자료, 할 말