@replyke/core
Version:
Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.
34 lines (33 loc) • 1.48 kB
TypeScript
import { SendMessageParams } from "./messages/useSendMessage";
import { UseConversationMembersValues } from "./conversations/useConversationMembers";
import { ChatMessage } from "../../interfaces/models/ChatMessage";
export interface UseConversationDataProps {
conversationId: string;
}
export interface UseConversationDataValues {
messages: ChatMessage[];
messagesLoading: boolean;
hasMore: boolean;
loadOlder: () => Promise<void>;
send: (params: SendMessageParams) => Promise<ChatMessage>;
members: UseConversationMembersValues["members"];
membersLoading: UseConversationMembersValues["loading"];
addMember: UseConversationMembersValues["addMember"];
removeMember: UseConversationMembersValues["removeMember"];
leave: UseConversationMembersValues["leave"];
changeRole: UseConversationMembersValues["changeRole"];
upsertMember: UseConversationMembersValues["upsertMember"];
removeMemberLocally: UseConversationMembersValues["removeMemberLocally"];
mark: ({ messageId }: {
messageId: string;
}) => Promise<void>;
typingUsers: string[];
startTyping: () => void;
stopTyping: () => void;
}
/**
* High-level composition hook that powers ConversationProvider.
* Combines messages, send, members, read-state, and typing indicators into one object.
*/
declare function useConversationData({ conversationId, }: UseConversationDataProps): UseConversationDataValues;
export default useConversationData;