@replyke/core
Version:
Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.
41 lines • 1.49 kB
JavaScript
import useChatMessages from "./messages/useChatMessages";
import useSendMessage from "./messages/useSendMessage";
import useConversationMembers from "./conversations/useConversationMembers";
import useMarkConversationAsRead from "./useMarkConversationAsRead";
import useTypingIndicator from "./useTypingIndicator";
/**
* High-level composition hook that powers ConversationProvider.
* Combines messages, send, members, read-state, and typing indicators into one object.
*/
function useConversationData({ conversationId, }) {
const { messages, loading: messagesLoading, hasMore, loadOlder } = useChatMessages({
conversationId,
});
const send = useSendMessage({ conversationId });
const { members, loading: membersLoading, addMember, removeMember, leave, changeRole, upsertMember, removeMemberLocally, } = useConversationMembers({ conversationId });
const mark = useMarkConversationAsRead({ conversationId });
const { typingUsers, startTyping, stopTyping } = useTypingIndicator({
conversationId,
});
return {
messages,
messagesLoading,
hasMore,
loadOlder,
send,
members,
membersLoading,
addMember,
removeMember,
leave,
changeRole,
upsertMember,
removeMemberLocally,
mark,
typingUsers,
startTyping,
stopTyping,
};
}
export default useConversationData;
//# sourceMappingURL=useConversationData.js.map