@replyke/core
Version:
Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.
28 lines (27 loc) • 1.04 kB
TypeScript
import { ConversationMember } from "../../../interfaces/models/ConversationMember";
export interface UseConversationMembersProps {
conversationId: string;
}
export interface UseConversationMembersValues {
members: ConversationMember[];
loading: boolean;
addMember: ({ userId }: {
userId: string;
}) => Promise<void>;
removeMember: ({ userId }: {
userId: string;
}) => Promise<void>;
leave: () => Promise<void>;
changeRole: ({ userId, role }: {
userId: string;
role: "admin" | "member";
}) => Promise<void>;
/** Upsert a member into the local list (for real-time socket updates). */
upsertMember: (member: ConversationMember) => void;
/** Remove a member from the local list by userId (for real-time socket updates). */
removeMemberLocally: ({ userId }: {
userId: string;
}) => void;
}
declare function useConversationMembers({ conversationId, }: UseConversationMembersProps): UseConversationMembersValues;
export default useConversationMembers;