- Text Input: The message composer provides a multi-line text input area where users can type their messages.
- Voice Recording Button: This button is often represented by a microphone symbol. Users can tap or click to start recording their voice message.
- Send Button: The message composer includes a “Send” button that allows users to send their composed message to the recipient.
- Attachment Options: The message composer also includes options to attach files, images, emojis, and other media to the message.
- Live reactions: The message composer allows users to express their immediate responses or emotions to content in real time. Instead of simply liking or commenting on a message, users can use live reactions to provide instant feedback and engage with the content more dynamically.
CometChat’s React UI Kit supports the following extensions in the message composer
- Stickers
- Polls
- Collaborative whiteboard
- Collaborative document
Properties
Chat Information
Details associated with a chat conversation or chat participants.| Name | Type | Description |
|---|---|---|
| user | User Class | View details of this particular CometChat user |
| group | Group Class | View details of this particular CometChat group |
Message input
Customise text and controls| Name | Type | Description |
|---|---|---|
| text | string | Text shown in the message input populated by default. |
| placeholderText | string | Sample text that appears in the message input as a prompt or suggestion |
| auxiliaryButtonsAlignment | AuxiliaryButtonAlignment | This refers to the visual arrangement or positioning of the auxiliary buttons within the composer list. Defaults to right alignment. |
| attachmentOptions | MessageComposerAction | This refer to the functionalities that allow users to attach various types of files, media, or content to their messages such as polls, collaborative document etc |
Asset URLs
Custom asset URL used for graphical representation.| Name | Type | Description |
|---|---|---|
| attachmentIconURL | string | Asset URL for the attach icon. |
| LiveReactionIconURL | string | Asset URL for the live reaction. |
| voiceRecordingIconURL | string | Asset URL for the video recording icon. |
| voiceRecordingStartIconURL | string | Asset URL for the start icon in video recording. |
| voiceRecordingStopIconURL | string | Asset URL for the stop icon in video recording. |
| voiceRecordingSubmitIconURL | string | Asset URL for the submit icon in video recording. |
| voiceRecordingCloseIconURL | string | Asset URL for the close icon in video recording. |
Custom view
UI component created and customised by the developer to meet your design or functional requirements.| Name | Type | Description |
|---|---|---|
| sendButtonView | view | User-defined component to customise the send button. |
| secondaryButtonView | view | User-defined component to customise the secondary button. By default, it shows the attach button. |
| auxiliaryButtonView | view | User-defined component to customise the auxiliary button. By default, it shows the stickers button. |
| headerView | view | User-defined Vue component to customise the top of the message header component. You can customise it to display additional information or options related to the composition of messages such a giphy keyboard. |
Configurations
Properties of the UserMemberWrapper component that are available for customisation.| Name | Type | Description |
|---|---|---|
| userMemberWrapperConfiguration | UserMemberWrapperConfiguration | Properties of the userMemberWrapper component that are available for customisation via this component. |
Formatters
Array of formatters| Name | Description |
|---|---|
| textFormatters | TextFormatters is an array of formatters that manipulate message input based on the provided regex patterns and trigger keys. |
Toggle
Switch to hide or show the live reaction, enable / disable typing events.| Name | Type | Description |
|---|---|---|
| disableTyping | boolean | When set to true, typing events are disabled and the typing indicators are not displayed. |
| hideLiveReaction | boolean | When set to true, the button to send out the live reaction is not displayed. |
| hideVoiceRecording | boolean | When set to true, video recording button are not visible |
| disableMentions | boolean | When set to true, the mentions feature will be disabled. Default value is set to false |
Sound
This refers to the action of activating or allowing the audio or sound capabilities of the message list component.| Name | Type | Description |
|---|---|---|
| disableSoundForMessages | boolean | When set to true, the component will not produce sound for all outgoing messages. |
| customSoundForMessage | string | mp3 file asset of your choice. |
Function callback
Functions that can be invoked by the user in response to a specific event or condition.| Name | Type | Description |
|---|---|---|
| onSendButtonClick | (message: CometChat.BaseMessage) => void | Override the method that is invoked when the user clicks on the send button |
| onError | (error: CometChat.CometChatException) => void | Override the method that is invoked when an error is encountered within the details component |
Misc
| Name | Type | Description |
|---|---|---|
| parentMessageId | number | Refers to the unique identifier assigned to a parent message within a threaded conversation. When set, the component displays the composer for a threaded conversation. |
Style
Styling properties and values of all the child components| Name | Type | Description |
|---|---|---|
| backdropStyle | BackdropStyle | Styling properties of the Backdrop component |
| actionSheetStyle | ActionSheetStyle | Styling properties of the Action Sheet component |
| mediaRecorderStyle | mediaRecorderStyle | Styling properties of the Media Recorder component |
| messageComposerStyle | MessageComposerStyle | Styling properties of the MessageComposer component |
Usage
- Vue