stream-chat-react
Version:
React components to create chat conversations or livestream style chat
41 lines (40 loc) • 1.47 kB
JavaScript
import { useMemo } from 'react';
export const useCreateChatContext = (value) => {
const { channel, channelsQueryState, client, closeMobileNav, customClasses, getAppSettings, isMessageAIGenerated, latestMessageDatesByChannels, mutes, navOpen, openMobileNav, searchController, setActiveChannel, theme, useImageFlagEmojisOnWindows, } = value;
const channelCid = channel?.cid;
const channelsQueryError = channelsQueryState.error;
const channelsQueryInProgress = channelsQueryState.queryInProgress;
const clientValues = `${client.clientID}${Object.keys(client.activeChannels).length}${Object.keys(client.listeners).length}${client.mutedChannels.length}
${client.user?.id}`;
const mutedUsersLength = mutes.length;
const chatContext = useMemo(() => ({
channel,
channelsQueryState,
client,
closeMobileNav,
customClasses,
getAppSettings,
isMessageAIGenerated,
latestMessageDatesByChannels,
mutes,
navOpen,
openMobileNav,
searchController,
setActiveChannel,
theme,
useImageFlagEmojisOnWindows,
}),
// eslint-disable-next-line react-hooks/exhaustive-deps
[
channelCid,
channelsQueryError,
channelsQueryInProgress,
clientValues,
getAppSettings,
searchController,
mutedUsersLength,
navOpen,
isMessageAIGenerated,
]);
return chatContext;
};