cometchat-react-ui-kit2
Version:
CometChat UI Kit for React App
113 lines (112 loc) • 6.21 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.ConversationListManager = void 0;
var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _chat = require("@cometchat-pro/chat");
var _UIKitConstants = require("../../Shared/Constants/UIKitConstants");
var ConversationListManager = /*#__PURE__*/function () {
function ConversationListManager(_ref) {
var _ref$conversationType = _ref.conversationType,
conversationType = _ref$conversationType === void 0 ? "both" : _ref$conversationType,
_ref$limit = _ref.limit,
limit = _ref$limit === void 0 ? 30 : _ref$limit,
_ref$tags = _ref.tags,
tags = _ref$tags === void 0 ? [] : _ref$tags,
_ref$userAndGroupTags = _ref.userAndGroupTags,
userAndGroupTags = _ref$userAndGroupTags === void 0 ? false : _ref$userAndGroupTags;
(0, _classCallCheck2["default"])(this, ConversationListManager);
(0, _defineProperty2["default"])(this, "conversationRequest", null);
(0, _defineProperty2["default"])(this, "conversationListenerId", "chatlist_" + new Date().getTime());
(0, _defineProperty2["default"])(this, "userListenerId", "chatlist_user_" + new Date().getTime());
(0, _defineProperty2["default"])(this, "groupListenerId", "chatlist_group_" + new Date().getTime());
switch (conversationType) {
case _UIKitConstants.ConversationTypeConstants[_UIKitConstants.ConversationTypeConstants.users]:
this.conversationRequest = new _chat.CometChat.ConversationsRequestBuilder().setConversationType(conversationType).setLimit(limit).withTags(tags.length === 0 ? false : true).setTags(tags).withUserAndGroupTags(userAndGroupTags).build();
break;
case _UIKitConstants.ConversationTypeConstants[_UIKitConstants.ConversationTypeConstants.groups]:
this.conversationRequest = new _chat.CometChat.ConversationsRequestBuilder().setConversationType(conversationType).setLimit(limit).withTags(tags.length === 0 ? false : true).setTags(tags).withUserAndGroupTags(userAndGroupTags).build();
break;
default:
this.conversationRequest = new _chat.CometChat.ConversationsRequestBuilder().setLimit(limit).withTags(tags.length === 0 ? false : true).setTags(tags).withUserAndGroupTags(userAndGroupTags).build();
break;
}
}
(0, _createClass2["default"])(ConversationListManager, [{
key: "fetchNextConversation",
value: function fetchNextConversation() {
return this.conversationRequest.fetchNext();
}
}, {
key: "attachListeners",
value: function attachListeners(callback) {
_chat.CometChat.addUserListener(this.userListenerId, new _chat.CometChat.UserListener({
onUserOnline: function onUserOnline(onlineUser) {
callback("onUserOnline", onlineUser);
},
onUserOffline: function onUserOffline(offlineUser) {
callback("onUserOffline", offlineUser);
}
}));
_chat.CometChat.addGroupListener(this.groupListenerId, new _chat.CometChat.GroupListener({
onGroupMemberScopeChanged: function onGroupMemberScopeChanged(message, changedUser, newScope, oldScope, changedGroup) {
callback("onGroupMemberScopeChanged", message, changedUser, newScope, oldScope, changedGroup);
},
onGroupMemberKicked: function onGroupMemberKicked(message, kickedUser, kickedBy, kickedFrom) {
callback("onGroupMemberKicked", message, kickedUser, kickedBy, kickedFrom);
},
onGroupMemberLeft: function onGroupMemberLeft(message, leavingUser, group) {
callback("onGroupMemberLeft", message, leavingUser, null, group);
},
onGroupMemberBanned: function onGroupMemberBanned(message, bannedUser, bannedBy, bannedFrom) {
callback("onGroupMemberBanned", message, bannedUser, bannedBy, bannedFrom);
},
onMemberAddedToGroup: function onMemberAddedToGroup(message, userAdded, userAddedBy, userAddedIn) {
callback("onMemberAddedToGroup", message, userAdded, userAddedBy, userAddedIn);
},
onGroupMemberJoined: function onGroupMemberJoined(message, joinedUser, joinedGroup) {
callback("onGroupMemberJoined", message, joinedUser, null, joinedGroup);
}
}));
_chat.CometChat.addMessageListener(this.conversationListenerId, new _chat.CometChat.MessageListener({
onTextMessageReceived: function onTextMessageReceived(textMessage) {
callback("onTextMessageReceived", textMessage);
},
onMediaMessageReceived: function onMediaMessageReceived(mediaMessage) {
callback("onMediaMessageReceived", mediaMessage);
},
onCustomMessageReceived: function onCustomMessageReceived(customMessage) {
callback("onCustomMessageReceived", customMessage);
},
onMessageDeleted: function onMessageDeleted(deletedMessage) {
callback("onMessageDeleted", deletedMessage);
},
onMessageEdited: function onMessageEdited(editedMessage) {
callback("onMessageEdited", editedMessage);
},
onMessagesRead: function onMessagesRead(messageReceipt) {
callback("onMessagesRead", messageReceipt);
},
onTypingStarted: function onTypingStarted(typingIndicator) {
callback("onTypingStarted", typingIndicator, true);
},
onTypingEnded: function onTypingEnded(typingIndicator) {
callback("onTypingEnded", typingIndicator, false);
}
}));
}
}, {
key: "removeListeners",
value: function removeListeners() {
_chat.CometChat.removeMessageListener(this.conversationListenerId);
_chat.CometChat.removeUserListener(this.userListenerId);
_chat.CometChat.removeGroupListener(this.groupListenerId);
}
}]);
return ConversationListManager;
}();
exports.ConversationListManager = ConversationListManager;