@cometchat/chat-uikit-react-native
Version:
Ready-to-use Chat UI Components for React Native
153 lines (134 loc) • 4.48 kB
text/typescript
import { CometChat } from "@cometchat/chat-sdk-react-native";
import {
CometChatConversationEvents,
CometChatGroupsEvents,
CometChatUIEvents,
MessageEvents,
} from "../events";
import { CometChatUIEventHandler } from "../events/CometChatUIEventHandler/CometChatUIEventHandler";
export class CometChatUIKitHelper {
//---------- Message Events ----------
static onMessageSent(message: CometChat.BaseMessage, status: string): void {
CometChatUIEventHandler.emitMessageEvent(MessageEvents.ccMessageSent, { message, status });
}
static onMessageEdited(message: CometChat.BaseMessage, status: string): void {
CometChatUIEventHandler.emitMessageEvent(MessageEvents.ccMessageEdited, { message, status });
}
static onMessageDeleted(message: CometChat.BaseMessage): void {
CometChatUIEventHandler.emitMessageEvent(MessageEvents.ccMessageDeleted, { message });
}
static onMessageRead(message: CometChat.BaseMessage): void {
CometChatUIEventHandler.emitMessageEvent(MessageEvents.ccMessageRead, { message });
}
//---------- User Events ----------
static onUserBlocked(user: CometChat.User): void {
CometChatUIEventHandler.emitUserEvent(CometChatUIEvents.ccUserBlocked, { user });
}
static onUserUnblocked(user: CometChat.User): void {
CometChatUIEventHandler.emitUserEvent(CometChatUIEvents.ccUserUnBlocked, { user });
}
//---------- Group Events ----------
static onGroupCreated(group: CometChat.Group): void {
CometChatUIEventHandler.emitGroupEvent(CometChatGroupsEvents.ccGroupCreated, { group });
}
static onGroupDeleted(group: CometChat.Group): void {
CometChatUIEventHandler.emitGroupEvent(CometChatGroupsEvents.ccGroupDeleted, { group });
}
static onGroupLeft(
message: CometChat.Action,
leftUser: CometChat.User,
leftGroup: CometChat.Group
): void {
CometChatUIEventHandler.emitGroupEvent(CometChatUIEvents.ccGroupLeft, {
message,
leftUser,
leftGroup,
});
}
static onGroupMemberScopeChanged(
message: CometChat.Action,
updatedUser: CometChat.User,
scopeChangedTo: string,
scopeChangedFrom: string,
group: CometChat.Group
): void {
CometChatUIEventHandler.emitGroupEvent(CometChatGroupsEvents.ccGroupMemberScopeChanged, {
message,
updatedUser,
scopeChangedTo,
scopeChangedFrom,
group,
});
}
static onGroupMemberBanned(
message: CometChat.Action,
bannedUser: CometChat.User,
bannedBy: CometChat.User,
bannedFrom: CometChat.Group
): void {
CometChatUIEventHandler.emitGroupEvent(CometChatGroupsEvents.ccGroupMemberBanned, {
message,
bannedUser,
bannedBy,
group: bannedFrom,
});
}
static onGroupMemberKicked(
message: CometChat.Action,
kickedUser: CometChat.User,
kickedBy: CometChat.User,
kickedFrom: CometChat.Group
): void {
CometChatUIEventHandler.emitGroupEvent(CometChatGroupsEvents.ccGroupMemberKicked, {
message,
kickedUser,
kickedBy,
group: kickedFrom,
});
}
static onGroupMemberUnbanned(
message: CometChat.Action,
unbannedUser: CometChat.User,
unbannedBy: CometChat.User,
unbannedFrom: CometChat.Group
): void {
CometChatUIEventHandler.emitGroupEvent(CometChatUIEvents.ccGroupMemberUnBanned, {
message,
unbannedUser,
unbannedBy,
unbannedFrom,
});
}
static onGroupMemberJoined(joinedUser: CometChat.User, joinedGroup: CometChat.Group): void {
CometChatUIEventHandler.emitGroupEvent(CometChatUIEvents.ccGroupMemberJoined, {
joinedUser,
joinedGroup,
});
}
static onGroupMemberAdded(
messages: CometChat.Action[],
usersAdded: CometChat.User[],
groupAddedIn: CometChat.Group,
addedBy: CometChat.User
): void {
CometChatUIEventHandler.emitGroupEvent(CometChatUIEvents.ccGroupMemberAdded, {
messages,
usersAdded,
usersAddedIn: groupAddedIn,
addedBy,
});
}
static onOwnershipChanged(group: CometChat.Group, newOwner: CometChat.GroupMember): void {
CometChatUIEventHandler.emitGroupEvent(CometChatUIEvents.ccOwnershipChanged, {
group,
newOwner,
});
}
//---------- Conversation Events ----------
static onConversationDeleted(conversation: CometChat.Conversation): void {
CometChatUIEventHandler.emitConversationEvent(
CometChatConversationEvents.ccConversationDeleted,
{ conversation }
);
}
}