---
id: message-input-context
title: MessageInputContext
---

import SelectedPicker from '../common-content/contexts/attachment-picker-context/selected_picker.mdx'

import AdditionalTextInputProps from '../common-content/core-components/channel/props/additional_text_input_props.mdx';
import AttachButton from '../common-content/core-components/channel/props/attach_button.mdx';
import AutoCompleteSuggestionsLimit from '../common-content/core-components/channel/props/auto_complete_suggestions_limit.mdx'
import AutoCompleteTriggerSettings from '../common-content/core-components/channel/props/auto_complete_trigger_settings.mdx';
import CommandsButton from '../common-content/core-components/channel/props/commands_button.mdx';
import CompressImageQuality from '../common-content/core-components/channel/props/compress_image_quality.mdx';
import DoDocUploadRequest from '../common-content/core-components/channel/props/do_doc_upload_request.mdx';
import DoImageUploadRequest from '../common-content/core-components/channel/props/do_image_upload_request.mdx';
import EditMessage from '../common-content/core-components/channel/props/edit_message.mdx';
import FileUploadPreview from '../common-content/core-components/channel/props/file_upload_preview.mdx';
import HasCommands from '../common-content/core-components/channel/props/has_commands.mdx';
import HasFilePicker from '../common-content/core-components/channel/props/has_file_picker.mdx';
import HasImagePicker from '../common-content/core-components/channel/props/has_image_picker.mdx';
import ImageUploadPreview from '../common-content/core-components/channel/props/image_upload_preview.mdx';
import InitialValue from '../common-content/core-components/channel/props/initial_value.mdx';
import Input from '../common-content/core-components/channel/props/input.mdx';
import InputButtons from '../common-content/core-components/channel/props/input_buttons.mdx';
import MaxMessageLength from '../common-content/core-components/channel/props/max_message_length.mdx';
import MaxNumberOfFiles from '../common-content/core-components/channel/props/max_number_of_files.mdx';
import MentionAllAppUsersEnabled from '../common-content/core-components/channel/props/mention_all_app_users_enabled.mdx'
import MentionAllAppUsersQuery from '../common-content/core-components/channel/props/mention_all_app_users_query.mdx'
import MoreOptionsButton from '../common-content/core-components/channel/props/more_options_button.mdx';
import NumberOfLines from '../common-content/core-components/channel/props/number_of_lines.mdx';
import OnChangeText from '../common-content/core-components/channel/props/on_change_text.mdx';
import SendButton from '../common-content/core-components/channel/props/send_button.mdx';
import SendImageAsync from '../common-content/core-components/channel/props/send_image_async.mdx';
import ShowThreadMessageInChannelButton from '../common-content/core-components/channel/props/show_thread_message_in_channel_button.mdx';
import Thread from '../common-content/core-components/channel/props/thread.mdx';
import UploadProgressIndicator from '../common-content/core-components/channel/props/upload_progress_indicator.mdx';
import UploadsEnabled from '../common-content/core-components/channel/props/uploads_enabled.mdx';

import AppendText from '../common-content/contexts/message-input-context/append_text.mdx'
import ClearEditingState from '../common-content/contexts/message-input-context/clear_editing_state.mdx'
import ClearQuotedMessageState from '../common-content/contexts/message-input-context/clear_quoted_message_state.mdx'
import CloseAttachmentPicker from '../common-content/contexts/message-input-context/close_attachment_picker.mdx'
import Editing from '../common-content/contexts/message-input-context/editing.mdx'
import FileUploads from '../common-content/contexts/message-input-context/file_uploads.mdx';
import GiphyActive from '../common-content/contexts/message-input-context/giphy_active.mdx';
import ImageUploads from '../common-content/contexts/message-input-context/image_uploads.mdx';
import InputBoxRef from '../common-content/contexts/message-input-context/input_box_ref.mdx'
import IsValidMessage from '../common-content/contexts/message-input-context/is_valid_message.mdx'
import MentionedUsers from '../common-content/contexts/message-input-context/mentioned_users.mdx'
import NumberOfUploads from '../common-content/contexts/message-input-context/number_of_uploads.mdx'
import OpenAttachmentPicker from '../common-content/contexts/message-input-context/open_attachment_picker.mdx'
import OpenCommandsPicker from '../common-content/contexts/message-input-context/open_commands_picker.mdx'
import OpenFilePicker from '../common-content/contexts/message-input-context/open_file_picker.mdx'
import OpenMentionsPicker from '../common-content/contexts/message-input-context/open_mentions_picker.mdx'
import QuotedMessage from '../common-content/contexts/message-input-context/quoted_message.mdx';
import RemoveFile from '../common-content/contexts/message-input-context/remove_file.mdx';
import RemoveImage from '../common-content/contexts/message-input-context/remove_image.mdx';
import ResetInput from '../common-content/contexts/message-input-context/reset_input.mdx'
import SetGiphyActive from '../common-content/contexts/message-input-context/set_giphy_active.mdx'
import SendMessage from '../common-content/contexts/message-input-context/send_message.mdx'
import SendThreadMessageInChannel from '../common-content/contexts/message-input-context/send_thread_message_in_channel.mdx'
import SetFileUploads from '../common-content/contexts/message-input-context/set_file_uploads.mdx'
import SetImageUploads from '../common-content/contexts/message-input-context/set_image_uploads.mdx'
import SetInputBoxRef from '../common-content/contexts/message-input-context/set_input_box_ref.mdx'
import SetMentionedUsers from '../common-content/contexts/message-input-context/set_mentioned_users.mdx'
import SetNumberOfUploads from '../common-content/contexts/message-input-context/set_number_of_uploads.mdx'
import SetSendThreadMessageInChannel from '../common-content/contexts/message-input-context/set_send_thread_message_in_channel.mdx'
import SetShowMoreOptions from '../common-content/contexts/message-input-context/set_show_more_options.mdx'
import SetText from '../common-content/contexts/message-input-context/set_text.mdx'
import ShowMoreOptions from '../common-content/contexts/message-input-context/show_more_options.mdx'
import Text from '../common-content/contexts/message-input-context/text.mdx'
import ToggleAttachmentPicker from '../common-content/contexts/message-input-context/toggle_attachment_picker.mdx'
import TriggerSettings from '../common-content/contexts/message-input-context/trigger_settings.mdx'
import UploadFile from '../common-content/contexts/message-input-context/upload_file.mdx';
import UploadImage from '../common-content/contexts/message-input-context/upload_image.mdx';
import UpdateMessage from '../common-content/contexts/message-input-context/update_message.mdx'
import UploadNewFile from '../common-content/contexts/message-input-context/upload_new_file.mdx'
import UploadNewImage from '../common-content/contexts/message-input-context/upload_new_image.mdx'

`MessageInputContext` is provided by [`Channel`](../core-components/channel.mdx) component. If you are not familiar with React Context API, please read about it on [React docs](https://reactjs.org/docs/context.html).

## Basic Usage

`MessageInputContext` can be consumed by any of the child  component of `Channel` component as following:

```tsx
import { useContext } from 'react';
import { MessageInputContext } from 'stream-chat-react-native';

const { sendMessage, toggleAttachmentPicker } = useContext(MessageInputContext);
```

Alternatively, you can also use `useMessageInputContext` hook provided by library to consume MessageInputContext.

```tsx
import { useMessageInputContext } from 'stream-chat-react-native';

const { sendMessage, toggleAttachmentPicker } = useMessageInputContext();
```

## Value

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#additionaltextinputprops)_ props</div> additionalTextInputProps {#additionaltextinputprops}

<AdditionalTextInputProps />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#autocompletesuggestionslimit)_ props</div> autoCompleteSuggestionsLimit {#autocompletesuggestionslimit}

<AutoCompleteSuggestionsLimit />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#autocompletetriggersettings)_ props</div> autoCompleteTriggerSettings {#autocompletetriggersettings}

<AutoCompleteTriggerSettings />

### clearEditingState

<ClearEditingState />

### clearQuotedMessageState

<ClearQuotedMessageState />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#compressimagequality)_ props</div> compressImageQuality {#compressimagequality}

<CompressImageQuality />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#dodocuploadrequest)_ props</div> doDocUploadRequest {#dodocuploadrequest}

<DoDocUploadRequest />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#doimageuploadrequest)_ props</div> doImageUploadRequest {#doimageuploadrequest}

<DoImageUploadRequest />

### editing

<Editing />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#editmessage)_ props</div> editMessage {#editmessage}

<EditMessage />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#hascommands)_ props</div> hasCommands {#hascommands}

<HasCommands />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#hasfilepicker)_ props</div> hasFilePicker {#hasfilepicker}

<HasFilePicker />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#hasimagepicker)_ props</div> hasImagePicker {#hasimagepicker}

<HasImagePicker />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#initialvalue)_ props</div> initialValue {#initialvalue}

<InitialValue />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#maxmessagelength)_ props</div> maxMessageLength {#maxmessagelength}

<MaxMessageLength />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#maxnumberoffiles)_ props</div> maxNumberOfFiles {#maxnumberoffiles}

<MaxNumberOfFiles />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#mentionallappusersenabled)_ props</div> mentionAllAppUsersEnabled {#mentionallappusersenabled}

<MentionAllAppUsersEnabled />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#mentionallappusersquery)_ props</div> mentionAllAppUsersQuery {#mentionallappusersquery}

<MentionAllAppUsersQuery />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#numberoflines)_ props</div> numberOfLines {#numberoflines}

<NumberOfLines />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#onchangetext)_ props</div> onChangeText {#onchangetext}

<OnChangeText />

### quotedMessage

<QuotedMessage />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#sendimageasync)_ props</div> sendImageAsync {#sendimageasync}

<SendImageAsync />

### sendMessage

<SendMessage />

<!-- ### setInputRef -->

<!-- ### setQuotedMessageState -->

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#uploadsenabled)_ props</div> uploadsEnabled {#uploadsenabled}

<UploadsEnabled />

### appendText

<AppendText />

<!-- ### asyncIds -->

<!-- ### asyncUploads -->

### closeAttachmentPicker

<CloseAttachmentPicker />

### fileUploads

<FileUploads />

### giphyActive

<GiphyActive />

### imageUploads

<ImageUploads />

### inputBoxRef

<InputBoxRef />

### isValidMessage

<IsValidMessage />

### mentionedUsers

<MentionedUsers />

### numberOfUploads

<NumberOfUploads />

<!-- ### onChange -->

<!-- ### onSelectItem -->

### openAttachmentPicker

<OpenAttachmentPicker />

### openCommandsPicker

<OpenCommandsPicker />

### openFilePicker

<OpenFilePicker />

### openMentionsPicker

<OpenMentionsPicker />

<!-- ### pickFile -->

### removeFile

<RemoveFile />

### removeImage

<RemoveImage />

### resetInput

<ResetInput />

### <div class="label description">_forwarded from [AttachmentPickerContext](../contexts/attachment_picker_context.mdx#selectedpicker)_</div> selectedPicker {#selectedpicker}

<SelectedPicker />

<!-- ### sending -->

<!-- ### sendMessageAsync -->

### sendThreadMessageInChannel

<SendThreadMessageInChannel />

<!-- ### setAsyncIds -->

<!-- ### setAsyncUploads -->

### setFileUploads

<SetFileUploads />

### setGiphyActive

<SetGiphyActive />

### setImageUploads

<SetImageUploads />

### setInputBoxRef

<SetInputBoxRef />

### setMentionedUsers

<SetMentionedUsers />

### setNumberOfUploads

<SetNumberOfUploads />

### setSendThreadMessageInChannel

<SetSendThreadMessageInChannel />

### setShowMoreOptions

<SetShowMoreOptions />

### setText

<SetText />

### showMoreOptions

<ShowMoreOptions />

### text

<Text />

### <div class="label description">_forwarded from [ThreadContext](../contexts/thread_context.mdx#thread)_</div> thread {#thread}

<Thread />

### toggleAttachmentPicker

<ToggleAttachmentPicker />

### triggerSettings

<TriggerSettings />

### updateMessage

<UpdateMessage />

### uploadFile

<UploadFile />

### uploadImage

<UploadImage />

### uploadNewFile

<UploadNewFile />

### uploadNewImage

<UploadNewImage />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#attachbutton)_ props</div> AttachButton {#attachbutton}

<AttachButton />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#commandsbutton)_ props</div> CommandsButton {#commandsbutton}

<CommandsButton />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#fileuploadpreview)_ props</div> FileUploadPreview {#fileuploadpreview}

<FileUploadPreview />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#imageuploadpreview)_ props</div> ImageUploadPreview {#imageuploadpreview}

<ImageUploadPreview />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#input)_ props</div> Input {#input}

<Input />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#inputbuttons)_ props</div> InputButtons {#inputbuttons}

<InputButtons />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#moreoptionsbutton)_ props</div> MoreOptionsButton {#moreoptionsbutton}

<MoreOptionsButton />

### SendButton

<SendButton />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#showthreadmessageinchannelbutton)_ props</div> ShowThreadMessageInChannelButton {#showthreadmessageinchannelbutton}

<ShowThreadMessageInChannelButton />

### <div class="label description">_forwarded from [Channel](../core-components/channel.mdx#uploadprogressindicator)_ props</div> UploadProgressIndicator {#uploadprogressindicator}

<UploadProgressIndicator />
