AI Integration Quick Reference
AI Integration Quick Reference
What It Is
CometChatMessageTemplate is a model class, not a rendered component. Each instance maps a message type + category pair to a set of view functions that control how that message renders inside CometChatMessageList. Pass an array of templates to the templates prop on CometChatMessageList.
Template Structure
A message bubble is composed of these view slots, each overridable per template:| View | Default rendering | Signature |
|---|---|---|
headerView | Sender name | (message: CometChat.BaseMessage, alignment: MessageBubbleAlignment, textFormatters?: CometChatTextFormatter[]) => JSX.Element | null |
contentView | Text / image / video / audio / file bubble | (message: CometChat.BaseMessage, alignment: MessageBubbleAlignment, textFormatters?: CometChatTextFormatter[]) => JSX.Element | null |
footerView | Reactions | (message: CometChat.BaseMessage, alignment: MessageBubbleAlignment) => JSX.Element | null |
bottomView | Link previews, “load more” | (message: CometChat.BaseMessage, alignment: MessageBubbleAlignment) => JSX.Element | null |
statusInfoView | Receipt + timestamp | (message: CometChat.BaseMessage, alignment: MessageBubbleAlignment, hideReceipts?: boolean, messageSentAtDateTimeFormat?: CalendarObject, showError?: boolean) => JSX.Element | null |
replyView | Reply preview | (message: CometChat.BaseMessage, alignment?: MessageBubbleAlignment, onReplyViewClicked?: (msg: CometChat.BaseMessage) => void, textFormatters?: CometChatTextFormatter[]) => JSX.Element | null |
bubbleView | Entire bubble (overrides all above) | (message: CometChat.BaseMessage, alignment: MessageBubbleAlignment) => JSX.Element | null |
options | Long-press action sheet | (loggedInUser: CometChat.User, message: CometChat.BaseMessage, group?: CometChat.Group) => CometChatMessageOption[] |
Fetching Existing Templates
Retrieve the built-in templates and modify specific ones:Common Patterns
Custom header with status badge

Custom content view for a custom message type

- TypeScript
- CSS
Custom bottom view with warning

- TypeScript
- CSS
Replace entire bubble

- TypeScript
- CSS
Custom action sheet options

New template for a custom message type

Styling
CometChatMessageTemplate renders inside .cometchat-message-bubble. Style individual bubble sections using CSS:
Properties
bubbleView
| Key | Value |
|---|---|
| Type | ((message: CometChat.BaseMessage, alignment: MessageBubbleAlignment) => Element | JSX.Element | null) | null |
| Default | null |
headerView, contentView, footerView, bottomView, statusInfoView, and replyView are ignored for that template.
bottomView
| Key | Value |
|---|---|
| Type | ((message: CometChat.BaseMessage, alignment: MessageBubbleAlignment) => Element | JSX.Element | null) | null |
| Default | null |
category
| Key | Value |
|---|---|
| Type | string |
| Default | "" |
CometChatUIKitConstants.MessageCategory.message, CometChatUIKitConstants.MessageCategory.custom).
contentView
| Key | Value |
|---|---|
| Type | ((message: CometChat.BaseMessage, alignment: MessageBubbleAlignment, textFormatters?: CometChatTextFormatter[]) => Element | JSX.Element | null) | null |
| Default | null |
footerView
| Key | Value |
|---|---|
| Type | ((message: CometChat.BaseMessage, alignment: MessageBubbleAlignment) => Element | JSX.Element | null) | null |
| Default | null |
headerView
| Key | Value |
|---|---|
| Type | ((message: CometChat.BaseMessage, alignment: MessageBubbleAlignment) => Element | JSX.Element | null) | null |
| Default | null |
options
| Key | Value |
|---|---|
| Type | (loggedInUser: CometChat.User, message: CometChat.BaseMessage, group?: CometChat.Group) => CometChatMessageOption[] |
| Default | SDK default options |
replyView
| Key | Value |
|---|---|
| Type | ((message: CometChat.BaseMessage, alignment?: MessageBubbleAlignment, onReplyViewClicked?: (msg: CometChat.BaseMessage) => void, textFormatters?: CometChatTextFormatter[]) => Element | JSX.Element | null) | null |
| Default | null |
statusInfoView
| Key | Value |
|---|---|
| Type | ((message: CometChat.BaseMessage, alignment: MessageBubbleAlignment, hideReceipts?: boolean, messageSentAtDateTimeFormat?: CalendarObject, showError?: boolean) => Element | JSX.Element | null) | null |
| Default | null |
type
| Key | Value |
|---|---|
| Type | string |
| Default | — (required) |
CometChatUIKitConstants.MessageTypes.text, CometChatUIKitConstants.MessageTypes.image).