---
id: message-context
title: MessageContext
---

import ReadEventsEnabled from '../common-content/core-components/channel/props/read_events_enabled.mdx';

import Disabled from '../common-content/contexts/channel-context/disabled.mdx';

import Alignment from '../common-content/contexts/message-context/alignment.mdx';
import Files from '../common-content/contexts/message-context/files.mdx';
import GroupStyles from '../common-content/contexts/message-context/group_styles.mdx';
import HandleAction from '../common-content/contexts/message-context/handle_action.mdx';
import HasReactions from '../common-content/contexts/message-context/has_reactions.mdx';
import Images from '../common-content/contexts/message-context/images.mdx';
import IsMyMessage from '../common-content/contexts/message-context/is_my_message.mdx';
import LastGroupMessage from '../common-content/contexts/message-context/last_group_message.mdx';
import MessageContentOrder from '../common-content/contexts/message-context/message_content_order.mdx';
import MessageProp from '../common-content/contexts/message-context/message.mdx';
import OnLongPress from '../common-content/contexts/message-context/on_long_press.mdx';
import OnOpenThread from '../common-content/contexts/message-context/on_open_thread.mdx';
import OnPress from '../common-content/contexts/message-context/on_press.mdx';
import OnPressIn from '../common-content/contexts/message-context/on_press_in.mdx';
import OnlyEmojis from '../common-content/contexts/message-context/only_emojis.mdx';
import OtherAttachments from '../common-content/contexts/message-context/other_attachments.mdx';
import Reactions from '../common-content/contexts/message-context/reactions.mdx';
import ShowMessageOverlay from '../common-content/contexts/message-context/show_message_overlay.mdx';
import ShowMessageStatus from '../common-content/contexts/message-context/show_message_status.mdx';
import ThreadList from '../common-content/contexts/message-context/thread_list.mdx';

`MessageContext` is provided by [`Message`](https://github.com/GetStream/stream-chat-react-native/blob/master/package/src/components/Message/Message.tsx) 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

`MessageContext` can be consumed by any of the child  component of `Message` component as following:

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

const { isMyMessage, message, files } = useContext(MessageContext);
```

Alternatively, you can also use `useMessageContext` hook provided by library to consume MessageContext.

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

const { isMyMessage, message, files } = useMessageContext();
```

## Value

### actionsEnabled

This value gets set to true when following condition is true:

```tsx
message.type === 'regular' && message.status === 'received'
```

| Type |
| - |
| boolean |

### alignment

<Alignment />

### canModifyMessage

True if one of the following condition is true:

<!-- TODO: Change to new docs -->
- message is sent by the current user (connected to chat)
- current user has [`admin`](https://getstream.io/chat/docs/javascript/channel_user_role/?language=javascript&q=role) role
- current user has [`moderator`](https://getstream.io/chat/docs/javascript/channel_user_role/?language=javascript&q=role) role

| Type |
| - |
| boolean |

### disabled

<Disabled />

### files

<Files />

### groupStyles

<GroupStyles />

### handleAction

<HandleAction />

### handleDeleteMessage

Callback function for "Delete Message" action.

| Type |
| - |
| function |

### handleEditMessage

Callback function for "Edit Message" action.

| Type |
| - |
| function |

### handleQuotedReplyMessage

Callback function for "Quoted Reply" action.

| Type |
| - |
| function |

### handleResendMessage

Callback function for "Resend Message" (for failed message) action.

| Type |
| - |
| function |

### handleToggleBanUser

Callback function for "Ban/Unban User" action.

| Type |
| - |
| function |

### handleToggleMuteUser

Callback function for "Mute/Unmute User" action.

| Type |
| - |
| function |

### handleToggleReaction

Callback function for toggling reaction from reaction selector.

| Type |
| - |
| `(reactionType: string) => void` |

### hasReactions

<HasReactions />

### images

<Images />

### isMyMessage

<IsMyMessage />

### lastGroupMessage

<LastGroupMessage />

### lastReceivedId

Most recent message id in the message list.

| Type |
| - |
| string |

### message

<MessageProp />

### messageContentOrder

<MessageContentOrder />

### onLongPress

<OnLongPress />

### onlyEmojis

<OnlyEmojis />

### onOpenThread

<OnOpenThread />

### onPress

<OnPress />

### onPressIn

<OnPressIn />

### otherAttachments

<OtherAttachments />

### reactions

<Reactions />

### readEventsEnabled

<ReadEventsEnabled />

### showMessageOverlay

<ShowMessageOverlay />

### showMessageStatus

<ShowMessageStatus />

### threadList

<ThreadList />

<!-- ### goToMessage -->

<!-- ### preventPress -->

<!-- ### showAvatar -->
