먼저 기획서에서 모바일 화면일 때 3줄 이상의 문장일 경우 Read more 버튼이 보이게 해 달라는 요청이었습니다.
저는 이 요구사항을 충족시키기 위해 모바일일 경우 특정 길이 이상일 때 Read more 버튼이 보이게 직접 구현했었습니다.
하지만 이때 문제점은 영어와 한글이 섞여있거나 A, b와 같이 문자열의 너비 차이 등등 여러 가지 문제 점이 등장했습니다.

이 문제를 해결하기 위해 구글 검색을 정말 많이 했었는데 딱히 마음에 드는 해결방법을 찾지 못하던 중이었습니다.
하지만 계속된 노력 끝에 WiniLogis에서 사용 중인 기술스택에 적합한 라이브러리를 찾게 되었습니다.
https://www.npmjs.com/package/react-show-more-text
react-show-more-text
The text surrounded by the component will be truncated. Anything surrounded by the component could be evaluated as text. The component react-show-more-text/ShowMoreText is fork of react-show-more/ShowMore, applied improvements, works with React 16.x.x, ad.
www.npmjs.com
최근 업데이트도 3개월 전이어서 믿을만하다고 생각이 들었습니다.
회사에서 퇴근하고 나서부터 계속해서 "어떻게 이 문제를 해결해야 할까?"라는 고민을 참지 못하고 집에 와서 구현을 먼저 해보았습니다.
구현 방법은 아래와 같습니다.
npm install react-show-more-text
npm i --save-dev @types/react-show-more-text

위의 링크를 이용해서 예시 코드를 이용하시면 저와 같이 Read More 버튼도 커스텀할 수 있고 라인수를 통해서 Read More 버튼이 보이는 여부를 결정할 수 도있습니다.
추가적으로 오늘 적용할 때 문제 점 white-space: pre-line이 적용이 안되는 에러 발생!
해결 법
<div
dangerouslySetInnerHTML={{
__html: boardItem.content.replace(/(?:\r\n|\r|\n)/g,'<br />',),
}}
/>
'지식 정리 📝' 카테고리의 다른 글
Optimistic UI Update With useSWR (0) | 2024.02.28 |
---|---|
Safari에서 깨지는 CSS 해결 (0) | 2024.02.22 |
Chrome에서 JSON Data 예쁘게 확인하는 법 (0) | 2024.02.04 |
Twilio Test Message Error (0) | 2024.01.23 |
Next.Js fetch를 통해서 request할 때 body 데이터 접근 법 (0) | 2024.01.16 |