@ably/chat
Version:
Ably Chat is a set of purpose-built APIs for a host of chat features enabling you to create 1:1, 1:Many, Many:1 and Many:Many chat rooms for any scale. It is designed to meet a wide range of chat use cases, such as livestreams, in-game communication, cust
31 lines (27 loc) • 1.12 kB
text/typescript
import { useMemo } from 'react';
import { Logger } from '../../../core/logger.js';
import { useChatClientContext } from './use-chat-client-context.js';
import { useRoomContext } from './use-room-context.js';
/**
* A hook that provides access to the {@link Logger} instance of the {@link ChatClient}.
* It will use the instance belonging to the {@link ChatClient} in the nearest {@link ChatClientProvider} in the component tree.
* @internal
* @returns Logger - The logger instance.
*/
export const useLogger = (): Logger => {
const chatClient = useChatClientContext();
return useMemo(() => (chatClient as unknown as { logger: Logger }).logger, [chatClient]);
};
/**
* A hook that returns a logger with the room context pre-applied.
* @internal
* @returns Logger - The logger instance.
*/
export const useRoomLogger = (): Logger => {
const roomContext = useRoomContext('useRoomLogger');
const chatClient = useChatClientContext();
return useMemo(
() => (chatClient as unknown as { logger: Logger }).logger.withContext({ roomName: roomContext.roomName }),
[chatClient, roomContext],
);
};