ConversationPreview
ConversationPreview
is used to preview individual conversation content in the conversation list. The component is responsible for displaying conversation information, unread counts, and providing conversation operation features.With the atomic information display component, you can freely design and combine the
ConversationPreview
layout as you wish.Additionally, you can define the behavior when a conversation is selected through the
onConversationSelect
function.Basic Usage
You can use the
ConversationList
Preview
attribute to define the preview item for each individual conversation in the conversation list. If the Preview
attribute is not specified, the system will automatically use the ConversationPreviewUI
component as the default.import { ConversationList, ConversationPreviewUI, IConversationPreviewUIProps } from '@tencentcloud/chat-uikit-react';const CustomConversationPreview = (props: IConversationPreviewUIProps) => {const { Title } = props;return (<ConversationPreviewUI {...props}>{Title}<div>Your custom preview UI</div></ConversationPreviewUI>);};<ConversationList Preview={CustomConversationPreviewUI}></ConversationList>
Props
Parameter Name | Type | Default Value | Indication |
conversation(Required) | - | Required parameter, identifies the currently rendered conversation list item. | |
isSelected | Boolean | false | Control whether the conversation list item UI is in a selected state |
enableActions | Boolean | true | Control whether the conversation operation feature is displayed |
actionsConfig | - | Used for defining conversation operation configuration | |
highlightMatchString | String | - | Highlighting matching keywords in the conversation list item title, often used to highlight search results. |
Title | String \ JSX.Element | ConversationPreviewTitle | Render the title area of the conversation list item. |
LastMessageAbstract | String \ JSX.Element | ConversationPreviewAbstract | Render the latest message abstract area of the conversation list item. |
LastMessageTimestamp | String \ JSX.Element | ConversationPreviewTimestamp | Render the latest message timestamp area of the conversation list item. |
Unread | String \ JSX.Element | ConversationPreviewUnread | Render the unread indicator area of the conversation list item. |
ConversationActions | ReactElement | ConversationActions | Render the conversation operations area of the conversation list item. |
Avatar | ReactElement | Avatar | Render the avatar area of the conversation list item. |
onConversationSelect | - | Specify the attribute to receive a callback when a conversation is selected in the conversation list. | |
className | String | - | Specify the custom CSS name for the root element class. |
style | React.CSSProperties | - | Specify the custom style for the root element. |
Custom Example
Discord Style
Discord is a popular chat application similar to Skype or Telegram. The chat content in Discord is shown in the figure below:
By customizing the
ConversationPreview
layout, feature, and style, we can quickly achieve a Discord-like effect.1. Customization
ConversationListPreview
2. Switch theme to Dark Mode
import { UIKitProvider, ConversationList, ConversationPreviewUI, IConversationPreviewUIProps } from '@tencentcloud/chat-uikit-react';const CustomConversationPreview = (props: IConversationPreviewUIProps) => {const { Title } = props;return (<ConversationPreviewUI {...props}><span> # </span><span>{Title}</span></ConversationPreviewUI>);};const App = () => {<UIKitProvider theme={'dark'}><ConversationListstyle={{ maxWidth: '300px', height: '600px' }}Preview={CustomConversationPreviewUI}/>...</UIKitProvider>}
.custom-preview-ui {height: 34px;border-radius: 6px;padding: 10px;margin: 0 10px;.custom-preview-ui__tag {margin-right: 10px;font-size: 16px;color: #b3b3b4;}.custom-preview-ui__title {font-size: 14px;color: #b3b3b4;}&.uikit-conversation-preview--active {background-color: #3b3d43;.custom-preview-ui__tag {color: #ffffff;}.custom-preview-ui__title {.uikit-conversation-preview__title {color: #ffffff;}}}}
ConversationListPreview
The effect after customization is as follows:before | after |
| |