# useChannelTypingState

Tracks users currently typing in a channel for preview rendering.

## Best Practices

- Use this hook for typing badges in `ChannelList` rows.
- Ignore self-typing in previews to reduce visual noise.
- Keep typing text concise for small row layouts.
- Prefer memoized row components when displaying typing users.
- Handle zero typers as the default state.

## Usage

```tsx
import { useChannelTypingState } from "stream-chat-react-native";

const TypingPreview = ({ channel }: { channel: Channel }) => {
  const { usersTyping } = useChannelTypingState({ channel });

  if (!usersTyping.length) return null;
  return (
    <Text>{`${usersTyping[0].name ?? usersTyping[0].id} is typing...`}</Text>
  );
};
```

## Parameters

| Name    | Type      | Required | Description                                |
| ------- | --------- | -------- | ------------------------------------------ |
| channel | `Channel` | Yes      | Channel to subscribe to typing events for. |

## Returns

| Name        | Type             | Description                                   |
| ----------- | ---------------- | --------------------------------------------- |
| usersTyping | `UserResponse[]` | Current list of users typing in this channel. |


---

This page was last updated at 2026-04-17T17:33:46.354Z.

For the most recent version of this documentation, visit [https://getstream.io/chat/docs/sdk/react-native/hooks/channel-preview/use-channel-typing-state/](https://getstream.io/chat/docs/sdk/react-native/hooks/channel-preview/use-channel-typing-state/).