# usePresenceListener
The `usePresenceListener` hook provides live presence information for all users in a room. It automatically subscribes to presence events and maintains an up-to-date roster of presence members. Use [`usePresence`](https://ably.com/docs/chat/api/react/use-presence.md) to manage the current user's own presence state.
#### React
```
import { usePresenceListener } from '@ably/chat/react';
const MyComponent = () => {
const { presenceData } = usePresenceListener();
return (
This hook must be used within a [`ChatRoomProvider`](https://ably.com/docs/chat/api/react/providers.md#chatRoomProvider).
## Parameters
The `usePresenceListener` hook accepts an optional configuration object:
{presenceData.map((member) => (
);
};
```
### React
```
import { PresenceEventType } from '@ably/chat';
import { usePresenceListener } from '@ably/chat/react';
function OnlineUsers() {
const { presenceData, error } = usePresenceListener({
listener: (event) => {
switch (event.type) {
case PresenceEventType.Enter:
console.log(`${event.member.clientId} joined`);
break;
case PresenceEventType.Leave:
console.log(`${event.member.clientId} left`);
break;
case PresenceEventType.Update:
console.log(`${event.member.clientId} updated their status`);
break;
}
},
});
if (error) {
return Error loading presence: {error.message}
;
}
return (
Online ({presenceData.length})
{presenceData.map((member) => (
-
{member.clientId}
{member.data?.status && ` (${member.data.status})`}
))}
);
}
```
## Related Topics
- [Providers](https://ably.com/docs/chat/api/react/providers.md): API reference for the ChatClientProvider and ChatRoomProvider components in the Ably Chat React SDK.
- [useChatClient](https://ably.com/docs/chat/api/react/use-chat-client.md): API reference for the useChatClient hook in the Ably Chat React SDK.
- [useChatConnection](https://ably.com/docs/chat/api/react/use-chat-connection.md): API reference for the useChatConnection hook in the Ably Chat React SDK.
- [useRoom](https://ably.com/docs/chat/api/react/use-room.md): API reference for the useRoom hook in the Ably Chat React SDK.
- [useMessages](https://ably.com/docs/chat/api/react/use-messages.md): API reference for the useMessages hook in the Ably Chat React SDK.
- [usePresence](https://ably.com/docs/chat/api/react/use-presence.md): API reference for the usePresence hook in the Ably Chat React SDK.
- [useOccupancy](https://ably.com/docs/chat/api/react/use-occupancy.md): API reference for the useOccupancy hook in the Ably Chat React SDK.
- [useTyping](https://ably.com/docs/chat/api/react/use-typing.md): API reference for the useTyping hook in the Ably Chat React SDK.
- [useRoomReactions](https://ably.com/docs/chat/api/react/use-room-reactions.md): API reference for the useRoomReactions hook in the Ably Chat React SDK.
## Documentation Index
To discover additional Ably documentation:
1. Fetch [llms.txt](https://ably.com/llms.txt) for the canonical list of available pages.
2. Identify relevant URLs from that index.
3. Fetch target pages as needed.
Avoid using assumed or outdated documentation paths.