다라쓰는 react에서 JSX문법으로 사용할 수 있도록, 별도의 Component를 라이브러리로 제공한다.
https://github.com/zereight/darass-react
다라쓰 고객사 중의 하나로 https://babble.gg/
사이트가 있는데, 다크모드를 토글할 수 있는 기능이 있다.
그런데, Darass의 prop이 변경되었는데 다라쓰 컴포넌트는 새롭게 렌더링되지 않아,
다크모드가 풀렸음에도 글씨가 하얗게 나오고있었다.
불편사항을 접수하고 원인만 파악한채로 이력서나 포트폴리오를 준비하다보니 좀 늦은감이 있지만
시간이 남아서 바로 이슈를 해결했다.
해결한 방법은 아주 간단하다.
useEffect(() => {
if (isSSR) return;
const onMessageForRequestPort = init();
if (!onMessageForRequestPort) return;
window.addEventListener("message", onMessageForRequestPort);
return () => {
document.querySelector("#darass-reply-comment-area")?.remove();
document.querySelector("#darass-reply-comment-modal")?.remove();
window.removeEventListener("message", onMessageForRequestPort);
};
}, [
isSSR
]);
위 코드를
useEffect(() => {
if (isSSR) return;
const onMessageForRequestPort = init();
if (!onMessageForRequestPort) return;
window.addEventListener("message", onMessageForRequestPort);
return () => {
document.querySelector("#darass-reply-comment-area")?.remove();
document.querySelector("#darass-reply-comment-modal")?.remove();
window.removeEventListener("message", onMessageForRequestPort);
};
}, [
isSSR,
projectKey,
darkMode,
primaryColor,
isShowSortOption,
isAllowSocialLogin,
isShowLogo
]);
으로 바꾸어서, prop들이 바뀜을 감지시켜주었다.
이제 고객사에서는 라이브러리를 새롭게 설치하여 배포하도록 알려주기만 하면 된다!
'개발 > 개발 리포트' 카테고리의 다른 글
2021/11/15 : webpack entry가 여러개일때 번들 최적화. (0) | 2021.11.15 |
---|---|
2021/11/14 : simple-react-query에 캐싱기능 추가. Context API에 초기값 undefined 사용안하도록 수정 (0) | 2021.11.14 |
2021/11/12 : npx로 실행되는 npm 패키지 (0) | 2021.11.12 |
2021/10/28 : 중복 로그인을 했을 경우에 로그인이 안되는 이슈 고민 (2) | 2021.10.29 |
2021/10/27 : CSR에서 이미지가 다 로딩되었을때 화면에 보이기 (0) | 2021.10.28 |