TIL

일정 길이 이상의 텍스트에 ...을 붙이는 쉬운 방법

KANG_G1 2024. 5. 13. 09:15

글자가 일정 length 이상이 되었을 때, 문자열 뒤에 ‘…’ 처리를 해야하는 부분이 있었습니다.
사실 전 css에 약하기도 하고, 어지간한 텍스트 관련 작업은 JS로 해결을 해왔기에
이번에도 JS로 접근해 해결을 했고 PR 내역에 올렸는데요.

하지만 피어 리뷰를 통해 새로운 문제 해결에 접근할 수 있었어요.
css를 잘 아는 동료분이 계셨는데, 3개의 속성 추가로 너무 쉽게 해결을 할 수 있다고 코멘트를 주셨거든요.

먼저 저의 코드입니다.


<Flex flexDirection="row" w="210px" mr="20px">
	<FolderIcon boxSize="24px" />
	<Text style={textStyles.Regular_14} ml="2px">
		{item.name.length >= 17
		? item.name.split('').splice(0, 17).join('') + '...'
		: item.name}
	</Text>
</Flex>

text의 length가 17 이상이면 16자리까지만 보여지게 만들고 이후에 ... 이라는 텍스트를 추가해줬습니다.

그럼 동료분의 리뷰를 적용한 코드를 볼까요?

 <Text
	style={textStyles.Regular_14}
	ml="2px"
    overflow="hidden"
    textOverflow="ellipsis"
    whiteSpace="nowrap"
>
{folder.name}
</Text>

overflow와 textOverFlow, whiteSpace 속성을 사용해 간단히 구현할 수 있었습니다.