-
Notifications
You must be signed in to change notification settings - Fork 3
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
[Refactor/#106] Navigation 공통 컴포넌트 리팩토링 #107
Conversation
PR 작성하느라 고생 많았어요!! 라벨 잘 지정되었는지 확인 한 번 해 주기 🫶 |
Quality Gate passedIssues Measures |
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.
최고다 공준혁!
리뷰할 게 없다!
LGTM
//함수 연결은 거의 필수이므로, 경고 콘솔 띄워 디버깅 용이하도록 구성. | ||
if (!leftOnClick) { | ||
//만약 왼쪽 함수를 부여하지 않았다면 | ||
console.log("warn: 왼쪽 버튼 미연결"); | ||
} | ||
if (!rightOnClick) { | ||
//만약 오른쪽 함수를 부여하지 않았다면 | ||
console.log("warn: 오른쪽 버튼 미연결"); | ||
} |
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.
p5) 센스 최고
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.
이슈에 TODO 보고 방금 확인했는데, 메인에서는 padding 때문에 헤더 컴포넌트 따로 만들어서 쓸 예정이야!
어차피 로고랑 햄버거 버튼만 넣으면 되니까! 이 부분은 따로 걱정 안 해도 될 것 같아!
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.
LGTM~
📌 관련 이슈번호
🎟️ PR 유형
어떤 변경 사항이 있나요?
✅ Key Changes
📢 To Reviewers
사용 방법은 다음과 같습니다.
각자 페이지에서 다음과 같은 코드를 작성하여 필요한 훅, 상수를 import 해옵니다. (아래의 3개는 필수입니다.)
그리고, 아래와 같이 setHeader 함수를 받아옵니다 !
const { setHeader } = useHeader();
그 후, 연결할 콜백 함수를 작성합니다. 왼쪽, 오른쪽 최소 0개 ~최대 2개가 필요합니다.
(어차피 헤더엔 최대 2개의 함수만 연결됨)
마지막으로, 반드시 useEffect를 사용하여 setHeader 함수에 적절한 설정들을 담은 객체를 prop으로 넘깁니다.
headerStyle 은 필수 속성이고, title, subText, leftOnClick, rightOnClick은 선택 속성입니다.
headerStyled의 경우 위에서 import 해온 상수 객체 NAVIGATION_STATE 을 활용하여 값을 세팅하는 것을 추천합니다.
참고로 의존성 배열에는 아무것도 넣지 않거나, setHeader 함수만 넣도록 합니다.
(마운트 될 때만 헤더가 해당 페이지에 맞게 세팅되도록 해야 합니다. 또한, useEffect를 사용하지 않을 경우 렌더링이 반복적으로 일어나서 결국 성능 최적화에 방해되기도 하고, 애초에 에러가 발생하여 렌더링이 안됩니다.)
📸 스크린샷
다음은 함수도 연결한 예시입니다.
🔗 참고 자료