[feat] 레벨 페이지 구현#40
Hidden character warning
Conversation
sispo3314
left a comment
There was a problem hiding this comment.
수고 많으셨습니다!! 빠르게 구현해주셧네요🙌 리뷰 남겨드린 부분은 한 번 더 확인부탁드릴게요!
src/pages/my/Level.tsx
Outdated
| export default function LevelPage() { | ||
| return ( | ||
| <div className="px-4 py-3 bg-gray-900 text-white min-h-screen font-suit"> | ||
| <HeaderBasic>{null}</HeaderBasic> |
There was a problem hiding this comment.
그런데 HeaderBasic이랑 그냥 Header 컴포넌트랑 차이점이 있나요?? 혹시 아이콘 때문에 HeaderBasic을 따로 분리해서 사용하시는 거라면 그냥 헤더 컴포넌트에서도 showLike=false, showBookmark=false를 prop으로 받으면 보이지 않도록 만들어두었습니다!
There was a problem hiding this comment.
제가 좀 전에 pr 올렸는데 헤더 컴포넌트 리팩토링을 했씁니다..
그래서 아마 나중에 충돌날거라서.. 우선 헤더 없애거나 주석처리 해두는게 좋을 것 같아요!!
src/pages/my/Level.tsx
Outdated
| const levels = [ | ||
| { | ||
| level: 1, | ||
| title: '레벨 1 이름', | ||
| condition: 'seeat 가입하기', | ||
| Icon: LevelCharacter1, | ||
| }, | ||
| { | ||
| level: 2, | ||
| title: '레벨 2 이름', | ||
| condition: '후기 2개 작성하기\n좋아요 5개 누르기', | ||
| Icon: LevelCharacter2, | ||
| }, | ||
| { | ||
| level: 3, | ||
| title: '레벨 3 이름', | ||
| condition: '후기 10개 작성하기\n좋아요 25개 누르기', | ||
| Icon: LevelCharacter3, | ||
| }, | ||
| { | ||
| level: 4, | ||
| title: '레벨 4 이름', | ||
| condition: '후기 40개 작성하기\n좋아요 100개 누르기', | ||
| Icon: LevelCharacter4, | ||
| }, |
There was a problem hiding this comment.
이 부분은 파일 분리해주시는 게 코드 가독성에 좋을 것 같습니다!
There was a problem hiding this comment.
저도 같은 의견임니당 constants 폴더로 분리해주시면 좋을것같아요
src/pages/my/Level.tsx
Outdated
| <span className="text-gray-500 shrink-0">달성 조건</span> | ||
| <div className="flex flex-col"> | ||
| {condition.split('\n').map((line, index) => ( | ||
| <span key={index} className="text-red-300"> | ||
| {line} |
src/pages/my/Level.tsx
Outdated
| </div> | ||
|
|
||
| {/* 구분선 */} | ||
| <div className="w-full border-t border-[#424242] mt-6 mb-6" /> |
There was a problem hiding this comment.
넵 반영해서 수정하겠습니당
src/pages/my/Level.tsx
Outdated
| <div className="w-[120px] h-[120px] bg-[#4242424D] rounded-lg flex items-center justify-center shrink-0"> | ||
| <Icon className="w-[100px] h-[100px]" /> | ||
| </div> |
There was a problem hiding this comment.
그리고 여기서부터 시작되는 레벨 달성 조건카드는 별도 컴포넌트로 분리하면 코드가 더 간결해질 것 같습니당🙌
src/pages/my/Level.tsx
Outdated
| export default function LevelPage() { | ||
| return ( | ||
| <div className="px-4 py-3 bg-gray-900 text-white min-h-screen font-suit"> | ||
| <HeaderBasic>{null}</HeaderBasic> |
There was a problem hiding this comment.
제가 좀 전에 pr 올렸는데 헤더 컴포넌트 리팩토링을 했씁니다..
그래서 아마 나중에 충돌날거라서.. 우선 헤더 없애거나 주석처리 해두는게 좋을 것 같아요!!
src/pages/my/Level.tsx
Outdated
| const levels = [ | ||
| { | ||
| level: 1, | ||
| title: '레벨 1 이름', | ||
| condition: 'seeat 가입하기', | ||
| Icon: LevelCharacter1, | ||
| }, | ||
| { | ||
| level: 2, | ||
| title: '레벨 2 이름', | ||
| condition: '후기 2개 작성하기\n좋아요 5개 누르기', | ||
| Icon: LevelCharacter2, | ||
| }, | ||
| { | ||
| level: 3, | ||
| title: '레벨 3 이름', | ||
| condition: '후기 10개 작성하기\n좋아요 25개 누르기', | ||
| Icon: LevelCharacter3, | ||
| }, | ||
| { | ||
| level: 4, | ||
| title: '레벨 4 이름', | ||
| condition: '후기 40개 작성하기\n좋아요 100개 누르기', | ||
| Icon: LevelCharacter4, | ||
| }, |
There was a problem hiding this comment.
저도 같은 의견임니당 constants 폴더로 분리해주시면 좋을것같아요
src/pages/my/Level.tsx
Outdated
| {/* 현재 레벨 박스 */} | ||
| <div className="w-[335px] h-[320px] bg-[#4242424D] rounded-lg p-4 flex flex-col items-center justify-around mt-4 mx-auto"> | ||
|
|
||
| {/* ----- ⬇️ [수정] 캐릭터를 감싸던 내부 박스 제거 ----- */} | ||
| <LevelCharacter3 className="w-[150px] h-[150px]" /> | ||
| {/* ----- ⬆️ [수정] 캐릭터를 감싸던 내부 박스 제거 ----- */} | ||
|
|
||
| <p className="text-center"> | ||
| <span className="text-title-1 text-red-400">Lv.3</span> | ||
| <span className="text-title-4 text-white"> 영화계의 권위자</span> | ||
| </p> | ||
|
|
||
| <div className="w-[295px] h-[12px] bg-gray-950 rounded-full"> | ||
| <div className="h-full bg-red-300 rounded-full" style={{ width: '45%' }}></div> | ||
| </div> | ||
| <p className="text-caption-3 text-gray-300 text-center"> | ||
| 다음 레벨까지 할 일은?<br /> | ||
| 후기 <span className="text-red-400">00</span>개, 좋아요 <span className="text-red-400">00</span>개 누르기 | ||
| </p> | ||
| </div> |
There was a problem hiding this comment.
이 부분은 나중에 API 연결 시 값을 받아와야 할 텐데, 이렇게 하드코딩 해두는 것보다는 컴포넌트로 분리해서 레벨값을 props로 받아둘 수 있게 해두는 게 좋을 것 같아요!
사용자 레벨이 항상 3인 건 아니니까요 !!ㅎㅎ
제 생각에는 MyLevelCard와 같은 컴포넌트로 분리해서, 레벨값을 props로 받아두고 사용하는 방식이 더 좋을 것 같아용
(레벨명도 constants에 정의해둔 값을 쓰면 더 좋을 것 같아요!)
There was a problem hiding this comment.
넵 알겠습니당 다른부분들도 수정하겠습니다!
soyun-git121
left a comment
There was a problem hiding this comment.
추가 컴포넌트 완성됐는데 파일문제로 이거 머지되면 pull하고나서 바로 pr올리도록 하겠습니다ㅏㅜㅜ
sispo3314
left a comment
There was a problem hiding this comment.
변경된 부분 모두 확인했습니다!! 리뷰 잘 반영해주신 것 같네요 수고하셨습니당~


🔍 관련된 이슈
📝 작업 내용
📸 스크린샷
🚨 이슈
레벨페이지 작업만 먼저 올려용
📣 리뷰 요구사항
✅ 체크리스트