# useNotifications

`useNotifications` returns a live list from the client notification store. It re-renders the consumer when notifications are added, removed, or updated, and can optionally filter to an exact notification target.

## Usage

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

const notifications = useNotifications({
  filter: (n) => n.severity === "error",
});
```

By default (no `target` and no `requireTarget: true`), the hook returns every notification in the store. This is useful for global analytics or debug views. Pass an exact `target` to scope to a specific channel, thread, channel list, or thread list. This hook does not infer `NotificationTargetProvider` context on its own; use [`useNotificationTargetContext`](/chat/docs/sdk/react-native/ui-components/in-app-notifications/notification-target-context/#usenotificationtargetcontext) or [`useResolvedNotificationTarget`](/chat/docs/sdk/react-native/ui-components/in-app-notifications/notification-target-context/#useresolvednotificationtarget) when you need the surrounding target.

## Options

| Option          | Type                                                 | Description                                                                                                                                                                                                                                                  |
| --------------- | ---------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `filter`        | `(notification: Notification) => boolean`            | Predicate run after target filtering. Returns the notifications you want to read.                                                                                                                                                                            |
| `requireTarget` | `boolean`                                            | When `true`, return an empty array if no `target` is provided. Used by `NotificationList` to guarantee panel-scoped reads even when the call site has no context.                                                                                            |
| `target`        | `{ hostId: string; panel: NotificationTargetPanel }` | Restrict results to notifications tagged for this exact target. Use [`useResolvedNotificationTarget`](/chat/docs/sdk/react-native/ui-components/in-app-notifications/notification-target-context/#useresolvednotificationtarget) to derive one from context. |

## Returns

`Notification[]`: a stable reference that changes when the matching notifications change. See the [`Notification` type in `stream-chat`](https://github.com/GetStream/stream-chat-js/blob/master/src/notifications/types.ts) for the full shape.

## Related

- [`useSystemNotifications`](/chat/docs/sdk/react-native/ui-components/in-app-notifications/hooks/use-system-notifications/) reads only notifications tagged `system`.
- [`useNotificationListController`](/chat/docs/sdk/react-native/ui-components/in-app-notifications/hooks/use-notification-list-controller/) wraps `useNotifications` with snackbar selection + timeout logic.


---

This page was last updated at 2026-05-14T07:09:01.206Z.

For the most recent version of this documentation, visit [https://getstream.io/chat/docs/sdk/react-native/ui-components/in-app-notifications/hooks/use-notifications/](https://getstream.io/chat/docs/sdk/react-native/ui-components/in-app-notifications/hooks/use-notifications/).