# MessageComposer API

This section covers the `MessageComposer` API and its sub-managers.

## Best Practices

- Use the appropriate manager (text, attachments, link previews, polls) instead of mixing concerns.
- Avoid direct state mutation; use manager APIs to keep state consistent.
- Keep suggestion logic lightweight to preserve typing performance.
- Validate attachments and custom data before sending.
- Use link preview manager settings to control network and UX impact.

<partial id="shared/chat/js/message-composer/_manager-message-composer"></partial>

## Text Composition With Suggestions

<partial id="shared/chat/js/message-composer/_text-composition"></partial>

## Attachment Management

<partial id="shared/chat/js/message-composer/_manager-attachments"></partial>

## Link Preview Management

<partial id="shared/chat/js/message-composer/_manager-link-previews"></partial>

## Poll Composition

<partial id="shared/chat/js/message-composer/_manager-poll-composition"></partial>

## Custom Data Management

<partial id="shared/chat/js/message-composer/_manager-custom-data"></partial>


---

This page was last updated at 2026-04-03T17:24:32.918Z.

For the most recent version of this documentation, visit [https://getstream.io/chat/docs/sdk/react-native/v9/ui-components/message-composer/composer/message-composer-api/](https://getstream.io/chat/docs/sdk/react-native/v9/ui-components/message-composer/composer/message-composer-api/).