<OverlayProvider>
<Chat client={client}>
<Channel channel={channel}>
<MessageInput />
</Channel>
</Chat>
</OverlayProvider>
MessageInput
MessageInput
component provides all the UI and necessary functionality (e.g, attachment picker, commands, mentions autocomplete etc.) for composing a message.
This component must be used as child of Channel
component.
Basic Usage
Props
All the configuration for MessageInput
can be done on Channel
component.
Additionally please take a look at our Guide Section on how to customize MessageInput UI
clearEditingState
Function to clear “Editing Message” state from MessageInput component.
Type |
---|
function |
clearQuotedMessageState
Function to clear “Add Quoted Reply” state from MessageInput component.
Type |
---|
function |
closeAttachmentPicker
Dismiss the attachment picker, if its already open.
Type |
---|
function |
componentType
Current active component type, which is basically a first parameter to openSuggestions
.
Type |
---|
string | Element |
disabled
True if channel is frozen and disableIfFrozenChannel is true.
Type |
---|
boolean |
editing
True if the user is editing some message within MessageInput
component.
Type |
---|
boolean |
fileUploads
List of file
type attachments currently attached to message, which is being composed in MessageInput
component.
[
{
file: {
name: 'test.pdf';
size: 2000;
type: 'application/pdf';
uri: 'file-uri';
};
id: 'asdas232bk3jb42k3';
state: 'uploaded'; // or 'finished'
url: 'https://cdn.getstream.io/kajsnkj2n3j4';
}
]
Type |
---|
array |
giphyActive
True if a user selects the giphy
command from commands list (which is shown when you type a /
in the input box).
This value is set back to false
when the user sends the message for searching Giphy.
Type |
---|
boolean |
imageUploads
List of image
type attachments currently attached to message, which is being composed in MessageInput
component.
[
{
file: { name: "fallback-name.jpeg" },
id: "2j3n4k23nj4k23n4k3",
state: "finished", // or 'uploading'
url: "https://cdn.getstream.io/kajsnkj2n3j4", // If the state is `uploading`, then this will be a local uri of image.
},
];
Type |
---|
array |
inputBoxRef
Ref for TextInput
component within MessageInput
Type |
---|
ref |
isValidMessage
False if text within input box is empty and no images or files have been attached to a message yet. You can use this value to add enabled/disabled UI state on SendMessage button.
Type |
---|
boolean |
members
Members of current channel. This value is received from backend when you query a channel, either using client.queryChannels()
or channel.watch()
API call.
client.queryChannels()
or channel.watch()
returns only up to 100 members of channel. So if you expect total number of members to be > 100, its better to use client.queryMembers()
API endpoint separately to get the list of members.
Record<
string, // userId
{
banned?: boolean;
created_at?: string;
invite_accepted_at?: string;
invite_rejected_at?: string;
invited?: boolean;
is_moderator?: boolean;
role?: string;
shadow_banned?: boolean;
updated_at?: string;
user?: UserResponse<UserType>;
user_id?: string;
}
>;
Type |
---|
object |
quotedRepliesEnabled
Allow messages to be replied to using inline quotation.
Type | Default |
---|---|
boolean | true |
suggestions
Current active list of suggestions, within suggestions list for autocomplete feature.
Type |
---|
{ data: array<object>, onSelect: function } |
suggestionsTitle
Title component of current active suggestions autocomplete list.
Type |
---|
string | Element |
additionalTextInputProps
Additional props provided to the underlying TextInput within MessageInput
.
Type |
---|
object |
asyncIds
asyncUploads
maxNumberOfFiles
Maximum number of files (documents & images), that can be attached per message.
Type | Default |
---|---|
number | 10 |
mentionedUsers
Ids of users which are mentioned (for example Hey @Vishal Narkhede, how are you
) in a message, which is being composed in MessageInput component.
["vishal-user-id", "jaap-user-id"];
Type |
---|
array |
numberOfUploads
Number of image + files attached to message which is being composed in MessageInput
component.
Type |
---|
number |
quotedMessage
removeImage
Removes attached image in message, which is being composed in MessageInput
component. By default, this function is attached to onPress
handler for close button in ImageUploadPreview.
It takes index of file (to be removed) in imageUploads
array as parameter.
Type |
---|
(index) => void |
resetInput
Resets the entire MessageInput
component to empty state by clearing the text, attachments etc.
Type |
---|
function |
sending
sendMessageAsync
setGiphyActive
Setter function for giphyActive
Type |
---|
(isActive) => void |
showMoreOptions
Represents the expanded or collapsed state for attach and commands button, next to input box.
Type |
---|
boolean |
thread
A message object that when set indicates a thread is open.
When used with the Thread
component this will display the thread.
When used with the standard MessageList
component this will prevent any singleton components in the OverlayProvider
form getting out of sync.
thread
should be set on all Channel
components when a thread is open.
Type |
---|
object |
uploadNewImage
Function to upload an attached image in MessageInput
. This function takes an image from imageUploads
array as a parameter.
Type |
---|
(image) => Promise |
watchers
Watchers of current channel. This value is received from backend when you query a channel, either using client.queryChannels()
or channel.watch()
API call.
client.queryChannels()
or channel.watch()
returns only up to 100 watchers for channel. So if you expect total number of watchers to be > 100, you should request them explicitly using Channel Pagination
Record<
string, // string
UserResponse<UserType>
>;
Type |
---|
object |
Reply
Component to render preview of parent of message for quoted reply.
Type | Default |
---|---|
component | Reply |
FileUploadPreview
Component to render preview of attached file, within enclosed MessageInput
component.
Type | Default |
---|---|
component | FileUploadPreview |
ImageUploadPreview
Component to render preview of attached images, within enclosed MessageInput component
Type | Default |
---|---|
component | ImageUploadPreview |
Input
Component to render UI part of enclosed MessageInput component. Please read section in guides about Customizing Message Input.
Type |
---|
component |
InputButtons
Component to render action buttons (CommandsButton and AttachButton) on left side of input box, within enclosed MessageInput
component.
Type | Default |
---|---|
component | InputButtons |
SendButton
Component to render a send message button, within enclosed MessageInput component.
Type | Default |
---|---|
component | SendButton |
ShowThreadMessageInChannelButton
Component to render a checkbox within enclosed Thread component, which when checked sets a show_in_channel
property to true on a message.
Type | Default |
---|---|
component | ShowThreadMessageInChannelButton |
- Basic Usage
- Props
- clearEditingState
- clearQuotedMessageState
- closeAttachmentPicker
- componentType
- disabled
- editing
- fileUploads
- giphyActive
- imageUploads
- inputBoxRef
- isValidMessage
- members
- quotedRepliesEnabled
- suggestions
- suggestionsTitle
- additionalTextInputProps
- asyncIds
- asyncUploads
- maxNumberOfFiles
- mentionedUsers
- numberOfUploads
- quotedMessage
- removeImage
- resetInput
- sending
- sendMessageAsync
- setGiphyActive
- showMoreOptions
- thread
- uploadNewImage
- watchers
- Reply
- FileUploadPreview
- ImageUploadPreview
- Input
- InputButtons
- SendButton
- ShowThreadMessageInChannelButton