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

미션 현황 페이지 구현 (issue#49) #67

Merged
merged 9 commits into from
Jul 19, 2024
Merged

미션 현황 페이지 구현 (issue#49) #67

merged 9 commits into from
Jul 19, 2024

Conversation

chosim-dvlpr
Copy link
Contributor

구현 요약

미션 현황 페이지 구현했습니다. 아직 api 연결 전이라 mock data로 대체했어요!
중첩 라우팅 문제로 아래와 같은 경고 메세지가 발생하여 MyMissionCompleted.tsx에서는 LinkuseNavigate 두 종류를 사용했습니다. 더 좋은 아이디어 있으면 환영입니다~!!!
warning: validatedomnesting(...): <a> cannot appear as a descendant of <a>

  • MyMissionInProgress
    image

  • MyMissionCompleted
    image

연관 이슈

close #49

참고

코드 리뷰에 RCA 룰을 적용할 시 참고해주세요.

헤더 설명
R (Request Changes) 적극적으로 반영을 고려해주세요
C (Comment) 웬만하면 반영해주세요
A (Approve) 반영해도 좋고, 넘어가도 좋습니다. 사소한 의견입니다.

@chosim-dvlpr chosim-dvlpr added 🎨 프론트엔드 프론트엔드 관련 이슈 ⚒️ 기능 작업해야하는 기능 labels Jul 18, 2024
@chosim-dvlpr chosim-dvlpr added this to the 두번째 스프린트 milestone Jul 18, 2024
@chosim-dvlpr chosim-dvlpr self-assigned this Jul 18, 2024
Copy link
Contributor

@brgndyy brgndyy left a comment

Choose a reason for hiding this comment

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

프룬 고생 많으셨습니다~!

궁금한 부분 코멘트로 남겨보았어요! 🙇

화이팅화이팅

</div>

<S.PrButtonWrapper>
<Link to={pairPrLink} target="_blank" onClick={(e) => e.stopPropagation()}>
Copy link
Contributor

Choose a reason for hiding this comment

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

여기서 e.stopPropagation()은 이벤트 버블링 때문일까요?!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

네 맞아요! 바깥 부분의 카드에 링크 기능을 넣었더니 카드 안쪽에 있는 버튼의 라우팅이 동작하지 않더라구요..! 그래서 stopPropagation 을 넣었습니다 ☺️

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={pairPrLink} target="_blank">
페어 PR 이동
 </Link>

이런식으로는 힘들까요..!? 🥹

Copy link
Contributor Author

Choose a reason for hiding this comment

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

missionDetailButtonGroup 컴포넌트의 버튼에서도 비슷한 코드가 있었는데요! Link를 스타일 태그에 넣는 것보다는 Button 바깥을 Link로 감싸서 스타일과 컴포넌트를 명확하게 분리하는 것이 좋을 것 같다는 이야기를 했던 것 같아요! 다른 의견 있으시면 언제든지 말해주세용🫡

// missionDetailButtonGroup
<Link to={`/submit/${id}`}>
  <S.Button>미션 제출하기</S.Button>
</Link>

export const ThumbnailImg = styled.img`
width: 100%;
height: -webkit-fill-available; // Chrome, Safari
height: -moz-available; // Firefox
Copy link
Contributor

Choose a reason for hiding this comment

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

오호 브라우저마다 height를 다르게 주어야하는군요 ?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

그러게요..! 저도 이번에 처음 알게 된 방법이에요😀😀 브라우저 엔진이 서로 달라서 다양한 브라우저를 지원하려면 여러가지 변수를 고려해야 할 것 같아요..!!

Copy link
Contributor

@Parkhanyoung Parkhanyoung left a comment

Choose a reason for hiding this comment

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

깔끔하게 잘 짜주신 것 같습니다 👍🏻👍🏻 일관성과 가독성을 위한 프룬의 노력과 세심함이 너무 잘 보이는 코드였습니다 😄

export default function MyMissionCompleted() {
const navigate = useNavigate();

const handleMissionClick = (id: number) => {
Copy link
Contributor

Choose a reason for hiding this comment

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

mission click은 Link 이용하지 않고 navigate로 라우팅을 처리하신 이유가 있으신지 궁금해요~!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

MyMissionCompleted 컴포넌트에 라우팅이 총 두 개 들어가게 되는데요! (바깥 카드, 내부 버튼) Link가 중첩되면 warning: validatedomnesting(...): <a> cannot appear as a descendant of <a> 메세지가 뜨더라구요😭 Link는 a 태그 역할을 하는데, Link가 두 번 들어가면 a 태그 내부에 a가 중첩되기 때문이었어요. 그래서 바깥 카드 부분은 navigate를 사용했습니다~!

@@ -0,0 +1,33 @@
import * as S from './MyMissionInProgress.styled';

export default function MyMissionInProgress() {
Copy link
Contributor

Choose a reason for hiding this comment

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

MyMissionXXX 형태의 통일성 있는 이름 넘 좋네요 👍🏻👍🏻

Comment on lines +7 to +10
<S.MyMissionPageContainer>
<MyMissionInProgress />
<MyMissionCompleted />
</S.MyMissionPageContainer>
Copy link
Contributor

Choose a reason for hiding this comment

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

👍🏻

@chosim-dvlpr
Copy link
Contributor Author

[추가 커밋 내역]

@chosim-dvlpr chosim-dvlpr merged commit fda9b68 into main Jul 19, 2024
1 of 2 checks passed
@chosim-dvlpr chosim-dvlpr deleted the feat/#49 branch July 19, 2024 07:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
⚒️ 기능 작업해야하는 기능 🎨 프론트엔드 프론트엔드 관련 이슈
Projects
Status: 😎 DONE
Development

Successfully merging this pull request may close these issues.

미션 현황 페이지 구현
3 participants