Web - ChatBubbleListItem (Added in 1.4)
Added in 1.4
Definition
정의 | ChatBubbleListItem |
최적화 대상 | Desktop Mobile |
기획 배포 | 검토 |
디자인 가이드 배포 | 검토 |
개발 코드 배포 | 완료 |
Principle
채팅에 사용하는 말풍선 형태의 리스트 아이템입니다.
ChatBubbleListItem을 호버했을 시, 더 보기 아이콘 버튼이 뜨고 해당 아이콘을 클릭하면 ContextMenu로 채팅 메세지나 메세지 전송자에 대한 역할을 추가할 수 있습니다. ContextMenu가 떴을 때 화면 스크롤이 되지 않습니다.

기획의도
채팅 메세지 종류
셀러
다른 구독자
본인
채팅 메세지 구성
프로필 이미지, 프로필 닉네임(#distinctId), 내용(텍스트, 이미지, 동영상), 채팅 메세지 전송 시간
프로필 이미지와 닉네임은 다른 구독자나 셀러가 작성한 채팅 메세지일 경우 해당
말풍선의 꼬리
‘같은 시간’ 내에 ‘연속적’으로 메세지를 전송했을 시, 첫 말풍선엔 꼬리가 존재 하나 그 다음 말풍선부터는 꼬리가 존재하지 않음
우선 '분' 단위
채팅 날짜를 보여줄 생각인데, 해당 컴포넌트에 포함시켜야 하는지?
→ 아니다. 이건 따로 가져갈 예정
말풍선의 min-width : 32px
1자부터 전송됨 - 이를 고려한 min-width 정해주기 (보장하는 모양)
max-width는 960px > SW, UW 화면에서 채팅 영역이 넓기 때문
단지, hover 시 더보기 아이콘이 뜰 수 있으므로 전송시간 옆 padding 48px는 보장되어야 함! → 작은 화면에서 특히 더보기가 잘 표현되어야하니까
말풍선 안에 들어갈 수 있는 이미지/영상의 경우 width 240px로 표현
이거는 기획서상 표현하면 됨 / 해당 컴포넌트에서 지정하는 건 아니다.
커스텀 컬러 적용 범위
primary : 셀러 프로필 이미지 border, 셀러 닉네임, 본인 말풍선
secondary : 본인 말풍선의 텍스트
말풍선 안에 들어가는 메세지 종류 prop → children prop을 사용
text
1. 우선 말풍선 안에 구멍을 뚫고 그 안에 무엇이든 넣을 수 있게 제공 + TextLabel을 쓰지 않는다. (Editor에서 작성된 텍스트는 TextLabel이 아닌 것 처럼) → 2. 추후에 새로운 TextLabel 제작!
link(밑줄, 클릭액션 존재, 추후 미리보기도 있을 수 있음)
텍스트와 링크가 공존하는 경우가 있을텐데 현재의 TextLabel은 이를 제공해주고 있지 않음 → 새로운 TextLabel을 추후 제작해야 한다.
TextLabel~~~~
<a>~~~</a>
TextLabel~~~
media (image, video)
구성

Spec
Guide

ContextMenu 떴을 시

*ChatBubbleListItem에서 뜨는 ContextMenu가 이 가장 ChatList의 Footer 영역에 닿을경우, 해당 ChatBubbleListItem의 위에서 뜨게 합니다.
Size, Property
(color와 관련한 사항은 하단에 기술)
구성 | 내용 |
---|---|
말풍선 |
*hover 시 더보기 아이콘이 뜰 수 있으므로 전송시간(timeMode) 옆 padding 48px는 항상 보장되어야 합니다. |
radius : 8px | |
profile Image |
|
titleText |
|
children | 말풍선 안에 들어가는 여러가지 요소들 (텍스트, 링크, 이미지 및 영상 썸네일 등) |
timeMode | 전송시간 정보
|
iconButton |
|
contextMenu |
|
Color Key
구성 | 내용 |
---|---|
말풍선 | 배경
|
텍스트 (배경 위에 올라가는 색상)
| |
profile Image | Border (프로필 이미지를 두르고 있는 라인)
|
titleText | colorTheme
|
timeMode | 전송시간 정보
|
iconButton |
|
Properties
titleText
주요 텍스트입니다. 주로 Chat을 보내는 대상을 표시하는 역할을 합니다.
기획 지시사항
기획서 상 작성 방법 : 텍스트만 기술
Type |
|
---|---|
Default | - |
children
말풍선 메세지의 내용을 표시하는 용도로 사용됩니다.
기획 지시사항
기획서 상 작성 방법 : 텍스트만 기술
Type |
|
---|---|
Default | - |
imageMode
이미지 사용 여부를 결정합니다. (프로필 이미지에 대한 사용 여부)
기획 지시사항
기획서 상 작성 방법 : Enum Values 중 하나를 사용함
Type |
|
---|---|
Default |
|
Enum Values Description | |
---|---|
| 아무 것도 표시하지 않습니다. |
| 이미지를 표시합니다. |
imageSrc
이미지 사용 시 주소 값입니다.
기획 지시사항
기획서 상 작성 방법 : 텍스트만 기술
Type |
|
---|---|
Default | - |
timeMode
메세지 전송 시간을 보여줍니다.
기획 지시사항
기획서 상 작성 방법 : Enum Values 중 하나를 사용함
Type |
|
---|---|
Default |
|
Enum Values Description | |
---|---|
| 아무 것도 표시하지 않습니다. |
| 전송 시간을 표시합니다. |
timeText
메세지 전송시간에 대한 텍스트입니다.
기획 지시사항
기획서 상 작성 방법 : 텍스트만 기술
Type |
|
---|---|
Default | - |
hoverMode
호버 시, 더 보기 아이콘 버튼 노출 여부를 결정합니다. (셀러나 다른 구독자가 전송한 경우에만 표시)
기획 지시사항
기획서 상 작성 방법 : Enum Values 중 하나를 사용함
Type |
|
---|---|
Default |
|
Enum Values Description | |
---|---|
| 호버 시, 더 보기 아이콘을 표시합니다. |
| 호버 시, 더 보기 아이콘을 표시하지 않습니다. |
styleTheme
메세지를 전송하는 대상을 표시합니다.
기획 지시사항
기획서 상 작성 방법 : Enum Values 중 하나를 사용함
기획서 작성할때, 아래 두 대상에 대해 괄호를 이용하여 명시해주세요.
예.)
seller : (채널의 셀러가 보낸 메세지일 경우)
subscriber : (다른 구독자가 보낸 메세지일 경우)
my : (본인이 보낸 메세지일 경우)
Type |
|
---|---|
Default |
|
Enum Values Description | |
---|---|
| 메세지 보내는 대상이 셀러일 경우 |
| 셀러가 전송한 메세지 말풍선에 꼬리가 있는 경우 |
| 메세지 보내는 대상이 다른 구독자일 경우 |
| 다른 구독자가 전송한 메세지 말풍선에 꼬리가 있는 경우 |
| 메세지 보내는 대상이 본인일 경우 |
| 본인이 전송한 메세지 말풍선에 꼬리가 있는 경우 |
contextMenuOptionArray
iBtn 클릭 시, 표시되는 ContextMenu 속 텍스트와 고유값 객체입니다.
기획 지시사항
기획서 상 작성 방법 : 기획자가 직접 prop을 기술하지 않음
Type |
CODE
|
---|---|
Default |
|
contextMenuState
ContextMenu의 상태를 결정합니다.
기획 지시사항
기획서 상 작성 방법 : Enum Values 중 하나를 사용함
Type |
|
---|---|
Default |
|
Enum Values Description | |
---|---|
| 기본 상태 입니다. |
| 비활성화 상태입니다. |
onClickContextMenuItem
ContextMenuItem이 클릭이 된 시점에 이벤트를 부여합니다.
기획 지시사항
기획서 상 작성 방법 : 기획자가 직접 prop을 기술하지 않음
Type |
CODE
|
---|---|
Default | - |
문서 작성 정보
소유자 / 관리자 | 김혜진, 박윤규 |
---|---|
변경 이력 |
|