# ThreadListItemContext

`ThreadListItemContext` is provided by [`ThreadListItem`](https://getstream.io/chat/docs/sdk/react-native/ui-components/thread-list-item/). If you are not familiar with the React Context API, see the [React docs](https://reactjs.org/docs/context.html).

`ThreadListItemContext` must be used within [`ThreadList`](https://getstream.io/chat/docs/sdk/react-native/ui-components/thread-list/) because it depends on [`ThreadsContext`](https://getstream.io/chat/docs/sdk/react-native/contexts/threads-context/).

## Best Practices

- Use `useThreadListItemContext` inside thread list items only.
- Keep per-item rendering lightweight to preserve scroll performance.
- Use `dateString` for consistent timestamps.
- Handle `ownUnreadMessageCount` as a badge, not a control.
- Avoid extra API calls; use the provided `thread` and `parentMessage`.

## Basic Usage

Consume `ThreadListItemContext` in any child of `ThreadList`:

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

const value = useContext(ThreadListItemContext);
```

Alternatively, use the `useThreadListItemContext` hook.

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

const value = useThreadListItemContext();
```

## Values

| Value                   | Description                                                                                                                                       | Type                                                |
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------- |
| `channel`               | Channel instance from the Stream Chat client.                                                                                                     | [Channel](https://getstream.io/chat/docs/javascript/creating-channels/) |
| `dateString`            | A formatted date string for the thread timestamp. Default format: `HH:MM`.                                                                        | `string \| number \| undefined`                     |
| `deletedAtDateString`   | A formatted date string for when the thread's parent message was deleted.                                                                         | `string \| number \| undefined`                     |
| `draftMessage`          | The thread's saved draft reply, if one exists.                                                                                                    | `DraftMessage \| undefined`                         |
| `lastReply`             | Latest reply message in the thread.                                                                                                               | `LocalMessage`                                      |
| `ownUnreadMessageCount` | Unread message count for the thread.                                                                                                              | `number`                                            |
| `parentMessage`         | Parent message of the thread.                                                                                                                     | `LocalMessage`                                      |
| `thread`                | Instance of [`Thread`](https://github.com/GetStream/stream-chat-js/blob/master/src/thread.ts) used to read more data or pass to `onThreadSelect`. | `Thread`                                            |

---

For the most recent version of this documentation, visit [https://getstream.io/chat/docs/sdk/react-native/contexts/thread-list-item-context/](https://getstream.io/chat/docs/sdk/react-native/contexts/thread-list-item-context/).