import { useMemo } from 'react'; import type { ChatContextValue } from '../../../contexts/chatContext/ChatContext'; export const useCreateChatContext = ({ appSettings, channel, client, connectionRecovering, enableOfflineSupport, isMessageAIGenerated, isOnline, mutedUsers, setActiveChannel, }: ChatContextValue) => { const channelId = channel?.id; const clientValues = client ? `${client.clientID}${Object.keys(client.activeChannels).length}${ Object.keys(client.listeners).length }${client.mutedChannels.length}` : 'Offline'; const mutedUsersLength = mutedUsers.length; const chatContext: ChatContextValue = useMemo( () => ({ appSettings, channel, client, connectionRecovering, enableOfflineSupport, isMessageAIGenerated, isOnline, mutedUsers, setActiveChannel, }), // eslint-disable-next-line react-hooks/exhaustive-deps [appSettings, channelId, clientValues, connectionRecovering, isOnline, mutedUsersLength], ); return chatContext; };