@replyke/core
Version:
Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.
46 lines • 1.9 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const useChatMessages_1 = __importDefault(require("./messages/useChatMessages"));
const useSendMessage_1 = __importDefault(require("./messages/useSendMessage"));
const useConversationMembers_1 = __importDefault(require("./conversations/useConversationMembers"));
const useMarkConversationAsRead_1 = __importDefault(require("./useMarkConversationAsRead"));
const useTypingIndicator_1 = __importDefault(require("./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 } = (0, useChatMessages_1.default)({
conversationId,
});
const send = (0, useSendMessage_1.default)({ conversationId });
const { members, loading: membersLoading, addMember, removeMember, leave, changeRole, upsertMember, removeMemberLocally, } = (0, useConversationMembers_1.default)({ conversationId });
const mark = (0, useMarkConversationAsRead_1.default)({ conversationId });
const { typingUsers, startTyping, stopTyping } = (0, useTypingIndicator_1.default)({
conversationId,
});
return {
messages,
messagesLoading,
hasMore,
loadOlder,
send,
members,
membersLoading,
addMember,
removeMember,
leave,
changeRole,
upsertMember,
removeMemberLocally,
mark,
typingUsers,
startTyping,
stopTyping,
};
}
exports.default = useConversationData;
//# sourceMappingURL=useConversationData.js.map