{"version":3,"sources":["Context.js","logo_white.png","components/Header.js","components/Modal.js","firebase.js","components/AddressPicker.js","components/RequestRide.js","components/RideList.js","components/RideDetail.js","components/Home.js","components/SignUp.js","logo_black.png","components/Login.js","components/Loading.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/util/enums.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Calls/CometChatIncomingCall/controller.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/resources/theme.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Shared/CometChatAvatar/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Shared/CometChatAvatar/resources/1px.png","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Shared/CometChatAvatar/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Shared/CometChatBackdrop/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Shared/CometChatBackdrop/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Shared/CometChatBadgeCount/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Shared/CometChatBadgeCount/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Shared/CometChatUserPresence/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Shared/CometChatUserPresence/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/resources/localization/translator.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Shared/CometChatToastNotification/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Shared/CometChatToastNotification/resources/close-circle-filled.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Shared/CometChatToastNotification/resources/checkmark-filled.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Shared/CometChatToastNotification/resources/warning-filled.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Shared/CometChatToastNotification/resources/info-filled.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Shared/CometChatToastNotification/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Shared/CometChatConfirmDialog/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Shared/CometChatConfirmDialog/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/util/UIKitSettings.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/util/FeatureRestriction/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/util/CometChatContext.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/util/Storage.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Calls/CometChatCallScreen/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Calls/CometChatCallScreen/resources/reduce-size.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Calls/CometChatCallScreen/resources/increase-size.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Calls/CometChatCallScreen/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/util/SoundManager.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Calls/CometChatIncomingCall/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Calls/CometChatIncomingCall/resources/incoming-call.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Calls/CometChatIncomingCall/resources/incoming-video-call.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Calls/CometChatIncomingCall/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Calls/CometChatOutgoingCall/controller.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Calls/CometChatOutgoingCall/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Calls/CometChatOutgoingCall/resources/end-call.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Calls/CometChatOutgoingCall/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Calls/CometChatIncomingDirectCall/controller.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Calls/CometChatIncomingDirectCall/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Calls/CometChatIncomingDirectCall/resources/incoming-video-call.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Calls/CometChatIncomingDirectCall/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/util/common.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Calls/CometChatOutgoingDirectCall/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Chats/CometChatConversationList/controller.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/util/CometChatEvent.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Chats/CometChatConversationList/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Chats/CometChatConversationList/resources/back.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Chats/CometChatConversationList/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Chats/CometChatConversationListActions/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Chats/CometChatConversationListActions/resources/progress.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Chats/CometChatConversationListActions/resources/delete.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Chats/CometChatConversationListActions/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Chats/CometChatConversationListItem/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Chats/CometChatConversationListItem/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatSmartReplyPreview/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatSmartReplyPreview/resources/close.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatSmartReplyPreview/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatStickerKeyboard/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatStickerKeyboard/resources/close.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatStickerKeyboard/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatMessageReactions/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatMessageReactions/resources/reactions.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatMessageReactions/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatCreatePoll/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatCreatePoll/resources/creating.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatCreatePoll/resources/add-circle-filled.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatCreatePoll/resources/close.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatCreatePoll/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatCreatePollOptions/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatCreatePollOptions/resources/remove.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatCreatePollOptions/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatReceiverDocumentBubble/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatReceiverDocumentBubble/resources/collaborative-document.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatReceiverDocumentBubble/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatReceiverPollMessageBubble/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatReceiverPollMessageBubble/resources/checkmark.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatReceiverPollMessageBubble/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatReceiverStickerMessageBubble/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatReceiverStickerMessageBubble/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatReceiverWhiteboardBubble/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatReceiverWhiteboardBubble/resources/collaborative-whiteboard.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatReceiverWhiteboardBubble/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatSenderDocumentBubble/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatSenderDocumentBubble/resources/collaborative-document.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatSenderDocumentBubble/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatSenderPollMessageBubble/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatSenderPollMessageBubble/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatSenderStickerBubble/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatSenderStickerBubble/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatSenderWhiteboardBubble/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatSenderWhiteboardBubble/resources/collaborative-whiteboard.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/Extensions/CometChatSenderWhiteboardBubble/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatActionMessageBubble/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatActionMessageBubble/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatDeleteMessageBubble/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatDeleteMessageBubble/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatEmojiKeyboard/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatEmojiKeyboard/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatImageViewer/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatImageViewer/resources/ring.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatImageViewer/resources/close.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatImageViewer/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatLinkPreview/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatLinkPreview/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatLiveReactions/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatLiveReactions/resources/heart.png","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatLiveReactions/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageActions/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageActions/resources/threaded-message.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageActions/resources/delete.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageActions/resources/edit.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageActions/resources/reactions.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageActions/resources/message-translate.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageActions/resources/send-message-in-private.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageActions/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageComposer/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageComposer/resources/add-circle-filled.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageComposer/resources/video.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageComposer/resources/audio-file.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageComposer/resources/file-upload.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageComposer/resources/image.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageComposer/resources/emoji.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageComposer/resources/send-message.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageComposer/resources/polls.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageComposer/resources/stickers.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageComposer/resources/close.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageComposer/resources/collaborative-document.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageComposer/resources/collaborative-whiteboard.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageComposer/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageComposer/resources/heart.png","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageHeader/controller.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageHeader/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageHeader/resources/menu.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageHeader/resources/audio-call.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageHeader/resources/video-call.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageHeader/resources/info.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageHeader/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageList/MessageFilter.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageList/controller.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageList/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageList/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Shared/CometChatSharedMediaView/controller.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Shared/CometChatSharedMediaView/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Shared/CometChatSharedMediaView/resources/file-upload.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Shared/CometChatSharedMediaView/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Users/CometChatUserDetails/controller.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Users/CometChatUserDetails/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Users/CometChatUserDetails/resources/back.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Users/CometChatUserDetails/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Users/CometChatUserList/controller.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Users/CometChatUserList/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Users/CometChatUserList/resources/search.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Users/CometChatUserList/resources/back.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Users/CometChatUserList/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Users/CometChatUserListItem/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Users/CometChatUserListItem/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Users/CometChatUserListWithMessages/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Users/CometChatUserListWithMessages/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatCreateGroup/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatCreateGroup/resources/creating.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatCreateGroup/resources/close.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatCreateGroup/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatGroupDetails/controller.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatGroupDetails/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatGroupDetails/resources/back.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatGroupDetails/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatGroupList/controller.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatGroupList/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatGroupList/resources/search.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatGroupList/resources/back.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatGroupList/resources/create.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatGroupList/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatGroupListItem/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatGroupListItem/resources/password-protected-group.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatGroupListItem/resources/private-group.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatGroupListItem/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatViewGroupMemberList/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatViewGroupMemberList/resources/close.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatViewGroupMemberList/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatViewGroupMemberListItem/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatViewGroupMemberListItem/resources/edit.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatViewGroupMemberListItem/resources/done.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatViewGroupMemberListItem/resources/close.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatViewGroupMemberListItem/resources/ban-member.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatViewGroupMemberListItem/resources/delete.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatViewGroupMemberListItem/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatAddGroupMemberList/controller.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatAddGroupMemberList/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatAddGroupMemberList/resources/adding.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatAddGroupMemberList/resources/search.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatAddGroupMemberList/resources/close.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatAddGroupMemberList/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatAddGroupMemberListItem/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatAddGroupMemberListItem/resources/group-member-unselect.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatAddGroupMemberListItem/resources/group-member-select.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatAddGroupMemberListItem/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatBanGroupMemberList/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatBanGroupMemberList/resources/close.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatBanGroupMemberList/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatBanGroupMemberListItem/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatBanGroupMemberListItem/resources/ban-member.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatBanGroupMemberListItem/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatGroupListWithMessages/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatGroupListWithMessages/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatTransferOwnershipMemberList/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatTransferOwnershipMemberList/resources/close.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatTransferOwnershipMemberList/resources/transferring.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatTransferOwnershipMemberList/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatTransferOwnershipMemberListItem/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatTransferOwnershipMemberListItem/resources/group-member-unselect.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatTransferOwnershipMemberListItem/resources/group-member-select.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Groups/CometChatTransferOwnershipMemberListItem/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessages/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessages/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageThread/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageThread/resources/close.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatMessageThread/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatReadReceipt/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatReadReceipt/resources/message-read.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatReadReceipt/resources/message-delivered.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatReadReceipt/resources/message-sent.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatReadReceipt/resources/wait.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatReadReceipt/resources/warning-small.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatReadReceipt/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatReceiverAudioMessageBubble/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatReceiverAudioMessageBubble/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatReceiverDirectCallBubble/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatReceiverDirectCallBubble/resources/video-call.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatReceiverDirectCallBubble/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatReceiverFileMessageBubble/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatReceiverFileMessageBubble/resources/file-upload.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatReceiverFileMessageBubble/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatReceiverImageMessageBubble/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatReceiverImageMessageBubble/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatReceiverImageMessageBubble/resources/1px.png","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatReceiverTextMessageBubble/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatReceiverTextMessageBubble/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatReceiverVideoMessageBubble/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatReceiverVideoMessageBubble/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatSenderAudioMessageBubble/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatSenderAudioMessageBubble/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatSenderDirectCallBubble/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatSenderDirectCallBubble/resources/video-call.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatSenderDirectCallBubble/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatSenderFileMessageBubble/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatSenderFileMessageBubble/resources/file-upload.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatSenderFileMessageBubble/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatSenderImageMessageBubble/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatSenderImageMessageBubble/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatSenderImageMessageBubble/resources/1px.png","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatSenderTextMessageBubble/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatSenderTextMessageBubble/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatSenderVideoMessageBubble/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatSenderVideoMessageBubble/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatThreadedMessageReplyCount/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Messages/CometChatThreadedMessageReplyCount/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Chats/CometChatConversationListWithMessages/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/Chats/CometChatConversationListWithMessages/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/UserProfile/CometChatUserProfile/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/UserProfile/CometChatUserProfile/resources/notify.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/UserProfile/CometChatUserProfile/resources/privacy.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/UserProfile/CometChatUserProfile/resources/chats.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/UserProfile/CometChatUserProfile/resources/help.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/UserProfile/CometChatUserProfile/resources/warning.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/UserProfile/CometChatUserProfile/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/CometChatUI/CometChatNavBar/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/CometChatUI/CometChatNavBar/resources/chats.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/CometChatUI/CometChatNavBar/resources/users.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/CometChatUI/CometChatNavBar/resources/groups.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/CometChatUI/CometChatNavBar/resources/more.svg","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/CometChatUI/CometChatNavBar/index.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/CometChatUI/style.js","cometchat-pro-react-ui-kit/CometChatWorkspace/src/components/CometChatUI/index.js","components/Chat.js","components/PrivateRoute.js","App.js","index.js"],"names":["React","createContext","Header","useContext","Context","user","setUser","history","useHistory","className","src","logoWhite","alt","avatar","email","onClick","window","confirm","localStorage","removeItem","push","withModal","ModalComponent","WrapperComponent","useState","isModalShown","setIsModalShown","toggleModal","firebaseConfig","apiKey","process","authDomain","databaseURL","projectId","REACT_APP_FIREBASE_PROJECT_ID","storageBucket","messagingSenderId","REACT_APP_FIREABSE_MESSAGING_SENDER_ID","appId","REACT_APP_FIREBASE_APP_ID","app","firebase","apps","length","initializeApp","realTimeDb","database","auth","firestore","storage","props","selectedFrom","selectedTo","setRideRequest","setIsLoading","rideUuid","uuidv4","ride","ref","set","then","catch","isFrom","setIsFrom","searchResults","setSearchResults","setSelectedFrom","setSelectedTo","provider","useRef","searchRef","useEffect","initProvider","shouldRequestDriver","useCallback","current","OpenStreetMapProvider","params","countrycodes","label","type","placeholder","onChange","e","input","target","value","search","query","results","map","result","index","selectedLocation","x","y","title","viewBox","transform","fillRule","clipRule","d","opacity","RideList","rideRequests","setRideRequests","setCurrentRide","rideRef","child","orderByChild","equalTo","listener","on","snapshot","values","val","keys","Object","rides","key","off","request","pickup","destination","driver","status","setItem","JSON","stringify","acceptRide","RideDetail","isDriver","currentRide","updateRide","location","reload","phone","require","style","width","height","Home","routeControl","initMap","initRouteControl","drawRoute","from","to","shouldRouteDrawed","fromLatLng","L","LatLng","toLatLng","setWaypoints","center","zoom","layers","tileLayer","attribution","Routing","control","show","fitSelectedRoutes","plan","lineOptions","styles","color","weight","router","mapbox","REACT_APP_MAP_BOX_API_KEY","addTo","getPlan","id","isUser","role","requestor","renderSidebar","SignUp","emailRef","phoneRef","roleRef","passwordRef","confirmPasswordRef","cometChat","userRole","defaultValue","password","confirmPassword","validator","isEmail","isMobilePhone","isEmpty","alert","isLength","min","isSignupValid","userUuid","userAvatar","avatars","Math","floor","random","generateAvatar","createUserWithEmailAndPassword","userCrendentials","authKey","REACT_APP_COMETCHAT_AUTH_KEY","User","setName","setAvatar","createUser","error","console","log","logoBlack","isUserCredentialsValid","signInWithEmailAndPassword","userCredential","userEmail","login","Loading","TEXT_MESSAGE_RECEIVED","MEDIA_MESSAGE_RECEIVED","CUSTOM_MESSAGE_RECEIVED","MESSAGE_DELIVERED","MESSAGE_READ","MESSAGE_DELETED","MESSAGE_EDITED","TRANSIENT_MESSAGE_RECEIVED","INCOMING_CALL_RECEIVED","OUTGOING_CALL_ACCEPTED","OUTGOING_CALL_REJECTED","INCOMING_CALL_CANCELLED","GROUP_MEMBER_SCOPE_CHANGED","GROUP_MEMBER_KICKED","GROUP_MEMBER_BANNED","GROUP_MEMBER_UNBANNED","GROUP_MEMBER_ADDED","GROUP_MEMBER_LEFT","GROUP_MEMBER_JOINED","USER_ONLINE","USER_OFFLINE","TYPING_STARTED","TYPING_ENDED","CUSTOM_TYPE_POLL","CUSTOM_TYPE_STICKER","CUSTOM_TYPE_DOCUMENT","CUSTOM_TYPE_WHITEBOARD","CUSTOM_TYPE_MEETING","CONSTANTS","LOCALE","ACTIVECALL","MAX_MESSAGE_COUNT","METADATA_TYPE_LIVEREACTION","LIVE_REACTIONS","heart","thumbsup","clap","wink","MESSAGES_COMPONENT","EMBEDDED_COMPONENT","OUTGOING_DEFAULT_CALLING","INCOMING_DEFAULT_CALLING","INCOMING_DIRECT_CALLING","OUTGOING_DIRECT_CALLING","AUDIO","INCOMING_MESSAGE","INCOMING_OTHER_MESSAGE","OUTGOING_MESSAGE","INCOMING_CALL","OUTGOING_CALL","ERROR_CODES","ERR_CHAT_API_FAILURE","CALLS","ONGOING_CALL","ONGOING_CALL_SAME_GROUP","ONGOING_CALL_DIFF_GROUP","GROUPS","OWNER","LIVE_REACTION_INTERVAL","FILE_METADATA","ACTIONS","MESSAGE_SENT","MESSAGE_COMPOSED","ERROR_IN_SENDING_MESSAGE","ACCEPT_DIRECT_CALL","JOIN_DIRECT_CALL","START_DIRECT_CALL","DIRECT_CALL_ENDED","POLL_CREATED","GROUP_DELETED","GROUP_LEFT","GROUP_CREATED","VIEW_DETAIL","VIEW_THREADED_MESSAGE","CLOSE_THREADED_MESSAGE","TOGGLE_SIDEBAR","ON_MESSAGE_EDITED","ON_MESSAGE_DELETED","ON_MESSAGE_READ_DELIVERED","DELETE_MESSAGE","EDIT_MESSAGE","CLOSE_GROUP_DETAIL","CLOSE_USER_DETAIL","VIEW_ORIGINAL_IMAGE","FETCH_GROUP_MEMBERS","SCOPECHANGE_GROUPMEMBER_SUCCESS","BAN_GROUP_MEMBER","KICK_GROUP_MEMBER","BAN_GROUPMEMBER_SUCCESS","KICK_GROUPMEMBER_SUCCESS","CHANGE_SCOPE_GROUP_MEMBER","UNBAN_GROUP_MEMBER","ADD_GROUP_MEMBER_SUCCESS","FETCH_BANNED_GROUP_MEMBERS","UNBAN_GROUP_MEMBER_SUCCESS","REACT_TO_MESSAGE","INITIATE_VIDEO_CALL","INITIATE_AUDIO_CALL","CHANGE_TAB","ITEM_CLICKED","THREAD_MESSAGE_COMPOSED","SEND_LIVE_REACTION","STOP_LIVE_REACTION","SHOW_LIVE_REACTION","CLEAR_EDIT_PREVIEW","MESSAGE_RECEIVED","MESSAGES_INITIAL_FETCH","MESSAGES_FETCHED","REFRESHING_MESSAGES","MESSAGES_REFRESHED","NEW_MESSAGES","CLEAR_UNREAD_MESSAGES","START_AUDIO_CALL","START_VIDEO_CALL","OUTGOING_CALL_CANCELLED","INCOMING_CALL_ACCEPTED","INCOMING_CALL_REJECTED","CALL_ENDED","USER_JOINED_CALL","USER_LEFT_CALL","DELETE_CONVERSATION","CONVERSATION_DELETED","SEND_STICKER","CLOSE_STICKER_KEYBOARD","ERROR","INFO","TRANSLATE_MESSAGE","EVENTS","KEYS","CallAlertManager","callListenerId","Date","getTime","callback","CometChat","addCallListener","this","CallListener","onIncomingCallReceived","call","enums","onIncomingCallCancelled","onOutgoingCallAccepted","removeCallListener","theme","fontFamily","fontSize","primaryColor","secondaryTextColor","primary","secondary","darkSecondary","grey","helpText","blue","white","red","borderColor","backgroundColor","lightGrey","darkGrey","callScreenGrey","silver","breakPoints","CometChatAvatar","setAvatarImage","image","trim","getImage","hasOwnProperty","avatarImage","uid","char","name","charAt","toUpperCase","group","icon","guid","img","Image","onload","_isMounted","setState","generator","data","canvas","document","createElement","context","getContext","fillStyle","str","hash","i","charCodeAt","colour","toString","substr","stringToColour","fillRect","font","textAlign","textBaseline","fillText","toDataURL","imgRef","createRef","state","prevProps","borderWidth","borderStyle","cornerRadius","css","overflow","display","borderRadius","el","Component","defaultProps","backdropStyle","zIndex","position","top","left","cursor","transition","CometChatBackdrop","clicked","badgeStyle","fontWeight","lineHeight","marginLeft","padding","marginRight","CometChatBadgeCount","count","presenceStyle","presenceStatus","float","CometChatUserPresence","CometChatContext","presence","setPresence","FeatureRestriction","isUserPresenceEnabled","response","translations","addEventListener","language","Translator","getBrowserLanguage","toLowerCase","setLanguage","rtlLanguages","includes","languageDb","defaultLanguage","getLanguage","getItem","item","navigator","languages","userLanguage","getDefaultLanguage","savedLanguage","browserLanguageCode","browserLanguage","indexOf","split","notificationStyle","backgroundColorProp","pointerEvents","marginBottom","minHeight","boxShadow","backgroundPosition","backgroundRepeat","flexDirection","justifyContent","alignItems","boxSizing","iconStyle","mask","CometChatToastNotification","componentWillUnmount","clearAutoDismiss","setInfo","message","infoIcon","setAutoDismiss","setError","errorIcon","setSuccess","successIcon","setWarning","warningIcon","autoDelete","interval","setTimeout","deleteToast","dismissTime","clearTimeout","messageClassName","types","iconClassName","toastIcon","flexShrink","maxWidth","translate","lang","keyframes","margin","border","outline","closeIcon","alertButtonStyle","CometChatConfirmDialog","confirmButtonText","cancelButtonText","Fragment","close","right","UIKitSettings","setCustomJS","customJS","setCustomCSS","customCSS","setTabs","tabList","tabs","setUserSettings","userSettings","setCalls","calls","setUsers","users","setChats","chats","setGroups","groups","setChatListMode","option","chatListFilterKey","returnMatchedKey","chatListFilterOptions","chatListMode","setUserListMode","userListFilterKey","userListFilterOptions","userListMode","setGroupListMode","setUserVideoCall","userVideoCall","setGroupVideoCall","groupVideoCall","setUserAudioCall","userAudioCall","setGroupAudioCall","groupAudioCall","setEditMessage","editMessage","setSendMessageInOneOnOne","sendMessageInOneOnOne","setSendMessageInGroup","sendMessageInGroup","setJoinOrLeaveGroup","joinOrLeaveGroup","setBlockUser","blockUser","setSendEmojis","sendEmojis","setSendEmojisInLargerSize","sendEmojisInLargerSize","setSendGifs","sendGifs","setShareCopyForwardMessage","shareCopyForwardMessage","setSendFiles","sendFiles","setSendPhotoVideos","sendPhotoVideos","setViewShareMedia","viewShareMedia","setEnableSoundForMessages","enableSoundForMessages","setEnableSoundForCalls","enableSoundForCalls","setSendStickers","sendStickers","setViewGroupMembers","viewGroupMembers","setCallNotifications","callNotifications","setAllowDeleteGroup","allowDeleteGroup","setKickMember","kickMember","setBanMember","banMember","setAllowPromoteDemoteMembers","allowPromoteDemoteMembers","setAllowAddMembers","allowAddMembers","setShareLocation","shareLocation","setJoinLeaveNotifications","joinLeaveNotifications","setSendVoiceNotes","sendVoiceNotes","setMessageTranslation","messageTranslation","setGroupCreation","groupCreation","setSendTypingIndicator","sendTypingIndicator","setShowUserPresence","showUserPresence","setDeleteMessage","deleteMessage","setThreadedChats","threadedChats","setReplyingToMessage","replyingToMessage","setShowReadDeliveryReceipts","showReadDeliveryReceipts","setHideDeletedMessages","hideDeletedMessages","setEmailReplies","emailReplies","setSendMessageReaction","sendMessageReaction","setCollaborativeWhiteboard","collaborativeWhiteboard","setCollaborativeDocument","collaborativeDocument","setPolls","polls","setSendLiveReaction","sendLiveReaction","setPublicGroup","publicGroup","setPrivateGroup","privateGroup","setPasswordGroup","passwordGroup","setAllowModeratorToDeleteMemberMessages","allowModeratorToDeleteMemberMessages","setUnreadCount","unreadCount","setSmartReplies","smartReplies","setSearchUsers","searchUsers","setSearchGroups","searchGroups","setSearchMessages","searchMessages","setCallRecording","callRecording","setCallLiveStreaming","callLiveStreaming","setCallTranscription","callTranscription","setThumbnailGeneration","thumbnailGeneration","setLinkPreview","linkPreview","setSaveMessages","saveMessages","setPinMessages","pinMessages","setRichMediaPreview","richMediaPreview","setVoiceTranscription","voiceTranscription","setMentions","mentions","setXssFilter","xssFilter","setProfanityFilter","profanityFilter","setImageModeration","imageModeration","setDataMasking","dataMasking","setMalwareScanner","malwareScanner","setSentimentAnalysis","sentimentAnalysis","setInflightMessageModeration","inflightMessageModeration","setMessageHistory","messageHistory","setViewProfile","viewProfile","setMessageInPrivate","messageInPrivate","setChatWindow","chatWindow","matchWith","optionToMatch","entries","foregroundColor","overrideSystemBackgroundColor","groupInMode","groupListFilterOptions","searchChats","setGroupInQnaModeByModerators","highlightMessageFromModerators","ALL","NONE","FRIENDS","PUBLIC","PASSWORD","PUBLIC_AND_PASSWORD","USERS","USERS_AND_GROUPS","isRecentChatListEnabled","Promise","resolve","isGroupListEnabled","isUserSettingsEnabled","isEditMessageEnabled","isQNAModeEnabled","isHighlightMessagesEnabled","isJoinLeaveGroupsEnabled","isLargerSizeEmojisEnabled","isGifsEnabled","isShareCopyForwardMessageEnabled","isSharedMediaEnabled","isMessagesSoundEnabled","isCallsSoundEnabled","isViewingGroupMembersEnabled","isCallActionMessagesEnabled","isGroupDeletionEnabled","isChangingGroupMemberScopeEnabled","isAddingGroupMembersEnabled","isLocationSharingEnabled","isGroupActionMessagesEnabled","isGroupCreationEnabled","isDeleteMessageEnabled","isHideDeletedMessagesEnabled","isViewProfileEnabled","isMessageInPrivateEnabled","isCallListEnabled","isFeatureEnabled","calls_enabled","isUserListEnabled","chat_users_list_enabled","isOneOnOneVideoCallEnabled","call_one_on_one_video_enabled","isGroupVideoCallEnabled","call_groups_video_enabled","isOneOnOneAudioCallEnabled","call_one_on_one_audio_enabled","isGroupAudioCallEnabled","call_groups_audio_enabled","isOneOnOneChatEnabled","chat_one_on_one_enabled","isGroupChatEnabled","chat_groups_enabled","isDeleteMemberMessageEnabled","moderation_groups_moderators_enabled","isBlockUserEnabled","moderation_users_block_enabled","isEmojisEnabled","emojis_enabled","isFilesEnabled","chat_messages_media_enabled","isPhotosVideosEnabled","isKickingGroupMembersEnabled","moderation_groups_kick_enabled","isBanningGroupMembersEnabled","moderation_groups_ban_enabled","isVoiceNotesEnabled","chat_voice_notes_enabled","isTypingIndicatorsEnabled","chat_typing_indicator_enabled","chat_users_presence_enabled","isThreadedMessagesEnabled","chat_messages_threads_enabled","isMessageRepliesEnabled","chat_messages_replies_enabled","isDeliveryReceiptsEnabled","chat_messages_receipts_enabled","isLiveReactionsEnabled","live_reactions_enabled","isPublicGroupEnabled","chat_groups_public_enabled","isPrivateGroupEnabled","chat_groups_private_enabled","isPasswordGroupEnabled","chat_groups_password_enabled","isUnreadCountEnabled","chat_messages_unread_count_enabled","isUserSearchEnabled","chat_users_search_enabled","isGroupSearchEnabled","chat_groups_search_enabled","isMessageSearchEnabled","chat_messages_search_enabled","isCallRecordingEnabled","call_recording_enabled","isCallLiveStreamingEnabled","call_live_streaming_enabled","isCallTranscriptEnabled","call_transcript_enabled","isMessageHistoryEnabled","chat_messages_history_enabled","isMessageTranslationEnabled","message_translation_enabled","isExtensionEnabled","isReactionsEnabled","reactions_enabled","reactions","isCollaborativeWhiteBoardEnabled","collaboration_whiteboard_enabled","collaborationWhiteboard","isCollaborativeDocumentEnabled","collaboration_document_enabled","collaborationDocument","isStickersEnabled","stickers_enabled","sticker","isEmailRepliesEnabled","email_replies_enabled","isPollsEnabled","polls_enabled","isSmartRepliesEnabled","smart_replies_enabled","isThumbnailGenerationEnabled","thumbnail_generation_enabled","isLinkPreviewEnabled","link_preview_enabled","isSaveMessagesEnabled","messages_saved_enabled","isPinMessagesEnabled","messages_pinned_enabled","isRichMediaPreviewEnabled","rich_media_preview_enabled","isVoiceTranscriptionEnabled","voice_transcription_enabled","isMentionsEnabled","mentions_enabled","isXssFilterEnabled","moderation_xss_filter_enabled","isProfanityFilterEnabled","moderation_profanity_filter_enabled","isImageModerationEnabled","moderation_image_moderation_enabled","isDataMaskingEnabled","moderation_data_masking_enabled","isMalwareScannerEnabled","moderation_malware_scanner_enabled","isSentimentAnalysisEnabled","moderation_sentiment_analysis_enabled","chat_messages_custom_enabled","moderation_inflight_message_moderation_enabled","emojis","extensionKey","CometChatContextProvider","getUser","reject","code","getGroup","hasJoined","groupType","GROUP_TYPE","promptMessage","prompt","joinGroup","setToastMessage","getLoggedinUser","timer","loggedInUser","isInitialized","isUserLoggedIn","setInterval","clearInterval","clearGroupMembers","groupMembers","groupAdmins","groupModerators","bannedGroupMembers","setAllGroupMembers","updateGroupMembers","setGroupMembers","setGroupAdmins","setGroupModerators","setBannedGroupMembers","bannedMembers","updateBannedGroupMembers","setCallInProgress","callType","callInProgress","setType","setTypeAndItem","setDeletedGroupId","deletedGroupId","setLeftGroupId","leftGroupId","setLastMessage","lastMessage","setClearedUnreadMessages","flag","clearedUnreadMessages","setDirectCallCustomMessage","event","directCallCustomMessage","directCallCustomMessageAction","checkIfDirectCallIsOngoing","output","customData","sessionID","checkIfCallIsOngoing","getActiveCallSessionID","sessionId","hasKeyValue","undefined","settings","featureRestriction","toastMessage","unreadMessages","roles","GROUP_MEMBER_SCOPE","ADMIN","MODERATOR","PARTICIPANT","toastRef","ACTION_TYPE","TYPE_USER","errorCode","TYPE_GROUP","_component","Provider","toastNotificationPos","children","Storage","attachChangeDetection","detachChangeDetection","removeEventListener","storageKey","storageValue","parse","clear","callScreenWrapperStyle","fadeAnimation","bottom","animation","callScreenHeaderStyle","cursorStyle","maximized","callScreenResizerStyle","backgroundStyle","clipPath","background","CometChatCallScreen","enableDragging","preventDefault","checkIfCallScreenIsMaximized","dragging","rel","pageX","pageY","toggleCallScreenBackground","toggleCallScreenInnerBackground","onmousemove","startDragging","onmouseup","disableDragging","elem","callScreenEl","dialogWidth","clientWidth","dialogHeight","clientHeight","windowWidth","innerWidth","windowHeight","innerHeight","checkIfCallScreenIsMinimized","minimumWidth","minWidth","minimumHeight","max","stopPropagation","initResize","element","startX","startY","startWidth","parseFloat","getComputedStyle","getPropertyValue","replace","startHeight","parseInt","startResize","stopResize","minHWidth","maxHeight","setDimensionOfCallScreenInnerBackground","callScreenBackgroundEl","callScreenInnerBackgroundEl","setPositionOfCallScreenInnerBackground","minimize","setSizingAndPostionOfCallScreen","maximize","toggle","startDirectCall","callSettings","CallSettingsBuilder","enableDefaultLayout","setSessionID","setIsAudioOnlyCall","setLocalizedStringObject","build","callScreenFrame","startCall","OngoingCallListener","onCallEnded","actionGenerated","onError","startDefaultCall","getSessionId","CALL_TYPE","setMode","CALL_MODE","DEFAULT","onUserJoined","callInitiator","callMessage","category","action","callReceiver","receiverId","receiverType","sentAt","onUserLeft","endedCall","resizeText","iconView","minimizeIcon","maximizeIcon","onMouseDown","userSelect","PureComponent","contextType","SoundManager","incomingCallAudio","outgoingCallAudio","incomingMessageAudio","outgoingMessageAudio","incomingOtherMessageAudio","play","onIncomingCall","onOutgoingCall","onIncomingMessage","onIncomingOtherMessage","onOutgoingMessage","pause","pauseIncomingCall","pauseOutgoingCall","Audio","default","playMessageAlert","messageAudio","currentTime","playCallAlert","callAudio","loop","incomingCallWrapperStyle","slideDown","positionValue","leftPos","rightPos","topPos","bottomPos","zIndexValue","widgetsettings","dockedview","launched","alignment","widgetWidth","widgetHeight","ButtonStyle","callIconStyle","CometChatIncomingCall","adjustFontSize","callButtonRef","reduceFontSize","buttonNodeList","querySelectorAll","forEach","buttonNode","scrollWidth","callScreenUpdated","incomingCallReceived","incomingCallCancelled","outgoingCallAccepted","incomingCall","sender","rejectCall","callStatus","isCallActive","CALL_STATUS","BUSY","REJECTED","rejectedCall","acceptCall","checkForActiveCallAndEndCall","success","endCall","actionHandler","logStorageChange","newValue","oldValue","attachListeners","callScreen","incomingCallAlert","audioCallIcon","VIDEO","videoCallIcon","textOverflow","whiteSpace","textTransform","CallScreenManager","onOutgoingCallRejected","CometChatOutgoingCall","outgoingCallRejected","outgoingCallScreen","errorScreen","errorMessage","clearCallInProgress","cancelCall","CANCELLED","removeListeners","receiver","callIcon","messageAlertManager","msgListenerId","addMessageListener","MessageListener","onCustomMessageReceived","customMessage","removeMessageListener","CometChatIncomingDirectCall","messageListenerCallback","joinCall","ignoreCall","MessageAlertManager","wordBoundary","emailPattern","RegExp","urlPattern","phoneNumPattern","linkify","outputStr","match","url","normalizedURL","startsWith","checkMessageForExtensionsData","injectedObject","metadata","extensionsObject","getMessageFileMetadata","metadataKey","fileMetadata","ID","getUnixTimestamp","round","dateDiffInDays","a","b","utc1","UTC","getFullYear","getMonth","getDate","utc2","CometChatOutgoingDirectCall","prepareCustomMessageData","sendCustomMessage","RECEIVER_TYPE","GROUP","conversationId","CustomMessage","setSender","setReceiver","setConversationId","_composedAt","_id","newMessageObj","callScreenRef","ConversationListManager","conversationRequest","conversationListenerId","userListenerId","groupListenerId","ConversationsRequestBuilder","setConversationType","setLimit","fetchNext","addUserListener","UserListener","onUserOnline","onlineUser","onUserOffline","offlineUser","addGroupListener","GroupListener","onGroupMemberScopeChanged","changedUser","newScope","oldScope","changedGroup","onGroupMemberKicked","kickedUser","kickedBy","kickedFrom","onGroupMemberBanned","bannedUser","bannedBy","bannedFrom","onGroupMemberUnbanned","unbannedUser","unbannedBy","unbannedFrom","onMemberAddedToGroup","userAdded","userAddedBy","userAddedIn","onGroupMemberLeft","leavingUser","onGroupMemberJoined","joinedUser","joinedGroup","onTextMessageReceived","textMessage","onMediaMessageReceived","mediaMessage","onMessageDeleted","deletedMessage","onMessageEdited","editedMessage","onMessagesRead","messageReceipt","removeUserListener","removeGroupListener","CometChatEvent","_triggers","chatsWrapperStyle","_parent","chatsHeaderStyle","borderBottom","chatsHeaderCloseStyle","mq","chatsHeaderTitleStyle","enableCloseMenu","CometChatConversationList","selectedConversation","updateLastMessage","conversationList","conversationlist","conversationKey","findIndex","c","conversationObj","newConversationObj","splice","unshift","USER","newConversation","Conversation","setConversationWith","setUnreadMessageCount","updateUnreadCount","clearUnreadCount","unreadMessageCount","conversationCallback","options","updateUser","markMessageAsDelivered","conversationUpdated","markAsDelivered","updateConversation","conversationEditedDeleted","updateGroupMemberAdded","updateGroupMemberRemoved","updateGroupMemberScopeChanged","updateGroupMemberChanged","conversationType","conversationWith","conversationWithObj","getStatus","hideGroupActionMessages","playAudio","CATEGORY_ACTION","TYPE_GROUP_MEMBER","getReceiverType","getSender","getReceiverId","conversation","messageId","makeConversation","CometChatHelper","getConversationFromMessage","makeUnreadMessageCount","firstUnreadMessage","shouldIncrementCount","incomingMessage","CATEGORY_MESSAGE","makeLastMessage","newMessage","assign","lastMessageObj","newLastMessageObj","membersCount","actionFor","newConversationWithObj","scope","handleScroll","currentTarget","scrollHeight","scrollTop","getConversations","handleClick","onItemClick","handleMenuClose","fetchNextConversation","decoratorMessage","conversations","eachConversation","newUnreadMessageCount","updatedConversation","contextProviderRef","conversationDeleted","deleteConversation","showConfirmDialog","conversationToBeDeleted","onDeleteConfirm","optionSelected","deletedConversation","chatListRef","args","find","blockedByMe","convKey","convObj","convWithObj","newConvWithObj","newConvObj","messageContainer","wordWrap","closeBtn","navigateIcon","chatList","dir","getDirection","overflowY","onScroll","chatListWrapper","CometChatConversationListActions","toggleTooltip","setAttribute","dataset","removeAttribute","deleteInProgress","actionInProgress","progressIcon","actionIcon","loadingIcon","deleteIcon","data-title","onMouseEnter","onMouseLeave","listStyleType","listItem","selectedState","itemLastMsgStyle","CometChatConversationListItem","getLastMessage","enableHideDeletedMessages","getMessage","CATEGORY_CALL","getCallMessage","getActionMessage","CATEGORY_CUSTOM","getCustomMessage","getLastMessageTimestamp","timestamp","messageTimestamp","currentTimestamp","now","dateDifferenceInDays","dateFormat","getTimeStampForLastMessage","pollMessage","stickerMessage","docMessage","whiteboardMessage","meetingMessage","getTextMessage","messageText","text","xssData","sanitized_text","maskedData","sensitive_data","message_masked","profaneData","profanity","message_clean","MESSAGE_TYPE","TEXT","MEDIA","IMAGE","imageMessage","FILE","fileMessage","videoMessage","audioMessage","CUSTOM","actionMessage","MEMBER_JOINED","MEMBER_LEFT","actionBy","actionOn","MEMBER_SCOPE_CHANGED","extras","byEntity","onEntity","byString","forString","MEMBER_ADDED","MEMBER_KICKED","MEMBER_BANNED","MEMBER_UNBANNED","textContent","enableUnreadCount","handleMouseHover","toggleFlag","isHovering","lastMessageTimestamp","lastMessageTimeStamp","toolTipView","flexGrow","paddingLeft","paddingRight","previewWrapperStyle","slideAnimation","previewCloseStyle","previewOptionStyle","CometChatSmartReplyPreview","alignSelf","stickerWrapperStyle","stickerSectionListStyle","borderTop","overflowX","stickerItemStyle","stickerCloseStyle","CometChatStickerKeyboard","getStickers","callExtension","stickers","activeStickerSet","customStickers","defaultStickers","sort","stickerSetOrder","stickerList","stickerSet","reduce","r","stickerSetName","activeStickerList","stickerOrder","sendStickerMessage","stickerItem","onStickerSetClicked","sectionItem","activestickerlist","stickerset","closeStickerKeyboard","stickerlist","activestickerset","sectionItems","stickerSetThumbnail","stickerUrl","stickerName","flexWrap","messageReactionsStyle","reactionData","hoveredBorderStyle","verticalAlign","emojiButtonStyle","reactionCountStyle","CometChatMessageReactions","enableMessageReaction","reactToMessages","emoji","msgId","colons","triggerEmojiClick","querySelector","click","getMessageReactions","reaction","reactionName","replaceAll","reactionCount","userList","reactionTitle","join","concat","reactionClassName","size","native","addMessageReaction","reactIcon","messageReactions","addReactionEmoji","modalWrapperStyle","modalErrorStyle","modalTableStyle","borderCollapse","tr","tableLayout","tableFootStyle","loadingState","textMargin","creatingPoll","disabled","td","button","span","addOptionIconStyle","backgroundSize","CometChatCreatePoll","addPollOption","removePollOption","optionKey","opt","optionChangeHandler","newOption","createPoll","question","questionRef","firstOption","optionOneRef","secondOption","optionTwoRef","optionItems","optionRef","pollOptionView","tabIndex","createText","clearIcon","colSpan","autoFocus","addIcon","creatingIcon","removeOptionIconStyle","CometChatCreatePollOptions","autoComplete","removeIcon","messageThumbnailStyle","nameWrapperStyle","paddingValue","messageTxtWrapperStyle","messageTxtTitleStyle","messageBtnStyle","li","CometChatReceiverDocumentBubble","toggleHoverState","launchCollaborativeDocument","documentUrl","documentData","document_url","open","nextProps","nextState","reactionsData","documentTitle","flex","documentIcon","pollAnswerStyle","pollPercentStyle","curvedBorders","answerWrapperStyle","optionData","widthProp","voters","p","checkIconStyle","CometChatReceiverPollMessageBubble","answerPollQuestion","selectedOption","vote","pollId","pollExtensionData","pollOptions","total","totalText","toLocaleString","checkIcon","checkImg","template","messageImgWrapperStyle","CometChatReceiverStickerMessageBubble","stickerData","stickerImg","sticker_name","sticker_url","CometChatReceiverWhiteboardBubble","launchCollaborativeWhiteboard","whiteboardUrl","whiteboardData","board_url","username","whiteboardIcon","CometChatSenderDocumentBubble","wordBreak","CometChatSenderPollMessageBubble","messageImgWrapper","CometChatSenderStickerBubble","messageTxtIconStyle","CometChatSenderWhiteboardBubble","CometChatActionMessageBubble","getCallActionMessage","INITIATED","ONGOING","UNANSWERED","ENDED","byUser","onUser","messageContainerStyle","messageWrapperStyle","Width","fontStyle","messageTxtStyle","messageInfoWrapperStyle","messageTimeStampStyle","messageDetailStyle","paddingSpace","nameStyle","CometChatDeleteMessageBubble","setLoggedInUser","messageDate","CometChatEmojiKeyboard","categories","people","nature","foods","activity","places","objects","symbols","flags","emojiClicked","showPreview","exclude","i18n","imageWrapperStyle","heightProps","imgStyle","sizeProps","objectFit","CometChatImageViewer","setImage","imageIcon","previewDataStyle","previewTitleStyle","previewDescStyle","previewTextStyle","previewLinkStyle","CometChatLinkPreview","linkObject","linkText","href","CometChatLiveReactions","sendMessage","transientMessage","TransientMessage","sendTransientMessage","setItems","parentElement","offsetWidth","offsetHeight","elements","elementWidth","elementHeight","ySpeed","verticalSpeed","omega","PI","horizontalSpeed","time","sin","items","requestAnimation","animate","transformString","visibility","classList","add","counter","before","reactionImg","Array","fill","messageActionStyle","direction","groupButtonStyle","deleteOption","backgroundProp","CometChatMessageActions","enableThreadedChats","enableDeleteMessage","enableDeleteMessageForModerator","enableEditMessage","enableTranslateMessage","enableMessageInPrivate","sendMessageInPrivate","reactToMessage","viewThread","translateMessage","startThreadIcon","replyCount","editIcon","translateIcon","sendMessageInPrivateIcon","tooltip","chatComposerStyle","order","editPreviewContainerStyle","inputInnerStyle","borderRadiusVal","emojiViewer","stickerViewer","messageInputStyle","disabledState","content","inputStickyStyle","attachments","flexDirectionProp","filePickerStyle","active","showFilePicker","fileItemStyle","stickyAttachButtonStyle","stickyButtonStyle","sendButtonStyle","stickerBtnStyle","CometChatMessageComposer","enableLiveReaction","enablePolls","enableTypingIndicator","enableStickers","enablePhotosVideos","enableFiles","enableEmojis","enableCollaborativeDocument","enableCollaborativeWhiteboard","focusOnMessageComposer","messageInputRef","focus","messageToReact","pasteHtmlAtCaret","messageInput","innerText","messageType","changeHandler","startTyping","toggleFilePicker","currentState","openFileDialogue","fileType","imageUploaderRef","fileUploaderRef","audioUploaderRef","videoUploaderRef","onImageChange","files","uploadedFile","reader","FileReader","newFile","File","sendMediaMessage","readAsArrayBuffer","onFileChange","onAudioChange","onVideoChange","getReceiverDetails","endTyping","MediaMessage","parentMessageId","setParentMessageId","setMetadata","sendMessageOnEnter","keyCode","shiftKey","sendTextMessage","messageToBeEdited","TextMessage","setText","replyPreview","setId","messageFrom","closeEditPreview","typingInterval","isTyping","typingMetadata","typingNotification","TypingIndicator","persist","toggleStickerPicker","toggleEmojiPicker","toggleCreatePoll","toggleCollaborativeDocument","toggleCollaborativeBoard","closeCreatePoll","sendSticker","incrementUnreadCount","sendReplyMessage","clearReplyPreview","startLiveReaction","animationInProgress","timeout","liveReactionInterval","stopLiveReaction","liveReactionInProgress","shareDocument","shareWhiteboard","prevState","hasXSS","html","selectPastedContent","sel","range","getSelection","getRangeAt","rangeCount","deleteContents","node","lastNode","frag","createDocumentFragment","firstChild","appendChild","firstNode","insertNode","cloneRange","setStartAfter","setStartBefore","collapse","removeAllRanges","addRange","selection","originalRange","createRange","pasteHTML","setEndPoint","select","liveReactionBtn","liveReactionText","docText","docs","docIcon","videoText","audioText","imageText","avp","videoIcon","accept","audioIcon","pollText","createPollBtn","pollIcon","collaborativeDocText","collaborativeDocBtn","collaborativeBoardText","collaborativeBoardBtn","emojiText","emojiBtn","insertEmoticon","StickerText","stickerBtn","stickerIcon","sendMessageText","sendBtn","sendBlue","attachText","attach","roundedPlus","editPreview","smartReplyPreview","smartReplyData","contentEditable","onInput","onBlur","onKeyDown","MessageHeaderManager","onTypingStarted","typingIndicator","onTypingEnded","chatSideBarBtnStyle","displayValue","sidebar","chatUserStyle","chatStatusStyle","typing","chatOptionStyle","ongoingCall","bgColor","CometChatMessageHeader","setStatusForUser","USER_STATUS","ONLINE","OFFLINE","lastActiveAt","lastActive","setStatusForGroup","membersText","updateHeader","groupUser","enableUserPresence","showTyping","typingText","resetChat","enableGroupVoiceCall","enableGroupVideoCall","enableOneOnOneVoiceCall","combinedResponse","enableOneOnOneVideoCall","enableAddGroupMembers","enableChangeScope","enableKickGroupMembers","enableBanGroupMembers","enableDeleteGroup","enableViewGroupMembers","enableLeaveGroup","enableSharedMedia","enableBlockUser","initiateAudioCall","initiateVideoCall","viewDetail","videoCallClassName","audioCallClassName","viewDetailClassName","chatWithClassName","chatNameClassName","chatStatusClassName","audioCallText","audioCallBtn","videoCallText","videoCallBtn","viewDetailText","viewDetailBtn","detailPaneIcon","menuIcon","MessageFilter","getCategories","getTypes","MessageListManager","messageRequest","limit","initializeMessageRequest","messageFilterManager","categoryList","typeList","MessagesRequestBuilder","setUID","setCategories","setTypes","hideReplies","setGUID","fetchPrevious","onMessagesDelivered","onTransientMessageReceived","chatListStyle","messageDateStyle","CometChatMessageList","lastScrollTop","times","scrollToBottom","messagesEnd","messageHandler","fetchMessages","messageList","messageCount","getUid","markAsRead","messages","fetchPreviousMessages","messageUpdated","onMessageReadAndDelivered","onMessageReceived","onGroupUpdated","onCallUpdated","updateEditedMessage","messageKey","m","messageObj","getReceiver","getReceiptType","deliveredAt","getDeliveredAt","readAt","getReadAt","reInitializeMessageBuilder","markMessageAsRead","messageReceivedHandler","customMessageReceivedHandler","getSenderMessageComponent","component","getReceiverMessageComponent","getSenderCustomMessageComponent","getReceiverCustomMessageComponent","getActionMessageComponent","getComponent","ifChatWindowChanged","cDate","dateSeparator","dateField","messageSentDate","timeStampInMilliSeconds","getMessageDate","paddingTop","SharedMediaManager","messagetype","mediaMessageListenerId","mediaMessageRequest","setCategory","sectionStyle","containerHeightProp","containerHeight","buttonStyle","activeBtn","itemStyle","itemTypeStyle","CometChatSharedMediaView","messageDeleted","messageReceived","filteredMessages","filter","getMessages","mediaClickHandler","fileIcon","data-id","UserDetailManager","userDetailStyle","headerStyle","headerCloseStyle","privacySectionStyle","sectionHeaderStyle","itemLinkStyle","userPresenceStyle","CometChatUserDetails","enableViewProfile","usersList","blockUsers","unblockUser","unblockUsers","profileLink","link","closeDetailView","blockUserText","blockUserView","sharedmediaView","UserListManager","searchKey","userRequest","initializeUsersRequest","userListModeOptions","usersRequest","UsersRequestBuilder","setSearchKeyword","friendsOnly","contactWrapperStyle","contactHeaderStyle","contactHeaderCloseStyle","contactHeaderTitleStyle","contactSearchButtonStyle","CometChatUserList","toggleUserSearch","enableSearchUser","userUpdated","userlist","userKey","u","userObj","newUserObj","getUsers","fetchNextUsers","userListRef","userObject","newUserObject","currentLetter","chr","firstChar","selectedUser","clickHandler","searchUser","searchIcon","userListTemplate","userListWrapper","itemDescStyle","marginTop","CometChatUserListItem","userPresence","userScreenSidebarStyle","sidebarView","sidebarview","borderRight","userScreenMainStyle","itemClicked","toggleSideBar","chatWithUser","messageScreen","creatingGroup","inputStyle","CometChatCreateGroup","enablePublicGroup","enablePasswordGroup","enablePrivateGroup","passwordChangeHandler","nameChangeHandler","typeChangeHandler","passwordInput","validate","groupName","createGroup","PRIVATE","Group","newGroup","populateGroupType","groupTypes","groupTypeSelect","groupTypeKeys","groupTypeListOptions","groupTypeKey","GroupDetailManager","groupMemberRequest","bannedGroupMemberRequest","GroupMembersRequestBuilder","BannedMembersRequestBuilder","deleteLink","deleteCss","CometChatGroupDetails","groupUpdated","updateGroupMemberPresence","member","updatedMember","addParticipants","removeParticipants","banMembers","unbanMembers","updateParticipants","memberlist","memberKey","k","memberObj","newMemberObj","bannedmemberlist","bannedMemberKey","bannedMemberObj","newBannedMemberObj","getGroupMembers","administratorslist","moderatorslist","fetchNextGroupMembers","getBannedGroupMembers","fetchNextBannedGroupMembers","deleteGroup","showDeleteConfirmDialog","showLeaveGroupConfirmDialog","showTransferOwnershipConfirmDialog","onLeaveConfirm","leaveGroup","onTransferConfirm","transferOwnership","owner","viewMember","addMember","membersActionHandler","members","updateOwnership","unbannedMembers","filteredBannedMembers","bannedmember","found","triggerUpdate","newItem","groupmembers","filteredMembers","groupmember","closeGroupDetail","addAdministrator","addModerator","viewMembersBtn","paddingBottom","addMembersBtn","deleteGroupBtn","bannedMembersBtn","leaveGroupBtn","viewMembers","loggedinuser","addMembers","GroupListManager","groupRequest","GroupsRequestBuilder","groupWrapperStyle","groupHeaderStyle","groupHeaderCloseStyle","groupHeaderTitleStyle","groupAddStyle","CometChatGroupList","enableSearchGroup","enableCreateGroup","enableJoinGroup","updateMemberChanged","updateMemberRemoved","updateMemberAdded","updateMemberJoined","grouplist","groupKey","g","groupObj","newgroupObj","getGroups","newGroupObj","searchGroup","fetchNextGroups","groupList","createGroupHandler","createGroupActionHandler","groupListRef","selectedGroup","createGroupBtn","groupListTemplate","groupListWrapper","itemIconStyle","CometChatGroupListItem","groupTypeIcon","shieldIcon","lockIcon","modalCaptionStyle","textAlignStyle","listHeaderStyle","nameColumnStyle","editAccess","scopeColumnStyle","actionColumnStyle","CometChatViewGroupMemberList","updateMembers","changeScope","memberToBan","banGroupMember","memberToKick","kickGroupMember","updateGroupMemberScope","setUserColumnTitle","matches","userColumnTitle","matchMedia","addListener","modalRowStyle","borderLeft","participantView","avatarStyle","marginProp","displayProp","scopeIconStyle","kickIconStyle","CometChatViewGroupMemberListItem","toggleChangeScope","showChangeScope","scopeChangeHandler","updateMemberScope","contains","changeScopeDropDown","editClassName","changescope","ban","banIcon","kick","kickIcon","doneIcon","scopeIcon","AddMembersManager","membersRequest","initializeMembersRequest","modalCloseStyle","searchButtonStyle","modalListStyle","modalFootStyle","addingMembers","CometChatAddGroupMemberList","membersToAdd","membersToRemove","filteredlist","filteredUserList","foundbanned","membersUpdated","userState","IndexFound","membersList","newmember","newMember","GroupMember","addMembersToGroup","addGroupMemberBtn","addingIcon","firstLetter","changed","selectionBoxStyle","inactiveStateImg","activeStateImg","CometChatAddGroupMemberListItem","checked","setChecked","nameContainer","lastChild","inactiveIcon","activeIcon","htmlFor","roleColumnStyle","CometChatBanGroupMemberList","unbanMember","memberToUnBan","unbanGroupMember","membersToBan","membersToUnBan","userStyle","roleStyle","actionStyle","CometChatBanGroupMemberListItem","unBan","unban","groupScreenSidebarStyle","groupScreenMainStyle","otherProps","newObject","chatWithGroup","btnState","newGroupOwner","transferringOwnership","CometChatTransferOwnershipMemberList","changeOwnership","updateGroupOwner","transferGroupOwnership","memberList","transferBtn","transferText","transferIcon","modalColumnStyle","selectionColumnStyle","CometChatTransferOwnershipMemberListItem","handleCheck","toggleSelectedState","isSelected","chatWrapperStyle","viewdetailscreen","threadmessageview","secondaryViewWidth","chatSecondaryStyle","messagePaneUnreadBannerMessageStyle","textShadow","CometChatMessages","enableGroupActionMessages","enableCallActionMessages","enableSendingOneOnOneMessage","enableSendingGroupMessage","updateReplyCount","appendMessage","messageSent","triggerHandler","updateMessages","updateParentThreadedMessage","removeMessages","prependMessages","prependMessagesAndScrollToBottom","refreshingMessages","messageRefreshed","newMessagesArrived","jumpToMessages","messageEdited","clearEditPreview","appendCallMessage","toggleOriginalImageView","audioCall","videoCall","toggleDetailView","toggleReaction","liveReactionReceived","outgoingDirectCallRef","viewThreadedMessage","threadMessageComposed","closeThreadedMessage","appendMemberAddedMessage","appendMemberUnbannedMessage","appendMemberScopeChangedMessage","appendMemberKickedMessage","appendMemberBannedMessage","errorHandler","infoMessageHandler","infoCode","eachMember","viewOriginalImage","viewdetail","parentMessage","threaditem","threadmessageparent","threadmessageitem","threadmessagetype","Call","initiateCall","outgoingCall","outgoingCallRef","liveReaction","markMessagesAsRead","unreadMessage","messageListRef","messagelist","receivedMessage","composerRef","messageComposer","newMessageIndicator","liveReactionView","incomingCallView","incomingDirectCallView","outgoingDirectCallView","outgoingCallView","detailScreen","threadMessageView","activeTab","threadItem","threadType","originalImageView","messageComponent","messageWrapper","parentMessageStyle","messageSeparatorStyle","hr","CometChatMessageThread","parentMessageEdited","newReplyCount","getParentMessageComponent","seperator","replyText","fontWight","scrollbarWidth","msgTimestampStyle","colorValue","CometChatReadReceipt","toggleReadReceipts","receipts","ticks","receiptText","errorTick","sendingTick","greyTick","blueDoubleTick","greyDoubleTick","receipt","getMessageSentTime","CometChatReceiverAudioMessageBubble","controls","CometChatReceiverDirectCallBubble","messageTitle","joinCallMessage","messageFileWrapperStyle","textDecoration","CometChatReceiverFileMessageBubble","CometChatReceiverImageMessageBubble","chooseImage","thumbnailGenerationObject","smallUrl","imageToDownload","thumbnailGenerationData","imageName","imageUrl","downloadImage","setMessageImageUrl","imgUrl","xhr","XMLHttpRequest","responseType","readyState","statusText","onerror","Error","ontimeout","send","parsedMessage","emojiMessage","showVariation","emojiProp","CometChatReceiverTextMessageBubble","getMessageText","formattedText","emojiParsedMessage","twemoji","folder","ext","ReactHtmlParser","decodeEntities","enableLargerSizeEmojis","translatedMessage","translateToLanguage","browserLanguageArray","linkPreviewData","CometChatReceiverVideoMessageBubble","CometChatSenderAudioMessageBubble","getFileData","Blob","fileName","fileUrl","fileData","CometChatSenderDirectCallBubble","CometChatSenderFileMessageBubble","CometChatSenderImageMessageBubble","readAsDataURL","CometChatSenderTextMessageBubble","messageTextRef","CometChatSenderVideoMessageBubble","replyCountStyle","CometChatThreadedMessageReplyCount","reply","setReply","replies","chatScreenSidebarStyle","chatScreenMainStyle","tab","userInfoScreenStyle","userStatusStyle","optionTitleStyle","optionStyle","CometChatUserProfile","userProfile","notificationIcon","privacyIcon","chatIcon","helpIcon","reportIcon","isActive","activeStateBg","itemLinkTextStyle","colorProp","CometChatNavBar","tabListKeys","getFilteredTabs","filteredTabs","promises","enableChats","enableUsers","enableGroups","enableSettings","allSettled","eachTabKey","tabKey","tabEnabled","tabChanged","getActiveTab","getTabList","chatsTabActive","userTabActive","groupsTabActive","moreTabActive","chatGreyIcon","contactGreyIcon","groupGreyIcon","moreGreyIcon","tabName","t","unifiedSidebarStyle","unifiedMainStyle","navBarAction","navBarRef","Chat","findUser","PrivateRoute","rest","render","App","isLoading","setCometChat","rideRequest","initAuthUser","initCometChat","initCurrentRide","lookingDriverTimeout","updatedRide","authenticatedUser","appID","REACT_APP_COMETCHAT_APP_ID","region","REACT_APP_COMETCHAT_REGION","appSetting","AppSettingsBuilder","subscribePresenceForAllUsers","setRegion","init","exact","path","ReactDOM","StrictMode","getElementById"],"mappings":"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","file":"static/js/main.b26f2296.chunk.js","sourcesContent":["import React from 'react';\n\nexport default React.createContext(null);\n\n","export default __webpack_public_path__ + \"static/media/logo_white.2fe7ae1d.png\";","// import useContext\nimport { useContext } from 'react';\n// import Context\nimport Context from '../Context';\n// import react router\nimport { useHistory } from 'react-router-dom';\n// import logo white\nimport logoWhite from '../logo_white.png';\n\nfunction Header() {\n const { user, setUser } = useContext(Context);\n\n const history = useHistory();\n\n /**\n * logout\n */\n const logout = () => {\n const isLogout = window.confirm('Do you want to log out ?');\n if (isLogout) {\n // remove local storage.\n localStorage.removeItem('auth');\n // remove authenticated user from context.\n setUser(null);\n // redirect to login page.\n history.push('/login');\n }\n }\n\n return (\n
\n
\n \"Uber\n {\n user && (\n
\n {user.email}/\n Hello, {user.email}\n
\n )\n }\n
\n Logout\n
\n );\n}\n\nexport default Header;","// import use state.\nimport { useState } from 'react';\nconst withModal = ModalComponent => WrapperComponent => {\n return function () { \n // state to show / hide custom modal.\n const [isModalShown, setIsModalShown] = useState(false);\n \n return (\n <>\n \n {isModalShown && }\n \n )\n }\n}\n\nexport default withModal;","import firebase from \"firebase\";\nimport \"firebase/storage\";\n\nconst firebaseConfig = {\n apiKey: `${process.env.REACT_APP_FIREBASE_API_KEY}`,\n authDomain: `${process.env.REACT_APP_FIREBASE_AUTH_DOMAIN}`,\n databaseURL: `${process.env.REACT_APP_FIREBASE_DATABASE_URL}`,\n projectId: `${process.env.REACT_APP_FIREBASE_PROJECT_ID}`,\n storageBucket: `${process.env.REACT_APP_FIREBASE_STORAGE_BUCKET}`,\n messagingSenderId: `${process.env.REACT_APP_FIREABSE_MESSAGING_SENDER_ID}`,\n appId: `${process.env.REACT_APP_FIREBASE_APP_ID}`,\n};\n\nconst app = !firebase.apps.length\n ? firebase.initializeApp(firebaseConfig)\n : firebase.app();\nconst realTimeDb = app.database();\nconst db = app.firestore();\nconst auth = app.auth();\nconst storage = firebase.storage();\n\nexport { auth, db, storage, realTimeDb };\n","// import useContext, useState, useEffect, useRef, useCallback\nimport { useContext, useState, useEffect, useRef, useCallback } from 'react';\n// import Context\nimport Context from '../Context';\n// import\nimport { OpenStreetMapProvider } from 'leaflet-geosearch';\n// import custom components.\nimport withModal from './Modal';\nimport RequestRide from './RequestRide';\n\nfunction AddressPicker(props) {\n const [isFrom, setIsFrom] = useState(true);\n const [searchResults, setSearchResults] = useState([]);\n\n const { selectedFrom, setSelectedFrom, selectedTo, setSelectedTo } = useContext(Context);\n\n const provider = useRef();\n const searchRef = useRef();\n\n const { toggleModal } = props;\n\n useEffect(() => {\n initProvider();\n }, []);\n\n const shouldRequestDriver = useCallback( () => { \n if (selectedFrom && selectedTo) {\n // show confirmation dialog to request a driver.\n toggleModal(true);\n }\n }, [selectedFrom, selectedTo, toggleModal]);\n\n useEffect(() => {\n if (selectedFrom && selectedTo) {\n // check a driver should be requested, or not.\n shouldRequestDriver();\n }\n }, [selectedFrom, selectedTo, shouldRequestDriver]);\n\n /**\n * handle input changed to get pick up location or destination.\n */\n const onInputChanged = (e) => { \n const input = e.target.value;\n provider.current.search({ query: input }).then(results => {\n setSearchResults(() => results);\n });\n };\n\n /**\n * init provider.\n */\n const initProvider = () => {\n provider.current = new OpenStreetMapProvider({\n params: {\n 'accept-language': 'en',\n countrycodes: \"us\"\n }\n });\n }\n\n /**\n * select location.\n * @param {*} selectedLocation \n */\n const onLocationSelected = (selectedLocation) => {\n if (selectedLocation && selectedLocation.label && selectedLocation.x && selectedLocation.y) {\n if (isFrom) {\n // set pick up location.\n setSelectedFrom(() => selectedLocation);\n setIsFrom(() => false);\n } else {\n // set destination.\n setSelectedTo(() => selectedLocation);\n setIsFrom(() => true);\n }\n // clear search result.\n setSearchResults(() => []);\n // reset input value.\n searchRef.current.value = '';\n }\n };\n\n return (\n
\n
\n
\n

setIsFrom(true)}>{selectedFrom && selectedFrom.label ? selectedFrom.label : 'Pickup location ?'}

\n

setIsFrom(false)}>{selectedTo && selectedTo.label ? selectedTo.label : 'Destination ?'}

\n
\n
\n
\n \n
\n {\n searchResults && searchResults.length !== 0 && searchResults.map((result, index) => (\n
onLocationSelected(result)}>\n
\n \n
\n

{result.label}

\n
\n ))\n }\n
\n
\n
\n );\n}\n\nexport default withModal(RequestRide)(AddressPicker);","// import useContext.\nimport { useContext } from 'react';\n// import realtime database from Firebase.\nimport { realTimeDb } from \"../firebase\";\n// import uuid to generate id for users.\nimport { v4 as uuidv4 } from \"uuid\";\n// import Context\nimport Context from '../Context';\n\nfunction RequestRide(props) {\n // get toggleModal functin from higher order components.\n const { toggleModal } = props;\n\n const { user, selectedFrom, selectedTo, setRideRequest, setIsLoading } = useContext(Context);\n\n /**\n * request a ride\n */\n const requestRide = () => {\n if (user && selectedFrom && selectedTo) {\n // close the modal.\n toggleModal(false);\n // show loading indicator. \n setIsLoading(true);\n // create object.\n const rideUuid = uuidv4();\n const ride = {\n \"rideUuid\": rideUuid,\n \"requestor\": user,\n \"pickup\": selectedFrom,\n \"destination\": selectedTo,\n \"status\": 0\n }\n // insert to Firebase realtime database.\n realTimeDb.ref(`rides/${rideUuid}`).set(ride).then(() => {\n setRideRequest(ride);\n setIsLoading(false);\n }).catch(() => {\n setIsLoading(false);\n });\n }\n };\n\n return (\n
\n
\n
\n
Requesting a Ride
\n
\n toggleModal(false)}\n src=\"https://static.xx.fbcdn.net/rsrc.php/v3/y2/r/__geKiQnSG-.png\"\n />\n
\n
\n
\n
\n

\n You entered the pickup location successfully. Do you want to request a ride now ?\n

\n \n \n
\n
\n
\n );\n}\n\nexport default RequestRide;\n","// import useEffect.\nimport { useEffect, useState, useContext } from 'react';\n// import firebase authentication.\nimport { realTimeDb } from \"../firebase\";\n// import Context\nimport Context from '../Context';\nfunction RideList() {\n\n const [rideRequests, setRideRequests] = useState();\n\n const { user, setIsLoading, setCurrentRide, setSelectedFrom, setSelectedTo } = useContext(Context);\n\n\n useEffect(() => {\n const rideRef = realTimeDb.ref().child('rides').orderByChild('status').equalTo(0);\n const listener = rideRef.on(\"value\", function(snapshot) {\n const values = snapshot.val();\n if (values) {\n const keys = Object.keys(values);\n if (keys && keys.length !== 0) {\n const rides = [];\n for (const key of keys) {\n rides.push(values[key]);\n } \n setRideRequests(() => rides);\n } else {\n setRideRequests(() => []);\n }\n } else { \n setRideRequests(() => []);\n }\n });\n return () => { rideRef.off('value', listener); }\n }, []);\n\n /**\n * accept ride\n */\n const acceptRide = (request) => {\n // set up driver information for the request.\n request.driver = user;\n request.status = 1;\n // show loading indicator.\n setIsLoading(true);\n realTimeDb.ref(`rides/${request.rideUuid}`).set(request).then(() => {\n setIsLoading(false);\n // set created ride.\n localStorage.setItem('currentRide', JSON.stringify(request));\n // set current ride.\n setCurrentRide(() => request);\n // from / to.\n setSelectedFrom(() => request.pickup);\n setSelectedTo(() => request.destination);\n }).catch(() => {\n setIsLoading(false);\n });\n };\n\n const renderRideList = () => {\n if (rideRequests && rideRequests.length !== 0) {\n return rideRequests.map(request => (\n
\n
\n \n
\n
\n

From: {request.pickup && request.pickup.label ? request.pickup.label : ''}

\n

To: {request.destination && request.destination.label ? request.destination.label : ''}

\n \n
\n
\n ))\n } else { \n return (

You do not have any requests

);\n }\n }\n\n return (\n
\n
\n
Ride Requests
\n
\n
\n
\n {renderRideList()}\n
\n
\n );\n}\n\nexport default RideList;","// import useContext.\nimport { useContext } from 'react';\n// import firebase authentication.\nimport { realTimeDb } from \"../firebase\";\n// import Context\nimport Context from '../Context';\n// import react router. \nimport { useHistory } from 'react-router-dom';\n\nfunction RideDetail(props) { \n const { user, isDriver, currentRide } = props;\n\n const { setCurrentRide, setIsLoading } = useContext(Context);\n\n const history = useHistory();\n\n /**\n * remove ride from storage and context\n */\n const removeRideFromStorageAndContext = () => {\n // remove localStorage.\n localStorage.removeItem('currentRide');\n // remove data from context.\n setCurrentRide(null);\n // reload window \n window.location.reload();\n }\n\n const updateRide = (ride) => { \n // show loading indicator.\n setIsLoading(true);\n // update data on Firebase.\n realTimeDb.ref(`rides/${ride.rideUuid}`).set(ride).then(() => {\n setIsLoading(false);\n removeRideFromStorageAndContext();\n }).catch(() => {\n setIsLoading(false);\n });\n }\n\n /**\n * cancel ride\n */\n const cancelRide = () => {\n const isCancel = window.confirm('Do you want to cancel this ride?');\n if (isCancel) {\n // update data on Firebase.\n currentRide.status = -1;\n updateRide(currentRide);\n }\n };\n\n /**\n * finish ride\n */\n const finishRide = () => {\n const isFinish = window.confirm('Do you want to finish this ride?');\n if (isFinish) {\n // update data on Firebase.\n currentRide.status = 2;\n updateRide(currentRide);\n }\n };\n\n /**\n * talk to user\n */\n const talkToUser = () => {\n history.push('/chat');\n };\n\n return (\n
\n
\n {user.email}\n
\n

{user.email} - {user.phone}

\n
\n

From: {currentRide.pickup && currentRide.pickup.label ? currentRide.pickup.label : ''}

\n

To: {currentRide.destination && currentRide.destination.label ? currentRide.destination.label : ''}

\n \n \n {isDriver && }\n
\n
\n );\n}\n\nexport default RideDetail;","// import useContext, useRef, useEffect, useCallback\nimport { useContext, useRef, useEffect, useCallback } from 'react';\n// import custom components.\nimport Header from './Header';\nimport AddressPicker from './AddressPicker';\nimport RideList from './RideList';\nimport RideDetail from './RideDetail';\n// import Context\nimport Context from '../Context';\n// import leaflet\nimport L from \"leaflet\";\n\nrequire(\"leaflet-routing-machine\");\n\nconst style = {\n width: \"100%\",\n height: \"100vh\"\n};\n\nfunction Home() {\n\n const { selectedFrom, selectedTo, user, currentRide } = useContext(Context);\n\n const map = useRef();\n const routeControl = useRef();\n\n useEffect(() => {\n initMap();\n initRouteControl();\n }, []);\n\n const drawRoute = useCallback((from, to) => {\n if (shouldRouteDrawed(from, to) && routeControl && routeControl.current) {\n const fromLatLng = new L.LatLng(from.y, from.x);\n const toLatLng = new L.LatLng(to.y, to.x);\n routeControl.current.setWaypoints([fromLatLng, toLatLng]);\n }\n }, []);\n\n useEffect(() => {\n if (shouldRouteDrawed(selectedFrom, selectedTo)) {\n drawRoute(selectedFrom, selectedTo);\n }\n }, [selectedFrom, selectedTo, drawRoute]);\n\n /**\n * check a route should be drawed, or not.\n * @param {*} selectedFrom \n * @param {*} selectedTo \n */\n const shouldRouteDrawed = (selectedFrom, selectedTo) => {\n return selectedFrom && selectedTo && selectedFrom.label &&\n selectedTo.label && selectedFrom.x && selectedTo.x &&\n selectedFrom.y && selectedTo.y; \n };\n\n /**\n * init leaflet map.\n */\n const initMap = () => {\n map.current = L.map(\"map\", {\n center: [38.8951, -77.0364],\n zoom: 13,\n layers: [\n L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {\n attribution: '© OpenStreetMap contributors'\n })\n ]\n });\n };\n\n /**\n * init route control.\n */\n const initRouteControl = () => {\n routeControl.current = L.Routing.control({\n show: true,\n fitSelectedRoutes: true,\n plan: false,\n lineOptions: {\n styles: [\n {\n color: \"blue\",\n opacity: \"0.7\",\n weight: 6\n }\n ]\n },\n router: L.Routing.mapbox(`${process.env.REACT_APP_MAP_BOX_API_KEY}`)\n })\n .addTo(map.current)\n .getPlan(); \n };\n\n const renderSidebar = () => {\n const isUser = user && user.role === 'user';\n if (isUser && !currentRide) {\n return \n } \n if (isUser && currentRide) {\n return \n }\n if (!isUser && !currentRide) {\n return \n }\n if (!isUser && currentRide) {\n return \n }\n }\n\n return (\n <>\n
\n
\n {renderSidebar()}\n \n );\n}\n\nexport default Home;","// import useRef, useContext\nimport { useRef, useContext } from \"react\";\n// import Context to get shared data.\nimport Context from \"../Context\";\n// import validator to validate user's information.\nimport validator from \"validator\";\n// import firebase authentication.\nimport { auth, realTimeDb } from \"../firebase\";\n// import uuid to generate id for users.\nimport { v4 as uuidv4 } from \"uuid\";\n\nfunction SignUp(props) {\n // get toggleModal functin from higher order components.\n const { toggleModal } = props;\n\n // create refs to get user's email, user's password, user's confirm password.\n const emailRef = useRef(null);\n const phoneRef = useRef(null);\n const roleRef = useRef(null);\n const passwordRef = useRef(null);\n const confirmPasswordRef = useRef(null);\n\n const { cometChat, setIsLoading } = useContext(Context);\n\n const driverRole = 'driver';\n const userRole = 'user';\n\n /**\n * generate random avatar for demo purpose\n * @returns \n */\n const generateAvatar = () => {\n // hardcode list of user's avatars for the demo purpose.\n const avatars= [\n 'https://data-us.cometchat.io/assets/images/avatars/captainamerica.png',\n 'https://data-us.cometchat.io/assets/images/avatars/cyclops.png',\n 'https://data-us.cometchat.io/assets/images/avatars/ironman.png',\n 'https://data-us.cometchat.io/assets/images/avatars/spiderman.png',\n 'https://data-us.cometchat.io/assets/images/avatars/wolverine.png'\n ];\n const avatarPosition = Math.floor(Math.random() * avatars.length);\n return avatars[avatarPosition];\n }\n\n /**\n * validate user's informatin.\n * @param {*} param0 \n * @returns \n */\n const isSignupValid = ({ email, phone, role, password, confirmPassword }) => {\n if (!validator.isEmail(email)) {\n alert(\"Please input your email\");\n return false;\n }\n if (!validator.isMobilePhone(phone, ['vi-VN', 'en-US'])) {\n alert(\"Please input your phone number\");\n return false;\n }\n if (validator.isEmpty(role)) {\n alert(\"Please input your role\");\n return false;\n }\n if (validator.isEmpty(password) || !validator.isLength(password, {min: 6})) {\n alert(\"Please input your password. You password must have at least 6 characters\");\n return false;\n }\n if (validator.isEmpty(confirmPassword)) {\n alert(\"Please input your confirm password\");\n return false;\n }\n if (password !== confirmPassword) {\n alert(\"Confirm password and password must be the same\");\n return false;\n }\n return true;\n };\n\n /**\n * sign up\n */\n const signup = () => {\n // get user's email, user's password, user's confirm password.\n const email = emailRef.current.value;\n const phone = phoneRef.current.value;\n const role = roleRef.current.value;\n const password = passwordRef.current.value;\n const confirmPassword = confirmPasswordRef.current.value;\n\n if (isSignupValid({ email, phone, role, password, confirmPassword })) {\n // show loading \n setIsLoading(true);\n // create new user's uuid.\n const userUuid = uuidv4(); \n // generate user's avatar.\n const userAvatar = generateAvatar();\n // call firebase to to register a new account.\n auth.createUserWithEmailAndPassword(email, password).then((userCrendentials) => {\n if (userCrendentials) {\n // call firebase real time database to insert a new user.\n realTimeDb.ref(`users/${userUuid}`).set({\n id: userUuid,\n email,\n phone,\n role,\n avatar: userAvatar\n }).then(() => {\n alert(`${userCrendentials.user.email} was created successfully! Please sign in with your created account`);\n // cometchat auth key\n const authKey = `${process.env.REACT_APP_COMETCHAT_AUTH_KEY}`; \n // call cometchat service to register a new account.\n const user = new cometChat.User(userUuid);\n user.setName(email);\n user.setAvatar(userAvatar);\n\n cometChat.createUser(user, authKey).then(\n user => {\n setIsLoading(false);\n },error => {\n setIsLoading(false);\n }\n )\n // close sign up dialog.\n toggleModal(false);\n });\n }\n }).catch((error) => {\n console.log(error);\n setIsLoading(false);\n alert(`Cannot create your account, ${email} might be existed, please try again!`);\n }); \n }\n };\n\n return (\n
\n
\n
\n
Sign Up
\n
\n toggleModal(false)}\n src=\"https://static.xx.fbcdn.net/rsrc.php/v3/y2/r/__geKiQnSG-.png\"\n />\n
\n
\n
\n
\n \n \n \n \n \n \n
\n
\n
\n );\n}\n\nexport default SignUp;\n","export default __webpack_public_path__ + \"static/media/logo_black.4e33cc88.png\";","// import useRef and useContext\nimport { useRef, useContext } from \"react\";\n// import Context to get shared data from React context.\nimport Context from \"../Context\";\n// import firebase authentication and real time database.\nimport { auth, realTimeDb } from \"../firebase\";\n// import validator to validate user's credentials.\nimport validator from \"validator\";\n// import custom componnets.\nimport withModal from \"./Modal\";\nimport SignUp from \"./SignUp\";\n// import history\nimport { useHistory } from 'react-router-dom';\n// import logo \nimport logoBlack from '../logo_black.png';\n\nfunction Login(props) {\n // get shared data from context.\n const { setUser, setIsLoading, cometChat } = useContext(Context);\n // get toggle modal function from withModal - higher order component.\n const { toggleModal } = props;\n // create ref to get user's email and user's password.\n const emailRef = useRef(null);\n const passwordRef = useRef(null);\n\n const history = useHistory();\n\n /**\n * validate user's credentials.\n * @param {*} email \n * @param {*} password \n * @returns \n */\n const isUserCredentialsValid = (email, password) => {\n return validator.isEmail(email) && password;\n };\n\n /**\n * login\n */\n const login = () => {\n // show loading indicator.\n setIsLoading(true);\n // get the user's creadentials.\n const email = emailRef.current.value;\n const password = passwordRef.current.value;\n if (isUserCredentialsValid(email, password)) {\n // if the user's credentials are valid, call Firebase authentication service.\n auth.signInWithEmailAndPassword(email, password).then((userCredential) => {\n const userEmail = userCredential.user.email;\n realTimeDb.ref().child('users').orderByChild('email').equalTo(userEmail).on(\"value\", function(snapshot) {\n const val = snapshot.val();\n if (val) {\n const keys = Object.keys(val);\n const user = val[keys[0]];\n // login cometchat.\n cometChat.login(user.id, `${process.env.REACT_APP_COMETCHAT_AUTH_KEY}`).then(\n User => {\n // User loged in successfully.\n // save authenticated user to local storage.\n localStorage.setItem('auth', JSON.stringify(user));\n // save authenticated user to context.\n setUser(user);\n // hide loading.\n setIsLoading(false);\n // redirect to home page.\n history.push('/');\n },\n error => {\n // User login failed, check error and take appropriate action.\n }\n );\n }\n });\n })\n .catch((error) => { \n // hide loading indicator.\n setIsLoading(false);\n alert(`Your user's name or password is not correct`);\n });\n } else {\n // hide loading indicator.\n setIsLoading(false);\n alert(`Your user's name or password is not correct`);\n }\n };\n\n return (\n
\n
\n
\n \"Uber\n
\n

Get moving with Ober

\n
\n
\n
\n \n \n \n Forgot password?\n toggleModal(true)}>Create New Account\n
\n
\n
\n );\n}\n\nexport default withModal(SignUp)(Login);\n","function Loading() {\n return (\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n );\n}\n\nexport default Loading;\n","export const TEXT_MESSAGE_RECEIVED = 'onTextMessageReceived';\nexport const MEDIA_MESSAGE_RECEIVED = 'onMediaMessageReceived';\nexport const CUSTOM_MESSAGE_RECEIVED = 'onCustomMessageReceived';\nexport const MESSAGE_DELIVERED = 'onMessagesDelivered';\nexport const MESSAGE_READ = 'onMessagesRead';\nexport const MESSAGE_DELETED = 'onMessageDeleted';\nexport const MESSAGE_EDITED = 'onMessageEdited';\nexport const TRANSIENT_MESSAGE_RECEIVED = \"onTransientMessageReceived\";\n\nexport const INCOMING_CALL_RECEIVED = 'onIncomingCallReceived';\nexport const OUTGOING_CALL_ACCEPTED = 'onOutgoingCallAccepted';\nexport const OUTGOING_CALL_REJECTED = 'onOutgoingCallRejected';\nexport const INCOMING_CALL_CANCELLED = 'onIncomingCallCancelled';\n\nexport const GROUP_MEMBER_SCOPE_CHANGED = \"onGroupMemberScopeChanged\";\nexport const GROUP_MEMBER_KICKED = \"onGroupMemberKicked\";\nexport const GROUP_MEMBER_BANNED = \"onGroupMemberBanned\";\nexport const GROUP_MEMBER_UNBANNED = \"onGroupMemberUnbanned\";\nexport const GROUP_MEMBER_ADDED = \"onMemberAddedToGroup\";\nexport const GROUP_MEMBER_LEFT = \"onGroupMemberLeft\";\nexport const GROUP_MEMBER_JOINED = \"onGroupMemberJoined\";\n\nexport const USER_ONLINE = \"onUserOnline\";\nexport const USER_OFFLINE = \"onUserOffline\";\n\nexport const TYPING_STARTED = \"onTypingStarted\";\nexport const TYPING_ENDED = \"onTypingEnded\";\n\nexport const CUSTOM_TYPE_POLL = \"extension_poll\";\nexport const CUSTOM_TYPE_STICKER = \"extension_sticker\";\nexport const CUSTOM_TYPE_DOCUMENT = \"extension_document\";\nexport const CUSTOM_TYPE_WHITEBOARD = \"extension_whiteboard\";\nexport const CUSTOM_TYPE_MEETING = \"meeting\";\n\nexport const CONSTANTS = {\n\tLOCALE: \"cometchat:locale\",\n\tACTIVECALL: \"cometchat:activecall\",\n\tMAX_MESSAGE_COUNT: 1000,\n\tMETADATA_TYPE_LIVEREACTION: \"live_reaction\",\n\tLIVE_REACTIONS: { heart: \"./resources/heart.png\", thumbsup: \"👍\", clap: \"👏\", wink: \"😉\" },\n\tMESSAGES_COMPONENT: \"messages\",\n\tEMBEDDED_COMPONENT: \"embedded\",\n\tOUTGOING_DEFAULT_CALLING: \"outgoing_default\",\n\tINCOMING_DEFAULT_CALLING: \"incoming_default\",\n\tINCOMING_DIRECT_CALLING: \"incoming_direct\",\n\tOUTGOING_DIRECT_CALLING: \"outgoing_direct\",\n\tAUDIO: {\n\t\tINCOMING_MESSAGE: \"incomingMessage\",\n\t\tINCOMING_OTHER_MESSAGE: \"incomingOtherMessage\",\n\t\tOUTGOING_MESSAGE: \"outgoingMessage\",\n\t\tINCOMING_CALL: \"incomingCall\",\n\t\tOUTGOING_CALL: \"outgoingCall\",\n\t},\n\tERROR_CODES: {\n\t\tERR_CHAT_API_FAILURE: \"ERR_CHAT_API_FAILURE\",\n\t},\n\tCALLS: {\n\t\tONGOING_CALL: \"noOngoingCall\",\n\t\tONGOING_CALL_SAME_GROUP: \"ongoingDirectCallInSameGroup\",\n\t\tONGOING_CALL_DIFF_GROUP: \"ongoingDirectCallInDifferentGroup\",\n\t},\n\tGROUPS: {\n\t\tOWNER: \"owner\",\n\t},\n\tLIVE_REACTION_INTERVAL: 1500,\n\tFILE_METADATA: \"file\",\n};\n\nexport const ACTIONS = {\n\tMESSAGE_SENT: \"messageSent\",\n\tMESSAGE_COMPOSED: \"messageComposed\",\n\tERROR_IN_SENDING_MESSAGE: \"errorInSendingMessage\",\n\tACCEPT_DIRECT_CALL: \"acceptDirectCall\",\n\tJOIN_DIRECT_CALL: \"joinDirectCall\",\n\tSTART_DIRECT_CALL: \"startDirectCall\",\n\tDIRECT_CALL_ENDED: \"directCallEnded\",\n\tPOLL_CREATED: \"pollCreated\",\n\tGROUP_DELETED: \"groupDeleted\",\n\tGROUP_LEFT: \"leftGroup\",\n\tGROUP_CREATED: \"groupCreated\",\n\tVIEW_DETAIL: \"viewDetail\",\n\tVIEW_THREADED_MESSAGE: \"viewThreadedMessage\",\n\tCLOSE_THREADED_MESSAGE: \"closeThreadedMessage\",\n\tTOGGLE_SIDEBAR: \"toggleSidebar\",\n\tON_MESSAGE_EDITED: \"onMessageEdited\",\n\tON_MESSAGE_DELETED: \"onMessageDeleted\",\n\tON_MESSAGE_READ_DELIVERED: \"onMessageReadAndDelivered\",\n\tDELETE_MESSAGE: \"deleteMessage\",\n\tMESSAGE_DELETED: \"messageDeleted\",\n\tEDIT_MESSAGE: \"editMessage\",\n\tMESSAGE_EDITED: \"messageEdited\",\n\tCLOSE_GROUP_DETAIL: \"closeGroupDetail\",\n\tCLOSE_USER_DETAIL: \"closeUserDetail\",\n\tVIEW_ORIGINAL_IMAGE: \"viewOriginalImage\",\n\tFETCH_GROUP_MEMBERS: \"fetchGroupMembers\",\n\tSCOPECHANGE_GROUPMEMBER_SUCCESS: \"updateGroupMember\",\n\tBAN_GROUP_MEMBER: \"ban\",\n\tKICK_GROUP_MEMBER: \"kick\",\n\tBAN_GROUPMEMBER_SUCCESS: \"banGroupMember\",\n\tKICK_GROUPMEMBER_SUCCESS: \"kickGroupMember\",\n\tCHANGE_SCOPE_GROUP_MEMBER: \"changescope\",\n\tUNBAN_GROUP_MEMBER: \"unban\",\n\tADD_GROUP_MEMBER_SUCCESS: \"addGroupMembers\",\n\tFETCH_BANNED_GROUP_MEMBERS: \"fetchBannedGroupMembers\",\n\tUNBAN_GROUP_MEMBER_SUCCESS: \"unbanGroupMembers\",\n\tREACT_TO_MESSAGE: \"reactToMessage\",\n\tINITIATE_VIDEO_CALL: \"initiateVideoCall\",\n\tINITIATE_AUDIO_CALL: \"initiateAudioCall\",\n\tCHANGE_TAB: \"changeTab\",\n\tITEM_CLICKED: \"itemClicked\",\n\tTHREAD_MESSAGE_COMPOSED: \"threadMessageComposed\",\n\tSEND_LIVE_REACTION: \"sendReaction\",\n\tSTOP_LIVE_REACTION: \"stopReaction\",\n\tSHOW_LIVE_REACTION: \"showReaction\",\n\tCLEAR_EDIT_PREVIEW: \"clearEditPreview\",\n\tMESSAGE_RECEIVED: \"messageReceived\",\n\tCUSTOM_MESSAGE_RECEIVED: \"customMessageReceived\",\n\tMESSAGE_READ: \"messageRead\",\n\tMESSAGES_INITIAL_FETCH: \"messageInitialFetch\",\n\tMESSAGES_FETCHED: \"messageFetched\",\n\tREFRESHING_MESSAGES: \"refreshingMessages\",\n\tMESSAGES_REFRESHED: \"messageRefreshed\",\n\tNEW_MESSAGES: \"newMessagesArrived\",\n\tCLEAR_UNREAD_MESSAGES: \"clearUnreadMessages\",\n\tSTART_AUDIO_CALL: \"startAudioCall\",\n\tSTART_VIDEO_CALL: \"startVideoCall\",\n\tOUTGOING_CALL_ACCEPTED: \"outgoingCallAccepted\",\n\tOUTGOING_CALL_REJECTED: \"outgoingCallRejected\",\n\tOUTGOING_CALL_CANCELLED: \"outgoingCallCancelled\",\n\tINCOMING_CALL_ACCEPTED: \"incomingCallAccepted\",\n\tINCOMING_CALL_REJECTED: \"incomingCallRejected\",\n\tCALL_ENDED: \"callEnded\",\n\tUSER_JOINED_CALL: \"userJoinedCall\",\n\tUSER_LEFT_CALL: \"userLeftCall\",\n\tDELETE_CONVERSATION: \"deleteConversation\",\n\tCONVERSATION_DELETED: \"conversationDeleted\",\n\tSEND_STICKER: \"sendSticker\",\n\tCLOSE_STICKER_KEYBOARD: \"closeStickerKeyboard\",\n\tERROR: \"errorOccurred\",\n\tINFO: \"infoMessage\",\n\tTRANSLATE_MESSAGE: \"translateMessage\"\n};\n\nexport const EVENTS = {\n\tNEW_MESSAGES: \"newMessagesArrived\",\n\tCLEAR_UNREAD_MESSAGES: \"clearUnreadMessages\",\n};\n\n\nexport const KEYS = {\n\tMETADATA: \"metadata\",\n\tINCREMENT_UNREAD_COUNT: \"incrementUnreadCount\",\n};","import { CometChat } from \"@cometchat-pro/chat\";\n\nimport * as enums from \"../../../util/enums.js\";\n\nexport class CallAlertManager {\n\n callListenerId = \"incoming_call_\" + new Date().getTime();\n\n attachListeners(callback) {\n\n CometChat.addCallListener(\n this.callListenerId,\n new CometChat.CallListener({\n onIncomingCallReceived: call => {\n callback(enums.INCOMING_CALL_RECEIVED, call);\n },\n onIncomingCallCancelled: call => {\n callback(enums.INCOMING_CALL_CANCELLED, call);\n },\n onOutgoingCallAccepted: call => {\n callback(enums.OUTGOING_CALL_ACCEPTED, call);\n },\n })\n );\n }\n\n removeListeners() {\n CometChat.removeCallListener(this.callListenerId);\n }\n}","export const theme = {\n fontFamily: \"Inter, sans-serif\",\n fontSize: \"14px\",\n primaryColor: \"#39f\",\n secondaryTextColor: \"#808080\",\n color: {\n primary: \"#141414\",\n secondary: \"#cccccc\",\n darkSecondary: \"#eaeaea\",\n grey: \"rgba(20,20,20,0.04)\",\n helpText: \"rgba(20, 20, 20, 0.6)\",\n blue: \"#39f\",\n white: \"#fff\",\n red: \"#ff3b30\"\n },\n borderColor: {\n primary: \"#eaeaea\",\n secondary: \"#cccccc\",\n darkSecondary: \"#eaeaea\",\n white: \"#fff\",\n blue: \"#39f\",\n },\n backgroundColor: {\n white: \"#fff\",\n primary: \"#E6E6E6\",\n secondary: \"#f6f6f6\",\n blue: \"#39f\",\n red: \"#ff3b30\",\n grey: \"rgba(20,20,20,0.04)\",\n lightGrey: \"rgba(20, 20, 20, 0.08)\",\n darkGrey: \"rgba(20,20,20,0.9)\",\n callScreenGrey: \"#444444\",\n silver: \"#c4c4c4\"\n },\n breakPoints: [\n \"(min-width: 320px) and (max-width: 767px)\",\n \"(min-width: 320px) and (max-width: 480px)\",\n \"(min-width: 481px) and (max-width: 768px)\",\n \"(min-width: 769px) and (max-width: 1024px)\",\n \"(min-width: 1025px) and (max-width: 1200px)\",\n ]\n};\n","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { theme } from \"../../../resources/theme\";\n\nimport { imgStyle } from \"./style\";\n\nimport srcIcon from \"./resources/1px.png\";\n\nclass CometChatAvatar extends React.Component {\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.imgRef = React.createRef();\n\t\tthis._isMounted = false;\n\t\tthis.state = {\n\t\t\tavatarImage: srcIcon\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\n\t\tthis._isMounted = true;\n\t\tthis.setAvatarImage();\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\n\t\tif(prevProps !== this.props) {\n\n\t\t\tthis.setAvatarImage();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis._isMounted = false;\n\t}\n\n\tsetAvatarImage = () => {\n\n\t\tif ((this.props.image).trim().length) {\n\n\t\t\tthis.getImage(this.props.image);\n\n\t\t} else if (Object.keys(this.props.user).length) {\n\n\t\t\tif (this.props.user.hasOwnProperty(\"avatar\")) {\n\n\t\t\t\tconst avatarImage = this.props.user.avatar;\n\t\t\t\tthis.getImage(avatarImage);\n\n\t\t\t} else {\n\n\t\t\t\tconst uid = this.props.user.uid;\n\t\t\t\tconst char = this.props.user.name.charAt(0).toUpperCase();\n\n\t\t\t\tconst avatarImage = this.generateAvatar(uid, char);\n\t\t\t\tthis.getImage(avatarImage);\n\t\t\t}\n\n\t\t} else if (Object.keys(this.props.group).length) {\n\n\t\t\tif (this.props.group.hasOwnProperty(\"icon\")) {\n\n\t\t\t\tconst avatarImage = this.props.group.icon;\n\t\t\t\tthis.getImage(avatarImage);\n\n\t\t\t} else {\n\n\t\t\t\tconst guid = this.props.group.guid;\n\t\t\t\tconst char = this.props.group.name.charAt(0).toUpperCase();\n\n\t\t\t\tconst avatarImage = this.generateAvatar(guid, char);\n\t\t\t\tthis.getImage(avatarImage);\n\n\t\t\t}\n\t\t}\n\t}\n\n\tgetImage = (image) => {\n\n\t\tlet img = new Image();\n\t\timg.src = image;\n\t\timg.onload = () => {\n\n\t\t\tif (this._isMounted) {\n\t\t\t\tthis.setState({ avatarImage: image });\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\n\tgenerateAvatar = (generator, data) => {\n\n\t\tconst stringToColour = function (str) {\n\n\t\t\tlet hash = 0;\n\t\t\tfor (let i = 0; i < str.length; i++) {\n\t\t\t\thash = str.charCodeAt(i) + ((hash << 5) - hash);\n\t\t\t}\n\n\t\t\tlet colour = '#';\n\t\t\tfor (let i = 0; i < 3; i++) {\n\t\t\t\tlet value = (hash >> (i * 8)) & 0xFF;\n\t\t\t\tcolour += ('00' + value.toString(16)).substr(-2);\n\t\t\t}\n\t\t\treturn colour;\n\t\t}\n\n\t\tconst canvas = document.createElement(\"canvas\");\n\t\tconst context = canvas.getContext(\"2d\");\n\n\t\tcanvas.width = 200;\n\t\tcanvas.height = 200;\n\n\t\t// Draw background\n\t\tcontext.fillStyle = stringToColour(generator);\n\t\tcontext.fillRect(0, 0, canvas.width, canvas.height);\n\n\t\t// Draw text\n\t\tcontext.font = \"bold 100px 'Inter', sans-serif\";\n\t\tcontext.fillStyle = \"white\";//foregroundColor;\n\t\tcontext.textAlign = \"center\";\n\t\tcontext.textBaseline = \"middle\";\n\t\tcontext.fillText(data, canvas.width / 2, canvas.height / 2);\n\n\t\treturn canvas.toDataURL(\"image/png\");\n\t}\n\n\trender() {\n\n\t\tconst borderWidth = this.props.borderWidth;\n\t\tconst borderStyle = this.props.borderStyle;\n\t\tconst borderColor = this.props.borderColor;\n\t\tconst cornerRadius = this.props.cornerRadius;\n\n\t\tconst getStyle = () => ({ borderWidth: borderWidth, borderStyle: borderStyle, borderColor: borderColor, borderRadius: cornerRadius });\n\n\t\treturn (\n\t\t\t{this.state.avatarImage} { this.imgRef = el;}} />\n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatAvatar.defaultProps = {\n\tborderWidth: \"1px\",\n\tborderStyle: \"solid\",\n\tborderColor: theme.borderColor.primary,\n\tcornerRadius: \"50%\",\n\ttheme: theme,\n\timage: \"\",\n\tuser: {},\n\tgroup: {},\n};\n\nCometChatAvatar.propTypes = {\n\tborderWidth: PropTypes.string,\n\tborderStyle: PropTypes.string,\n\tborderColor: PropTypes.string,\n\tcornerRadius: PropTypes.string,\n\timage: PropTypes.string,\n\ttheme: PropTypes.object,\n\tuser: PropTypes.oneOfType([PropTypes.object, PropTypes.shape(CometChat.User)]),\n\tgroup: PropTypes.oneOfType([PropTypes.object, PropTypes.shape(CometChat.Group)])\n}\n\nexport { CometChatAvatar };","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEXx7OqhaJO7AAAAAXRSTlPM0jRW/QAAAApJREFUeJxjYgAAAAYAAzY3fKgAAAAASUVORK5CYII=\"","export const imgStyle = () => {\n\n return {\n overflow: \"hidden\",\n display: \"inherit\",\n width: \"100%\",\n height: \"100%\"\n }\n}","export const backdropStyle = (props) => {\n\n return {\n zIndex: \"3\",\n backgroundColor: \"#000\",\n opacity: \".3\",\n position: \"fixed\",\n width: \"100%\",\n height: \"100%\",\n top: \"0\",\n left: \"0\",\n cursor: \"pointer\",\n transition: \"background .3s ease-out 0\",\n ...props.style,\n }\n}","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\n\nimport {\n backdropStyle\n} from \"./style\";\n\nconst CometChatBackdrop = props => (props.show ?
: null);\n\n// Specifies the default values for props:\nCometChatBackdrop.defaultProps = {\n\tshow: false,\n\tstyle: {},\n\tclicked: () => {},\n};\n\nCometChatBackdrop.propTypes = {\n show: PropTypes.bool,\n style: PropTypes.object,\n clicked: PropTypes.func,\n}\n\nexport { CometChatBackdrop };","export const badgeStyle = (props) => {\n\n return {\n display: \"block\",\n fontSize: \"12px\",\n width: \"auto\",\n height: \"18px\",\n borderRadius: \"16px\",\n backgroundColor: `${props.theme.primaryColor}`,\n color: `${props.theme.color.white}`,\n textAlign: \"center\",\n fontWeight: \"700\",\n lineHeight: \"18px\",\n marginLeft: \"4px\",\n padding: \"0 9px\",\n marginRight: \"2px\",\n opacity: \"1\",\n transition: \"opacity .1s\",\n }\n}","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\n\nimport { theme } from \"../../../resources/theme\";\nimport { badgeStyle } from \"./style\";\n\nconst CometChatBadgeCount = (props) => {\n\n\tlet count = \"\";\n\n\tif(props.count) {\n\t\tcount = (\n\t\t\t{props.count}\n\t\t);\n\t}\n\t\n\treturn count;\n}\n\n// Specifies the default values for props:\nCometChatBadgeCount.defaultProps = {\n\tcount: 0,\n\ttheme: theme\n};\n\nCometChatBadgeCount.propTypes = {\n\tcount: PropTypes.number,\n\ttheme: PropTypes.object\n}\n\nexport { CometChatBadgeCount };","export const presenceStyle = (props) => {\n\n let presenceStatus = {\n backgroundColor: \"#C4C4C4\"\n }\n\n if (props.status === \"online\" || props.status === \"available\") {\n presenceStatus = {\n backgroundColor: \"#3BDF2F\"\n }\n }\n\n return {\n width: \"9px\",\n height: \"9px\",\n top: \"-12px\",\n float: \"right\",\n position: \"relative\",\n ...presenceStatus\n }\n}\n","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport {jsx} from \"@emotion/core\"\nimport PropTypes from \"prop-types\"\n\nimport {CometChatContext} from \"../../../util/CometChatContext\"\n\nimport {presenceStyle} from \"./style\"\n\nconst CometChatUserPresence = props => {\n\n\tconst context = React.useContext(CometChatContext);\n const [presence, setPresence] = React.useState(false);\n\n const togglePresence = () => {\n\n context.FeatureRestriction.isUserPresenceEnabled().then(response => {\n\n if (response !== presence) {\n setPresence(response);\n }\n\n }).catch(error => {\n\n if (presence !== false) {\n setPresence(false);\n }\n })\n\n }\n\n React.useEffect(togglePresence);\n\n\t//if user presence feature is disabled\n\tif (presence === false) {\n\t\treturn null\n\t}\n\n\tconst borderWidth = props.borderWidth\n\tconst borderColor = props.borderColor\n\tconst cornerRadius = props.cornerRadius\n\n\tconst getStyle = () => ({borderWidth: borderWidth, borderStyle: \"solid\", borderColor: borderColor, borderRadius: cornerRadius})\n\n\treturn \n}\n\n// Specifies the default values for props:\nCometChatUserPresence.defaultProps = {\n\tborderWidth: \"1px\",\n\tborderColor: \"#eaeaea\",\n\tcornerRadius: \"50%\",\n};\n\nCometChatUserPresence.propTypes = {\n\tborderWidth: PropTypes.string,\n\tborderColor: PropTypes.string,\n\tcornerRadius: PropTypes.string,\n}\n\nexport {CometChatUserPresence}","import * as enums from \"../../util/enums.js\";\n\nimport translationAR from \"./locales/ar/translation.json\";\nimport translationDE from \"./locales/de/translation.json\";\nimport translationEN from \"./locales/en/translation.json\";\nimport translationES from \"./locales/es/translation.json\";\nimport translationFR from \"./locales/fr/translation.json\";\nimport translationHI from \"./locales/hi/translation.json\";\nimport translationMS from \"./locales/ms/translation.json\";\nimport translationPT from \"./locales/pt/translation.json\";\nimport translationRU from \"./locales/ru/translation.json\";\nimport translationZH from \"./locales/zh/translation.json\";\nimport translationZHTW from \"./locales/zh-tw/translation.json\";\nimport translationSV from \"./locales/sv/translation.json\";\nimport translationLT from \"./locales/lt/translation.json\";\n\n// the translations\nconst translations = {\n \"ar\": translationAR,\n \"de\": translationDE,\n \"en\": translationEN,\n \"es\": translationES,\n \"fr\": translationFR,\n \"hi\": translationHI,\n \"ms\": translationMS,\n \"pt\": translationPT,\n \"ru\": translationRU,\n \"zh\": translationZH,\n \"zh-tw\": translationZHTW,\n \"sv\": translationSV,\n \"lt\": translationLT,\n};\n\nwindow.addEventListener('languagechange', () => {\n let language = Translator.getBrowserLanguage().toLowerCase();\n Translator.setLanguage(language);\n});\n\nclass Translator {\n\n static key = enums.CONSTANTS[\"LOCALE\"];\n static rtlLanguages = [\"ar\"];\n static defaultLanguage = \"en\";\n\n static getLanguage = () => {\n\n return localStorage.getItem(this.key);\n }\n\n static setLanguage = (language) => {\n\n const item = this.key;\n localStorage.setItem(item, language);\n }\n\n static getBrowserLanguage = () => ((navigator.languages && navigator.languages[0]) || navigator.language || navigator.userLanguage);\n\n static getDefaultLanguage = () => {\n\n //get the language from localstorage\n const savedLanguage = this.getLanguage();\n\n //get the language set in the browser\n const browserLanguageCode = Translator.getBrowserLanguage().toLowerCase();\n let browserLanguage = browserLanguageCode;\n\n //check if the language set in the browser has hyphen(-), if yes split and take the first element of the array\n if (browserLanguageCode !== \"zh-tw\" && browserLanguageCode.indexOf(\"-\") !== -1) {\n\n const browserLanguageArray = browserLanguageCode.split(\"-\");\n browserLanguage = browserLanguageArray[0];\n }\n\n //if there is language set in localstorage and it is different from browser language, update local storage and return the language code\n if (savedLanguage) {\n\n if (savedLanguage !== browserLanguage) {\n\n this.setLanguage(browserLanguage);\n \n //if the translations are not available, default to en\n return (translations.hasOwnProperty(browserLanguage)) ? browserLanguage : this.defaultLanguage;\n \n } else {\n\n //if the translations are not available, default to en\n return (translations.hasOwnProperty(browserLanguage)) ? browserLanguage : this.defaultLanguage;\n }\n\n } else {\n\n this.setLanguage(browserLanguage);\n\n //if the translations are not available, default to en\n return (translations.hasOwnProperty(browserLanguage)) ? browserLanguage : this.defaultLanguage;\n }\n }\n\n static getDirection(language) {\n return this.rtlLanguages.includes(language) ? \"rtl\" : \"ltr\";\n }\n\n static translate(str, language) {\n\n if (translations.hasOwnProperty(language)) {\n\n const languageDb = translations[language];\n if (languageDb.hasOwnProperty(str)) {\n return languageDb[str];\n }\n\n return str;\n\n } else {\n\n const languageDb = translations[this.defaultLanguage];\n if (languageDb.hasOwnProperty(str)) {\n return languageDb[str];\n }\n\n return str;\n }\n }\n}\n\nexport default Translator;","export const notificationContainerStyle = (props, keyframes) => {\n\n // const toastInRight = keyframes`\n // from {transform: translateX(100%);}\n // to {transform: translateX(0);}`;\n\n // const toastInLeft = keyframes`\n // from {transform: translateX(-100%); }\n // to {transform: translateX(0);}`;\n\n // let positionProp = {}\n // if (props.position === \"top-right\") {\n\n // positionProp = {\n // top: \"12px\",\n // right: \"12px\",\n // transition: \"transform .6s ease-in\",\n // animation: `${toastInRight} .5s`\n // };\n\n // } else if (props.position === \"bottom-right\") {\n\n // positionProp = {\n // bottom: \"12px\",\n // right: \"12px\",\n // transition: \"transform .6s ease-in\",\n // animation: `${toastInRight} .5s`\n // };\n\n // } else if (props.position === \"top-left\") {\n\n // positionProp = {\n // top: \"12px\",\n // left: \"12px\",\n // transition: \"transform .6s ease-in\",\n // animation: `${toastInLeft} .5s`\n // };\n\n // } else if (props.position === \"bottom-left\") {\n\n // positionProp = {\n // bottom: \"12px\",\n // left: \"12px\",\n // transition: \"transform .6s ease-in\",\n // animation: `${toastInLeft} .5s`\n // };\n // }\n\n return {\n fontSize: \"14px\",\n boxSizing: \"border-box\",\n position: \"absolute\",\n zIndex: \"5\",\n width: \"80%\",\n maxWidth: \"320px\",\n top: \"70px\",\n left: \"50%\",\n transform: \"translate(-50%, 0)\",\n }\n}\n\nexport const notificationStyle = (props, state) => {\n\n let backgroundColorProp = {\n backgroundColor: \"#000\",\n };\n if (state.type === \"ERROR\") {\n\n backgroundColorProp = {\n backgroundColor: \"#d9534f\",\n };\n\n } else if (state.type === \"SUCCESS\") {\n \n backgroundColorProp = {\n backgroundColor: \"#5cb85c\",\n };\n\n } else if (state.type === \"INFO\") {\n\n backgroundColorProp = {\n backgroundColor: \"#5bc0de\",\n };\n\n } else if (state.type === \"WARNING\") {\n\n backgroundColorProp = {\n backgroundColor: \"#f0ad4e\",\n };\n }\n\n return {\n transition: \".3s ease\",\n position: \"relative\",\n pointerEvents: \"auto\",\n overflow: \"hidden\",\n padding: \"8px\",\n marginBottom: \"16px\",\n fontSize: \"13px\",\n width: \"100%\",\n minHeight: \"50px\",\n boxShadow: \"0 0 10px #999\",\n color: \"#fff\",\n ...backgroundColorProp,\n backgroundPosition: \"15px\",\n backgroundRepeat: \"no-repeat\",\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n boxSizing: \"border-box\"\n }\n}\n\nexport const notificationIconStyle = () => {\n\n return {\n marginRight: \"16px\",\n width: \"25px\",\n height: \"25px\",\n flexShrink: \"0\",\n \"img\": {\n maxWidth: \"100%\",\n }\n }\n}\n\nexport const notificationMessageContainerStyle = () => {\n\n return {\n width: \"calc(100% - 60px)\"\n }\n}\n\nexport const notificationMessageStyle = () => {\n\n return {\n margin: \"0\",\n textAlign: \"left\",\n marginLeft: \"-1px\",\n }\n}\n\nexport const notificationCloseButtonStyle = () => {\n\n return {\n width: \"25px\",\n height: \"25px\",\n padding: \"0\",\n border: \"none\",\n outline: \"none\",\n backgroundColor: \"transparent\",\n cursor:\" pointer\",\n \"img\": {\n flexShrink: \"0\",\n maxWidth: \"100%\"\n }\n }\n}\n\nexport const iconStyle = (img, theme) => {\n\n return {\n width: \"24px\",\n height: \"24px\",\n display: \"inline-block\",\n mask: `url(${img}) center center no-repeat`,\n backgroundColor: `${theme.color.white}`,\n };\n}\n","export default __webpack_public_path__ + \"static/media/close-circle-filled.2b9a0857.svg\";","export default __webpack_public_path__ + \"static/media/checkmark-filled.73f2a848.svg\";","export default __webpack_public_path__ + \"static/media/warning-filled.178b4e9a.svg\";","export default __webpack_public_path__ + \"static/media/info-filled.2fc272ce.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx, keyframes } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\n\nimport Translator from \"../../../resources/localization/translator\";\nimport { theme } from \"../../../resources/theme\";\n\nimport {\n notificationContainerStyle,\n notificationStyle,\n notificationIconStyle,\n notificationMessageContainerStyle,\n notificationMessageStyle,\n notificationCloseButtonStyle,\n iconStyle\n} from \"./style\";\n\nimport closeIcon from \"./resources/close-circle-filled.svg\";\nimport successIcon from \"./resources/checkmark-filled.svg\";\nimport errorIcon from \"./resources/warning-filled.svg\";\nimport infoIcon from \"./resources/info-filled.svg\";\nimport warningIcon from \"./resources/warning-filled.svg\";\n\nexport class CometChatToastNotification extends React.Component {\n\n interval;\n static types = {\n \"INFO\": \"info\",\n \"WARNING\": \"warning\",\n \"SUCCESS\": \"success\",\n \"ERROR\": \"error\",\n }\n\n constructor(props) {\n\n super(props);\n\n this._isMounted = false;\n this.state = { \n type: \"\",\n message: \"\"\n };\n }\n\n componentDidMount() {\n this._isMounted = true;\n }\n\n componentWillUnmount = () => {\n\n this._isMounted = false;\n this.clearAutoDismiss();\n }\n\n setInfo = (message) => {\n\n if (this._isMounted) {\n\n this.setState({ type: \"INFO\", message: message, icon: infoIcon });\n this.setAutoDismiss();\n }\n }\n\n setError = (message) => {\n \n if (this._isMounted) {\n\n this.setState({ type: \"ERROR\", message: message, icon: errorIcon });\n //this.setAutoDismiss();\n }\n }\n\n setSuccess = (message) => {\n\n if (this._isMounted) {\n\n this.setState({ type: \"SUCCESS\", message: message, icon: successIcon });\n this.setAutoDismiss();\n }\n }\n\n setWarning = (message) => {\n\n if (this._isMounted) {\n\n this.setState({ type: \"WARNING\", message: message, icon: warningIcon });\n this.setAutoDismiss();\n }\n }\n\n setAutoDismiss = () => {\n\n this.clearAutoDismiss();\n \n if (this.props.autoDelete) {\n this.interval = setTimeout(() => this.deleteToast(), this.props.dismissTime);\n }\n }\n\n clearAutoDismiss = () => {\n clearTimeout(this.interval);\n }\n\n deleteToast = () => {\n this.setState({ type: \"\", message: \"\", icon: \"\" });\n }\n\n render() {\n\n if (!this.state.type.trim().length || !this.state.message.trim().length) {\n return null;\n }\n\n const messageClassName = `toast__message message-${CometChatToastNotification.types[this.state.type]}`;\n const iconClassName = `toast__icon icon-${CometChatToastNotification.types[this.state.type]}`;\n let toastIcon = (this.state.icon.trim().length) ? (\n\n
\n \n
\n ) : null;\n\n return (\n
\n
\n {toastIcon}\n
\n

{Translator.translate(this.state.message, this.props.lang)}

\n
\n \n
\n
\n );\n }\n}\n\nCometChatToastNotification.defaultProps = {\n\ttype: \"\",\n\tmessage: \"\",\n\ticon: \"\",\n\tposition: \"center\",\n\tautoDelete: true,\n\tdismissTime: 3000,\n\tlang: Translator.getDefaultLanguage(),\n\ttheme: theme,\n};\n\nCometChatToastNotification.propTypes = {\n\ttype: PropTypes.oneOf(Object.values(CometChatToastNotification.types).concat(\"\")),\n\tmessage: PropTypes.string.isRequired,\n\ticon: PropTypes.string.isRequired,\n\tposition: PropTypes.oneOf([\"top-right\", \"bottom-right\", \"top-left\", \"bottom-left\", \"center\"]),\n\tautoDelete: PropTypes.bool,\n\tdismissTime: PropTypes.number,\n\tlang: PropTypes.string,\n\ttheme: PropTypes.object,\n};\n","export const alertWrapperStyle = props => {\n\treturn {\n\t\twidth: \"calc(100% - 32px)\",\n\t\theight: \"auto\",\n\t\tbackgroundColor: `${props.theme.backgroundColor.white}`,\n\t\tposition: \"absolute\",\n\t\tmargin: \"0 auto\",\n\t\tpadding: \"16px\",\n\t\tfontSize: \"13px\",\n\t\tborderRadius: \"8px\",\n\t\tborder: \"1px solid #eee\",\n\t\tzIndex: \"4\",\n\t\ttop: \"50%\",\n\t\tleft: \"0\",\n\t\tright: \"0\",\n\t\ttransform: \"translateY(-50%)\",\n\t};\n};\n\nexport const alertMessageStyle = () => {\n\treturn {\n\t\ttextAlign: \"center\"\n\t}\n}\n\nexport const alertButtonStyle = (props) => {\n\treturn {\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tmargin: \"24px 0 0 0\",\n\t\t\"> button\": {\n\t\t\tpadding: \"5px 24px\",\n\t\t\tmargin: \"0 8px\",\n\t\t\tborderRadius: \"4px\",\n\t\t\tfontSize: \"12px\",\n\t\t\tfontWeight: \"600\",\n\t\t\tborder: `1px solid ${props.theme.primaryColor}`,\n\t\t},\n\t\t\"> button[value=yes]\": {\n\t\t\tbackgroundColor: `${props.theme.primaryColor}`,\n\t\t\tcolor: `${props.theme.color.white}`,\n\t\t},\n\t\t\"> button[value=no]\": {\n\t\t\tbackgroundColor: `${props.theme.backgroundColor.secondary}`,\n\t\t},\n\t};\n}","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport {jsx} from \"@emotion/core\";\n\nimport { CometChatBackdrop } from \"../\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {alertWrapperStyle, alertMessageStyle, alertButtonStyle} from \"./style\";\n\nclass CometChatConfirmDialog extends React.Component {\n\n render() {\n\n const confirmButtonText = this.props?.confirmButtonText ? this.props.confirmButtonText : Translator.translate(\"YES\", this.context.language);\n const cancelButtonText = this.props?.cancelButtonText ? this.props.cancelButtonText : Translator.translate(\"NO\", this.getContext().language);\n\n return (\n \n \n
\n
{this.props?.message}
\n
\n \n \n
\n
\n
\n );\n }\n}\n\nexport {CometChatConfirmDialog};","import tabList from \"../resources/tabs.json\";\n\nexport class UIKitSettings {\n\twidgetSettings;\n\n\tstatic userListFilterOptions = {\n\t\tALL: \"all_users\",\n\t\tNONE: \"none\",\n\t\tFRIENDS: \"friends\",\n\t};\n\n\tstatic groupListFilterOptions = {\n\t\tPUBLIC: \"public_groups\",\n\t\tPASSWORD: \"password_protected_groups\",\n\t\tPUBLIC_AND_PASSWORD: \"public_and_password_protected_groups\",\n\t};\n\n\tstatic chatListFilterOptions = {\n\t\tUSERS: \"users\",\n\t\tGROUPS: \"groups\",\n\t\tUSERS_AND_GROUPS: \"all_chats\",\n\t};\n\n\tconstructor() {\n\t\tthis.customJS = \"\";\n\t\tthis.customCSS = \"\";\n\t\tthis.backgroundColor = \"\";\n\t\tthis.primaryColor = \"\";\n\t\tthis.foregroundColor = \"\";\n\t\tthis.overrideSystemBackgroundColor = \"\";\n\n\t\tthis.chatWindow = window;\n\n\t\tthis.userListMode = UIKitSettings.userListFilterOptions[\"ALL\"];\n\t\tthis.groupInMode = UIKitSettings.groupListFilterOptions[\"PUBLIC_AND_PASSWORD\"];\n\t\tthis.chatListMode = UIKitSettings.chatListFilterOptions[\"USERS_AND_GROUPS\"];\n\n\t\tthis.chats = true;\n\t\tthis.calls = false;\n\t\tthis.users = true;\n\t\tthis.groups = true;\n\t\tthis.userSettings = true;\n\t\tthis.tabs = Object.values(tabList);\n\n\t\tthis.searchUsers = true;\n\t\tthis.searchGroups = true;\n\t\tthis.searchMessages = true;\n\t\tthis.searchChats = true;\n\n\t\tthis.unreadCount = true;\n\n\t\tthis.publicGroup = true;\n\t\tthis.privateGroup = true;\n\t\tthis.passwordGroup = true;\n\n\t\tthis.blockUser = true;\n\t\tthis.viewShareMedia = true;\n\n\t\tthis.groupCreation = true;\n\t\tthis.allowDeleteGroup = true;\n\t\tthis.joinOrLeaveGroup = true;\n\t\tthis.viewGroupMembers = true;\n\t\tthis.kickMember = true;\n\t\tthis.banMember = true;\n\t\tthis.allowPromoteDemoteMembers = true;\n\t\tthis.allowAddMembers = true;\n\n\t\tthis.callNotifications = true;\n\t\tthis.joinLeaveNotifications = true;\n\n\t\tthis.enableSoundForMessages = true;\n\t\tthis.enableSoundForCalls = true;\n\n\t\tthis.userVideoCall = true;\n\t\tthis.groupVideoCall = true;\n\t\tthis.userAudioCall = true;\n\t\tthis.groupAudioCall = true;\n\n\t\tthis.sendTypingIndicator = true;\n\t\tthis.showUserPresence = true;\n\t\tthis.showReadDeliveryReceipts = true;\n\n\t\tthis.threadedChats = true;\n\t\tthis.hideDeletedMessages = false;\n\n\t\tthis.sendMessageInOneOnOne = true;\n\t\tthis.sendMessageInGroup = true;\n\t\tthis.editMessage = true;\n\t\tthis.deleteMessage = true;\n\t\tthis.replyingToMessage = true;\n\n\t\tthis.sendEmojis = true;\n\t\tthis.sendEmojisInLargerSize = true;\n\t\tthis.sendGifs = false;\n\t\tthis.shareCopyForwardMessage = false;\n\t\tthis.sendFiles = true;\n\t\tthis.sendPhotoVideos = true;\n\t\tthis.sendVoiceNotes = true;\n\t\tthis.sendLiveReaction = true;\n\n\t\tthis.sendMessageReaction = true;\n\t\tthis.collaborativeWhiteboard = true;\n\t\tthis.collaborativeDocument = true;\n\t\tthis.sendStickers = true;\n\t\tthis.shareLocation = false;\n\t\tthis.polls = true;\n\t\tthis.messageTranslation = true;\n\n\t\tthis.allowModeratorToDeleteMemberMessages = true;\n\t\tthis.setGroupInQnaModeByModerators = false;\n\t\tthis.highlightMessageFromModerators = false;\n\t\tthis.emailReplies = true;\n\t\tthis.smartReplies = true;\n\t\tthis.callRecording = true;\n\t\tthis.callLiveStreaming = true;\n\t\tthis.callTranscription = true;\n\t\tthis.thumbnailGeneration = true;\n\t\tthis.linkPreview = true;\n\t\tthis.saveMessages = true;\n\t\tthis.pinMessages = true;\n\t\tthis.richMediaPreview = true;\n\t\tthis.voiceTranscription = true;\n\t\tthis.mentions = true;\n\t\tthis.xssFilter = true;\n\t\tthis.profanityFilter = true;\n\t\tthis.imageModeration = true;\n\t\tthis.dataMasking = true;\n\t\tthis.malwareScanner = true;\n\t\tthis.sentimentAnalysis = true;\n\t\tthis.inflightMessageModeration = true;\n\t\tthis.messageHistory = true;\n\n\t\tthis.viewProfile = true;\n\t\tthis.messageInPrivate = true;\n\t}\n\n\tsetCustomJS = customJS => {\n\t\tthis.customJS = customJS;\n\t};\n\n\tsetCustomCSS = customCSS => {\n\t\tthis.customCSS = customCSS;\n\t};\n\n\tsetTabs = tabList => {\n\t\tthis.tabs = tabList;\n\t};\n\n\tsetUserSettings = userSettings => {\n\t\tthis.userSettings = userSettings;\n\t};\n\n\tsetCalls = calls => {\n\t\tthis.calls = calls;\n\t};\n\n\tsetUsers = users => {\n\t\tthis.users = users;\n\t};\n\n\tsetChats = chats => {\n\t\tthis.chats = chats;\n\t};\n\n\tsetGroups = groups => {\n\t\tthis.groups = groups;\n\t};\n\n\tsetChatListMode = option => {\n\t\tif (!option.trim().length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst chatListFilterKey = this.returnMatchedKey(UIKitSettings.chatListFilterOptions, option);\n\t\tif (chatListFilterKey) {\n\t\t\tthis.chatListMode = UIKitSettings.chatListFilterOptions[chatListFilterKey];\n\t\t}\n\t};\n\n\tsetUserListMode = option => {\n\t\tif (!option.trim().length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst userListFilterKey = this.returnMatchedKey(UIKitSettings.userListFilterOptions, option);\n\t\tif (userListFilterKey) {\n\t\t\tthis.userListMode = UIKitSettings.userListFilterOptions[userListFilterKey];\n\t\t}\n\t};\n\n\tsetGroupListMode = () => {};\n\n\tsetUserVideoCall = userVideoCall => {\n\t\tthis.userVideoCall = userVideoCall;\n\t};\n\n\tsetGroupVideoCall = groupVideoCall => {\n\t\tthis.groupVideoCall = groupVideoCall;\n\t};\n\n\tsetUserAudioCall = userAudioCall => {\n\t\tthis.userAudioCall = userAudioCall;\n\t};\n\n\tsetGroupAudioCall = groupAudioCall => {\n\t\tthis.groupAudioCall = groupAudioCall;\n\t};\n\n\tsetEditMessage = editMessage => {\n\t\tthis.editMessage = editMessage;\n\t};\n\n\tsetSendMessageInOneOnOne = sendMessageInOneOnOne => {\n\t\tthis.sendMessageInOneOnOne = sendMessageInOneOnOne;\n\t};\n\n\tsetSendMessageInGroup = sendMessageInGroup => {\n\t\tthis.sendMessageInGroup = sendMessageInGroup;\n\t};\n\n\tsetJoinOrLeaveGroup = joinOrLeaveGroup => {\n\t\tthis.joinOrLeaveGroup = joinOrLeaveGroup;\n\t};\n\n\tsetBlockUser = blockUser => {\n\t\tthis.blockUser = blockUser;\n\t};\n\n\tsetSendEmojis = sendEmojis => {\n\t\tthis.sendEmojis = sendEmojis;\n\t};\n\n\tsetSendEmojisInLargerSize = sendEmojisInLargerSize => {\n\t\tthis.sendEmojisInLargerSize = sendEmojisInLargerSize;\n\t};\n\n\tsetSendGifs = sendGifs => {\n\t\tthis.sendGifs = sendGifs;\n\t};\n\n\tsetShareCopyForwardMessage = shareCopyForwardMessage => {\n\t\tthis.shareCopyForwardMessage = shareCopyForwardMessage;\n\t};\n\n\tsetSendFiles = sendFiles => {\n\t\tthis.sendFiles = sendFiles;\n\t};\n\n\tsetSendPhotoVideos = sendPhotoVideos => {\n\t\tthis.sendPhotoVideos = sendPhotoVideos;\n\t};\n\n\tsetViewShareMedia = viewShareMedia => {\n\t\tthis.viewShareMedia = viewShareMedia;\n\t};\n\n\tsetEnableSoundForMessages = enableSoundForMessages => {\n\t\tthis.enableSoundForMessages = enableSoundForMessages;\n\t};\n\n\tsetEnableSoundForCalls = enableSoundForCalls => {\n\t\tthis.enableSoundForCalls = enableSoundForCalls;\n\t};\n\n\tsetSendStickers = sendStickers => {\n\t\tthis.sendStickers = sendStickers;\n\t};\n\n\tsetViewGroupMembers = viewGroupMembers => {\n\t\tthis.viewGroupMembers = viewGroupMembers;\n\t};\n\n\tsetCallNotifications = callNotifications => {\n\t\tthis.callNotifications = callNotifications;\n\t};\n\n\tsetAllowDeleteGroup = allowDeleteGroup => {\n\t\tthis.allowDeleteGroup = allowDeleteGroup;\n\t};\n\n\tsetKickMember = kickMember => {\n\t\tthis.kickMember = kickMember;\n\t};\n\n\tsetBanMember = banMember => {\n\t\tthis.banMember = banMember;\n\t};\n\n\tsetAllowPromoteDemoteMembers = allowPromoteDemoteMembers => {\n\t\tthis.allowPromoteDemoteMembers = allowPromoteDemoteMembers;\n\t};\n\n\tsetAllowAddMembers = allowAddMembers => {\n\t\tthis.allowAddMembers = allowAddMembers;\n\t};\n\n\tsetShareLocation = shareLocation => {\n\t\tthis.shareLocation = shareLocation;\n\t};\n\n\tsetJoinLeaveNotifications = joinLeaveNotifications => {\n\t\tthis.joinLeaveNotifications = joinLeaveNotifications;\n\t};\n\n\tsetSendVoiceNotes = sendVoiceNotes => {\n\t\tthis.sendVoiceNotes = sendVoiceNotes;\n\t};\n\n\tsetMessageTranslation = messageTranslation => {\n\t\tthis.messageTranslation = messageTranslation;\n\t};\n\n\tsetGroupCreation = groupCreation => {\n\t\tthis.groupCreation = groupCreation;\n\t};\n\n\tsetSendTypingIndicator = sendTypingIndicator => {\n\t\tthis.sendTypingIndicator = sendTypingIndicator;\n\t};\n\n\tsetShowUserPresence = showUserPresence => {\n\t\tthis.showUserPresence = showUserPresence;\n\t};\n\n\tsetDeleteMessage = deleteMessage => {\n\t\tthis.deleteMessage = deleteMessage;\n\t};\n\n\tsetThreadedChats = threadedChats => {\n\t\tthis.threadedChats = threadedChats;\n\t};\n\n\tsetReplyingToMessage = replyingToMessage => {\n\t\tthis.replyingToMessage = replyingToMessage;\n\t};\n\n\tsetShowReadDeliveryReceipts = showReadDeliveryReceipts => {\n\t\tthis.showReadDeliveryReceipts = showReadDeliveryReceipts;\n\t};\n\n\tsetHideDeletedMessages = hideDeletedMessages => {\n\t\tthis.hideDeletedMessages = hideDeletedMessages;\n\t};\n\n\tsetEmailReplies = emailReplies => {\n\t\tthis.emailReplies = emailReplies;\n\t};\n\n\tsetSendMessageReaction = sendMessageReaction => {\n\t\tthis.sendMessageReaction = sendMessageReaction;\n\t};\n\n\tsetCollaborativeWhiteboard = collaborativeWhiteboard => {\n\t\tthis.collaborativeWhiteboard = collaborativeWhiteboard;\n\t};\n\n\tsetCollaborativeDocument = collaborativeDocument => {\n\t\tthis.collaborativeDocument = collaborativeDocument;\n\t};\n\n\tsetPolls = polls => {\n\t\tthis.polls = polls;\n\t};\n\n\tsetSendLiveReaction = sendLiveReaction => {\n\t\tthis.sendLiveReaction = sendLiveReaction;\n\t};\n\n\tsetPublicGroup = publicGroup => {\n\t\tthis.publicGroup = publicGroup;\n\t};\n\n\tsetPrivateGroup = privateGroup => {\n\t\tthis.privateGroup = privateGroup;\n\t};\n\n\tsetPasswordGroup = passwordGroup => {\n\t\tthis.passwordGroup = passwordGroup;\n\t};\n\n\tsetAllowModeratorToDeleteMemberMessages = allowModeratorToDeleteMemberMessages => {\n\t\tthis.allowModeratorToDeleteMemberMessages = allowModeratorToDeleteMemberMessages;\n\t}\n\n\tsetUnreadCount = unreadCount => {\n\t\tthis.unreadCount = unreadCount;\n\t};\n\n\tsetSmartReplies = smartReplies => {\n\t\tthis.smartReplies = smartReplies;\n\t};\n\n\tsetSearchUsers = searchUsers => {\n\t\tthis.searchUsers = searchUsers;\n\t};\n\n\tsetSearchGroups = searchGroups => {\n\t\tthis.searchGroups = searchGroups;\n\t};\n\n\tsetSearchMessages = searchMessages => {\n\t\tthis.searchMessages = searchMessages;\n\t};\n\n\tsetCallRecording = callRecording => {\n\t\tthis.callRecording = callRecording;\n\t};\n\n\tsetCallLiveStreaming = callLiveStreaming => {\n\t\tthis.callLiveStreaming = callLiveStreaming;\n\t};\n\n\tsetCallTranscription = callTranscription => {\n\t\tthis.callTranscription = callTranscription;\n\t};\n\n\tsetThumbnailGeneration = thumbnailGeneration => {\n\t\tthis.thumbnailGeneration = thumbnailGeneration;\n\t};\n\n\tsetLinkPreview = linkPreview => {\n\t\tthis.linkPreview = linkPreview;\n\t};\n\n\tsetSaveMessages = saveMessages => {\n\t\tthis.saveMessages = saveMessages;\n\t};\n\n\tsetPinMessages = pinMessages => {\n\t\tthis.pinMessages = pinMessages;\n\t};\n\n\tsetRichMediaPreview = richMediaPreview => {\n\t\tthis.richMediaPreview = richMediaPreview;\n\t};\n\n\tsetVoiceTranscription = voiceTranscription => {\n\t\tthis.voiceTranscription = voiceTranscription;\n\t};\n\n\tsetMentions = mentions => {\n\t\tthis.mentions = mentions;\n\t};\n\n\tsetXssFilter = xssFilter => {\n\t\tthis.xssFilter = xssFilter;\n\t};\n\n\tsetProfanityFilter = profanityFilter => {\n\t\tthis.profanityFilter = profanityFilter;\n\t};\n\n\tsetImageModeration = imageModeration => {\n\t\tthis.imageModeration = imageModeration;\n\t};\n\n\tsetDataMasking = dataMasking => {\n\t\tthis.dataMasking = dataMasking;\n\t};\n\n\tsetMalwareScanner = malwareScanner => {\n\t\tthis.malwareScanner = malwareScanner;\n\t};\n\n\tsetSentimentAnalysis = sentimentAnalysis => {\n\t\tthis.sentimentAnalysis = sentimentAnalysis;\n\t};\n\n\tsetInflightMessageModeration = inflightMessageModeration => {\n\t\tthis.inflightMessageModeration = inflightMessageModeration;\n\t};\n\n\tsetMessageHistory = messageHistory => {\n\t\tthis.messageHistory = messageHistory;\n\t};\n\n\tsetViewProfile = viewProfile => {\n\t\tthis.viewProfile = viewProfile;\n\t};\n\n\tsetMessageInPrivate = messageInPrivate => {\n\t\tthis.messageInPrivate = messageInPrivate;\n\t};\n\n\tsetChatWindow = chatWindow => {\n\t\tthis.chatWindow = chatWindow;\n\t};\n\n\treturnMatchedKey = (matchWith, optionToMatch) => {\n\t\tfor (const [key, value] of Object.entries(matchWith)) {\n\t\t\tif (value === optionToMatch) {\n\t\t\t\treturn key;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t};\n}\n","import { CometChat } from \"@cometchat-pro/chat\";\n\nexport class FeatureRestriction {\n\t/**\n\t * Core Chat\n\t */\n\tstatic chat_users_list_enabled = \"core.chat.users.list.enabled\";\n\tstatic chat_users_presence_enabled = \"core.chat.users.presence.enabled\";\n\tstatic chat_users_search_enabled = \"core.chat.users.search.enabled\";\n\n\tstatic chat_groups_enabled = \"core.chat.groups.enabled\";\n\tstatic chat_groups_public_enabled = \"core.chat.groups.public.enabled\";\n\tstatic chat_groups_private_enabled = \"core.chat.groups.private.enabled\";\n\tstatic chat_groups_password_enabled = \"core.chat.groups.password.enabled\";\n\tstatic chat_groups_search_enabled = \"core.chat.groups.search.enabled\";\n\n\tstatic chat_messages_media_enabled = \"core.chat.messages.media.enabled\";\n\tstatic chat_messages_threads_enabled = \"core.chat.messages.threads.enabled\";\n\tstatic chat_messages_replies_enabled = \"core.chat.messages.replies.enabled\";\n\tstatic chat_messages_receipts_enabled = \"core.chat.messages.receipts.enabled\";\n\tstatic chat_messages_unread_count_enabled = \"core.chat.messages.unread-count.enabled\";\n\tstatic chat_messages_search_enabled = \"core.chat.messages.search.enabled\";\n\tstatic chat_messages_history_enabled = \"core.chat.messages.history.enabled\";\n\tstatic chat_messages_custom_enabled = \"core.chat.messages.custom.enabled\";\n\n\tstatic chat_one_on_one_enabled = \"core.chat.one-on-one.enabled\";\n\tstatic chat_voice_notes_enabled = \"core.chat.voice-notes.enabled\";\n\tstatic chat_typing_indicator_enabled = \"core.chat.typing-indicator.enabled\";\n\n\t/**\n\t * Voice & Video Calling/Conferencing\n\t */\n\tstatic calls_enabled = \"core.call.enabled\";\n\tstatic call_one_on_one_video_enabled = \"core.call.one-on-one.video.enabled\";\n\tstatic call_groups_video_enabled = \"core.call.groups.video.enabled\";\n\tstatic call_one_on_one_audio_enabled = \"core.call.one-on-one.audio.enabled\";\n\tstatic call_groups_audio_enabled = \"core.call.groups.audio.enabled\";\n\tstatic call_recording_enabled = \"core.call.recording.enabled\";\n\tstatic call_live_streaming_enabled = \"core.call.live-streaming.enabled\";\n\tstatic call_transcript_enabled = \"core.call.transcript.enabled\";\n\n\t/**\n\t * Collaboration\n\t */\n\tstatic collaboration_whiteboard_enabled = \"features.collaboration.whiteboard.enabled\";\n\tstatic collaboration_document_enabled = \"features.collaboration.document.enabled\";\n\n\t/**\n\t * Moderation\n\t */\n\tstatic moderation_groups_moderators_enabled = \"features.moderation.groups.moderators.enabled\";\n\tstatic moderation_users_block_enabled = \"features.moderation.users.block.enabled\";\n\tstatic moderation_groups_kick_enabled = \"features.moderation.groups.kick.enabled\";\n\tstatic moderation_groups_ban_enabled = \"features.moderation.groups.ban.enabled\";\n\tstatic moderation_xss_filter_enabled = \"features.moderation.xss-filter.enabled\";\n\tstatic moderation_profanity_filter_enabled = \"features.moderation.profanity-filter.enabled\";\n\tstatic moderation_image_moderation_enabled = \"features.moderation.image-moderation.enabled\";\n\tstatic moderation_data_masking_enabled = \"features.moderation.data-masking.enabled\";\n\tstatic moderation_malware_scanner_enabled = \"features.moderation.malware-scanner.enabled\";\n\tstatic moderation_sentiment_analysis_enabled = \"features.moderation.sentiment-analysis.enabled\";\n\tstatic moderation_inflight_message_moderation_enabled = \"features.moderation.inflight-message-moderation.enabled\";\n\n\t/**\n\t * User Engagement\n\t */\n\tstatic reactions_enabled = \"features.ue.reactions.enabled\";\n\tstatic emojis_enabled = \"features.ue.emojis.enabled\";\n\tstatic stickers_enabled = \"features.ue.stickers.enabled\";\n\tstatic message_translation_enabled = \"features.ue.message-translation.enabled\";\n\tstatic email_replies_enabled = \"features.ue.email-replies.enabled\";\n\tstatic polls_enabled = \"features.ue.polls.enabled\";\n\tstatic live_reactions_enabled = \"features.ue.live-reactions.enabled\";\n\tstatic smart_replies_enabled = \"features.ue.smart-replies.enabled\";\n\tstatic mentions_enabled = \"features.ue.mentions.enabled\";\n\n\t/**\n\t * User Experience\n\t */\n\tstatic thumbnail_generation_enabled = \"features.ux.thumbnail-generation.enabled\";\n\tstatic link_preview_enabled = \"features.ux.link-preview.enabled\";\n\tstatic messages_saved_enabled = \"features.ux.messages.saved.enabled\";\n\tstatic messages_pinned_enabled = \"features.ux.messages.pinned.enabled\";\n\tstatic rich_media_preview_enabled = \"features.ux.rich-media-preview.enabled\";\n\tstatic voice_transcription_enabled = \"features.ux.voice-transcription.enabled\";\n\n\t/**\n\t * Extensions slug\n\t */\n\tstatic dataMasking = \"data-masking\";\n\tstatic profanityFilter = \"profanity-filter\";\n\tstatic thumbnailGeneration = \"thumbnail-generator\";\n\tstatic linkPreview = \"link-preview\";\n\tstatic richMediaPreview = \"rich-media\";\n\tstatic sticker = \"stickers\";\n\tstatic reactions = \"reactions\";\n\tstatic messageTranslation = \"message-translation\";\n\tstatic smartReplies = \"smart-reply\";\n\tstatic collaborationWhiteboard = \"whiteboard\";\n\tstatic collaborationDocument = \"document\";\n\tstatic pinMessages = \"pin-message\";\n\tstatic saveMessages = \"save-message\";\n\tstatic voiceTranscription = \"voice-transcription\";\n\tstatic polls = \"polls\";\n\tstatic xssFilter = \"xss-filter\";\n\tstatic imageModeration = \"image-moderation\";\n\tstatic malwareScanner = \"virus-malware-scanner\";\n\tstatic sentimentAnalysis = \"sentiment-analysis\";\n\tstatic emailReplies = \"email-replies\";\n\tstatic emojis = \"emojis\";\n\tstatic mentions = \"mentions\";\n\n\tstatic isExtensionEnabled = extensionKey => {\n\t\treturn new Promise(resolve =>\n\t\t\tCometChat.isExtensionEnabled(extensionKey)\n\t\t\t\t.then(response => resolve(response))\n\t\t\t\t.catch(error => resolve(false)),\n\t\t);\n\t};\n\n\tUIKitSettings;\n\n\tconstructor(UIKitSettings) {\n\t\tthis.UIKitSettings = UIKitSettings;\n\t}\n\n\tisRecentChatListEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.chats));\n\tisGroupListEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.groups));\n\tisUserSettingsEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.userSettings));\n\tisEditMessageEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.editMessage));\n\tisQNAModeEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.setGroupInQnaModeByModerators));\n\tisHighlightMessagesEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.highlightMessageFromModerators));\n\tisJoinLeaveGroupsEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.joinOrLeaveGroup));\n\tisLargerSizeEmojisEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.sendEmojisInLargerSize));\n\tisGifsEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.sendGifs));\n\tisShareCopyForwardMessageEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.shareCopyForwardMessage));\n\tisSharedMediaEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.viewShareMedia));\n\tisMessagesSoundEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.enableSoundForMessages));\n\tisCallsSoundEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.enableSoundForCalls));\n\tisViewingGroupMembersEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.viewGroupMembers));\n\tisCallActionMessagesEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.callNotifications));\n\tisGroupDeletionEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.allowDeleteGroup));\n\tisChangingGroupMemberScopeEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.allowPromoteDemoteMembers));\n\tisAddingGroupMembersEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.allowAddMembers));\n\tisLocationSharingEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.shareLocation));\n\tisGroupActionMessagesEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.joinLeaveNotifications));\n\tisGroupCreationEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.groupCreation));\n\tisDeleteMessageEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.deleteMessage));\n\tisHideDeletedMessagesEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.hideDeletedMessages));\n\tisViewProfileEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.viewProfile));\n\tisMessageInPrivateEnabled = () => new Promise(resolve => resolve(this.UIKitSettings.messageInPrivate));\n\n\tisCallListEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.calls_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.calls))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisUserListEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.chat_users_list_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.users))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisOneOnOneVideoCallEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.call_one_on_one_video_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.userVideoCall))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisGroupVideoCallEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.call_groups_video_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.groupVideoCall))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisOneOnOneAudioCallEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.call_one_on_one_audio_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.userAudioCall))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisGroupAudioCallEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.call_groups_audio_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.groupAudioCall))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisOneOnOneChatEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.chat_one_on_one_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.sendMessageInOneOnOne))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisGroupChatEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.chat_groups_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.sendMessageInGroup))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisDeleteMemberMessageEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.moderation_groups_moderators_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.allowModeratorToDeleteMemberMessages))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisBlockUserEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.moderation_users_block_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.blockUser))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisEmojisEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.emojis_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.sendEmojis))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisFilesEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.chat_messages_media_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.sendFiles))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisPhotosVideosEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.chat_messages_media_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.sendPhotoVideos))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisKickingGroupMembersEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.moderation_groups_kick_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.kickMember))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisBanningGroupMembersEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.moderation_groups_ban_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.banMember))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisVoiceNotesEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.chat_voice_notes_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.sendVoiceNotes))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisTypingIndicatorsEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.chat_typing_indicator_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.sendTypingIndicator))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisUserPresenceEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.chat_users_presence_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.showUserPresence))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisThreadedMessagesEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.chat_messages_threads_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.threadedChats))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisMessageRepliesEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.chat_messages_replies_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.replyingToMessage))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisDeliveryReceiptsEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.chat_messages_receipts_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.showReadDeliveryReceipts))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisLiveReactionsEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.live_reactions_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.sendLiveReaction))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisPublicGroupEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.chat_groups_public_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.publicGroup))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisPrivateGroupEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.chat_groups_private_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.privateGroup))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisPasswordGroupEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.chat_groups_password_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.passwordGroup))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisUnreadCountEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.chat_messages_unread_count_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.unreadCount))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisUserSearchEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.chat_users_search_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.searchUsers))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisGroupSearchEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.chat_groups_search_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.searchGroups))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisMessageSearchEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.chat_messages_search_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.searchMessages))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisCallRecordingEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.call_recording_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.callRecording))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisCallLiveStreamingEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.call_live_streaming_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.callLiveStreaming))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisCallTranscriptEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.call_transcript_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.callTranscription))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisMessageHistoryEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.chat_messages_history_enabled)\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.messageHistory))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisMessageTranslationEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.message_translation_enabled)\n\t\t\t\t.then(response => response && FeatureRestriction.isExtensionEnabled(FeatureRestriction.messageTranslation))\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.messageTranslation))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisReactionsEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.reactions_enabled)\n\t\t\t\t.then(response => response && FeatureRestriction.isExtensionEnabled(FeatureRestriction.reactions))\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.sendMessageReaction))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisCollaborativeWhiteBoardEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.collaboration_whiteboard_enabled)\n\t\t\t\t.then(response => response && FeatureRestriction.isExtensionEnabled(FeatureRestriction.collaborationWhiteboard))\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.collaborativeWhiteboard))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisCollaborativeDocumentEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.collaboration_document_enabled)\n\t\t\t\t.then(response => response && FeatureRestriction.isExtensionEnabled(FeatureRestriction.collaborationDocument))\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.collaborativeDocument))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisStickersEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.stickers_enabled)\n\t\t\t\t.then(response => response && FeatureRestriction.isExtensionEnabled(FeatureRestriction.sticker))\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.sendStickers))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisEmailRepliesEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.email_replies_enabled)\n\t\t\t\t.then(response => response && FeatureRestriction.isExtensionEnabled(FeatureRestriction.emailReplies))\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.emailReplies))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisPollsEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.polls_enabled)\n\t\t\t\t.then(response => response && FeatureRestriction.isExtensionEnabled(FeatureRestriction.polls))\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.polls))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisSmartRepliesEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.smart_replies_enabled)\n\t\t\t\t.then(response => response && FeatureRestriction.isExtensionEnabled(FeatureRestriction.smartReplies))\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.smartReplies))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisThumbnailGenerationEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.thumbnail_generation_enabled)\n\t\t\t\t.then(response => response && FeatureRestriction.isExtensionEnabled(FeatureRestriction.thumbnailGeneration))\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.thumbnailGeneration))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisLinkPreviewEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.link_preview_enabled)\n\t\t\t\t.then(response => response && FeatureRestriction.isExtensionEnabled(FeatureRestriction.linkPreview))\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.linkPreview))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisSaveMessagesEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.messages_saved_enabled)\n\t\t\t\t.then(response => response && FeatureRestriction.isExtensionEnabled(FeatureRestriction.saveMessages))\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.saveMessages))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisPinMessagesEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.messages_pinned_enabled)\n\t\t\t\t.then(response => response && FeatureRestriction.isExtensionEnabled(FeatureRestriction.pinMessages))\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.pinMessages))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisRichMediaPreviewEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.rich_media_preview_enabled)\n\t\t\t\t.then(response => response && FeatureRestriction.isExtensionEnabled(FeatureRestriction.richMediaPreview))\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.richMediaPreview))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisVoiceTranscriptionEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.voice_transcription_enabled)\n\t\t\t\t.then(response => response && FeatureRestriction.isExtensionEnabled(FeatureRestriction.voiceTranscription))\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.voiceTranscription))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisMentionsEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.mentions_enabled)\n\t\t\t\t.then(response => response && FeatureRestriction.isExtensionEnabled(FeatureRestriction.mentions))\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.mentions))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisXssFilterEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.moderation_xss_filter_enabled)\n\t\t\t\t.then(response => response && FeatureRestriction.isExtensionEnabled(FeatureRestriction.xssFilter))\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.xssFilter))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisProfanityFilterEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.moderation_profanity_filter_enabled)\n\t\t\t\t.then(response => response && FeatureRestriction.isExtensionEnabled(FeatureRestriction.profanityFilter))\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.profanityFilter))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisImageModerationEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.moderation_image_moderation_enabled)\n\t\t\t\t.then(response => response && FeatureRestriction.isExtensionEnabled(FeatureRestriction.imageModeration))\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.imageModeration))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisDataMaskingEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.moderation_data_masking_enabled)\n\t\t\t\t.then(response => response && FeatureRestriction.isExtensionEnabled(FeatureRestriction.dataMasking))\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.dataMasking))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisMalwareScannerEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.moderation_malware_scanner_enabled)\n\t\t\t\t.then(response => response && FeatureRestriction.isExtensionEnabled(FeatureRestriction.malwareScanner))\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.malwareScanner))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tisSentimentAnalysisEnabled = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tCometChat.isFeatureEnabled(FeatureRestriction.moderation_sentiment_analysis_enabled)\n\t\t\t\t.then(response => response && FeatureRestriction.isExtensionEnabled(FeatureRestriction.sentimentAnalysis))\n\t\t\t\t.then(response => resolve(response && this.UIKitSettings.sentimentAnalysis))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\t// isInFlightMessageModerationEnabled = () => {\n\n\t// return new Promise(resolve => {\n\n\t// CometChat.isFeatureEnabled(FeatureRestriction.moderation_inflight_message_moderation_enabled)\n\t// .then(response => {\n\n\t// return response\n\t// && FeatureRestriction.isExtensionEnabled(FeatureRestriction.sentimentAnalysis)\n\t// && this.UIKitSettings.inflightMessageModeration;\n\t// })\n\t// .catch(error => resolve(false));\n\t// });\n\t// }\n}\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatToastNotification } from \"../components/Shared\";\nimport { UIKitSettings } from \"./UIKitSettings\";\nimport * as enums from \"./enums.js\";\n\nimport Translator from \"../resources/localization/translator\";\nimport { FeatureRestriction } from \"./FeatureRestriction\";\nimport { theme } from \"../resources/theme\";\n\nexport const CometChatContext = React.createContext({});\n\nexport class CometChatContextProvider extends React.Component {\n\t\n\tloggedInUser;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tconst settings = new UIKitSettings();\n\t\tconst featureRestriction = new FeatureRestriction(settings);\n\n\t\tthis.state = {\n\t\t\titem: {},\n\t\t\ttype: \"\",\n\t\t\ttoastMessage: props.toastMessage,\n\t\t\tgroupMembers: props.groupMembers,\n\t\t\tbannedGroupMembers: props.bannedGroupMembers,\n\t\t\tgroupAdmins: props.groupAdmins,\n\t\t\tgroupModerators: props.groupModerators,\n\t\t\tcallInProgress: props.callInProgress,\n\t\t\tcallType: \"\",\n\t\t\tdeletedGroupId: \"\",\n\t\t\tleftGroupId: \"\",\n\t\t\tlastMessage: {},\n\t\t\tunreadMessages: [],\n\t\t\tclearedUnreadMessages: false,\n\t\t\tdirectCallCustomMessage: {},\n\t\t\tdirectCallCustomMessageAction: \"\",\n\t\t\tUIKitSettings: settings,\n\t\t\tFeatureRestriction: featureRestriction,\n\t\t\ttheme: theme,\n\t\t\tlanguage: props.language,\n\t\t\troles: {\n\t\t\t\t[CometChat.GROUP_MEMBER_SCOPE.ADMIN]: Translator.translate(\"ADMINISTRATOR\", props.language),\n\t\t\t\t[CometChat.GROUP_MEMBER_SCOPE.MODERATOR]: Translator.translate(\"MODERATOR\", props.language),\n\t\t\t\t[CometChat.GROUP_MEMBER_SCOPE.PARTICIPANT]: Translator.translate(\"PARTICIPANT\", props.language),\n\t\t\t},\n\t\t\tgetLoggedinUser: this.getLoggedinUser,\n\t\t\tsetGroupMembers: this.setGroupMembers,\n\t\t\tupdateGroupMembers: this.updateGroupMembers,\n\t\t\tsetAllGroupMembers: this.setAllGroupMembers,\n\t\t\tsetGroupAdmins: this.setGroupAdmins,\n\t\t\tsetGroupModerators: this.setGroupModerators,\n\t\t\tsetBannedGroupMembers: this.setBannedGroupMembers,\n\t\t\tupdateBannedGroupMembers: this.updateBannedGroupMembers,\n\t\t\tclearGroupMembers: this.clearGroupMembers,\n\t\t\tsetToastMessage: this.setToastMessage,\n\t\t\tsetCallInProgress: this.setCallInProgress,\n\t\t\tsetItem: this.setItem,\n\t\t\tsetType: this.setType,\n\t\t\tsetTypeAndItem: this.setTypeAndItem,\n\t\t\tsetDeletedGroupId: this.setDeletedGroupId,\n\t\t\tsetLeftGroupId: this.setLeftGroupId,\n\t\t\tsetLastMessage: this.setLastMessage,\n\t\t\tsetClearedUnreadMessages: this.setClearedUnreadMessages,\n\t\t\tsetDirectCallCustomMessage: this.setDirectCallCustomMessage,\n\t\t\tcheckIfDirectCallIsOngoing: this.checkIfDirectCallIsOngoing,\n\t\t\tcheckIfCallIsOngoing: this.checkIfCallIsOngoing,\n\t\t\tgetActiveCallSessionID: this.getActiveCallSessionID,\n\t\t\thasKeyValue: this.hasKeyValue,\n\t\t};\n\n\t\tthis.toastRef = React.createRef();\n\t}\n\n\tcomponentDidMount() {\n\n\t\tthis.getLoggedinUser();\n\t\t\n\t\tif (this.props.user.trim().length) {\n\t\t\tthis.getUser(this.props.user.trim())\n\t\t\t\t.then(user => {\n\t\t\t\t\tthis.setType(CometChat.ACTION_TYPE.TYPE_USER);\n\t\t\t\t\tthis.setItem(user);\n\t\t\t\t})\n\t\t\t\t.catch(error => {\n\t\t\t\t\tconst errorCode = error && error.hasOwnProperty(\"code\") ? error.code : \"uid not available\";\n\t\t\t\t\tthis.toastRef.setError(errorCode);\n\t\t\t\t});\n\t\t} else if (this.props.group.trim().length) {\n\t\t\tthis.getGroup(this.props.group.trim())\n\t\t\t\t.then(group => {\n\t\t\t\t\tthis.setType(CometChat.ACTION_TYPE.TYPE_GROUP);\n\t\t\t\t\tthis.setItem(group);\n\t\t\t\t})\n\t\t\t\t.catch(error => {\n\t\t\t\t\tconst errorCode = error && error.hasOwnProperty(\"code\") ? error.code : \"guid not available\";\n\t\t\t\t\tthis.toastRef.setError(errorCode);\n\t\t\t\t});\n\t\t} else if (this.props.user.trim().length === 0 && this.props.group.trim().length === 0 && this.props._component === enums.CONSTANTS[\"MESSAGES_COMPONENT\"]) {\n\t\t\tconst errorCode = \"UID_OR_GUID_NOT_AVAILABLE\";\n\t\t\tthis.toastRef.setError(errorCode);\n\t\t}\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\t\tif (this.props.user.trim().length && prevProps.user !== this.props.user) {\n\t\t\tthis.getUser(this.props.user)\n\t\t\t\t.then(user => {\n\t\t\t\t\tthis.setType(CometChat.ACTION_TYPE.TYPE_USER);\n\t\t\t\t\tthis.setItem(user);\n\t\t\t\t\tthis.setClearedUnreadMessages(false);\n\t\t\t\t})\n\t\t\t\t.catch(error => {\n\t\t\t\t\tconst errorCode = error && error.hasOwnProperty(\"code\") ? error.code : \"uid not available\";\n\t\t\t\t\tthis.toastRef.setError(errorCode);\n\t\t\t\t});\n\t\t} else if (this.props.group.trim().length && prevProps.group !== this.props.group) {\n\t\t\tthis.getGroup(this.props.group)\n\t\t\t\t.then(group => {\n\t\t\t\t\tthis.setType(CometChat.ACTION_TYPE.TYPE_GROUP);\n\t\t\t\t\tthis.setItem(group);\n\t\t\t\t\tthis.setClearedUnreadMessages(false);\n\t\t\t\t})\n\t\t\t\t.catch(error => {\n\t\t\t\t\tconst errorCode = error && error.hasOwnProperty(\"code\") ? error.code : \"guid not available\";\n\t\t\t\t\tthis.toastRef.setError(errorCode);\n\t\t\t\t});\n\t\t}\n\n\t\t//when the active group is deleted, close the chat window.\n\t\tif (this.state.type === CometChat.ACTION_TYPE.TYPE_GROUP && this.state.item.guid === this.state.deletedGroupId) {\n\t\t\tthis.setItem({});\n\t\t\tthis.setType(\"\");\n\t\t\tthis.setDeletedGroupId(\"\");\n\t\t}\n\n\t\t//when the active group is left, close the chat window.\n\t\tif (this.state.type === CometChat.ACTION_TYPE.TYPE_GROUP && this.state.item.guid === this.state.leftGroupId) {\n\t\t\tthis.setTypeAndItem({}, \"\");\n\t\t\tthis.setLeftGroupId(\"\");\n\t\t}\n\t\t\n\t\tif (prevProps.language !== this.props.language) {\n\t\t\tthis.setState({ language: this.props.language });\n\t\t}\n\t}\n\n\tgetUser = uid => {\n\t\tconst promise = new Promise((resolve, reject) => {\n\t\t\tif (!uid) {\n\t\t\t\tconst error = { code: \"uid not available\" };\n\t\t\t\treject(error);\n\t\t\t}\n\n\t\t\tCometChat.getUser(uid)\n\t\t\t\t.then(user => resolve(user))\n\t\t\t\t.catch(error => reject(error));\n\t\t});\n\n\t\treturn promise;\n\t};\n\n\tgetGroup = guid => {\n\t\tconst promise = new Promise((resolve, reject) => {\n\t\t\tif (!guid) {\n\t\t\t\tconst error = { code: \"guid not available\" };\n\t\t\t\treject(error);\n\t\t\t}\n\n\t\t\tCometChat.getGroup(guid)\n\t\t\t\t.then(group => {\n\t\t\t\t\tif (group.hasJoined === false) {\n\t\t\t\t\t\tconst guid = group.guid;\n\t\t\t\t\t\tconst groupType = group.type;\n\t\t\t\t\t\tlet password = \"\";\n\t\t\t\t\t\tif (groupType === CometChat.GROUP_TYPE.PASSWORD) {\n\t\t\t\t\t\t\tconst promptMessage = Translator.translate(\"Enter password\", this.props.lang);\n\t\t\t\t\t\t\tpassword = prompt(promptMessage);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tCometChat.joinGroup(guid, groupType, password)\n\t\t\t\t\t\t\t.then(group => resolve(group))\n\t\t\t\t\t\t\t.catch(error => reject(error));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve(group);\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch(error => reject(error));\n\t\t});\n\n\t\treturn promise;\n\t};\n\n\tsetToastMessage = (type, message) => {\n\t\t// switch(type) {\n\n\t\t// case \"error\":\n\t\t// this.toastRef.setError(message);\n\t\t// break;\n\t\t// case \"success\":\n\t\t// this.toastRef.setSuccess(message);\n\t\t// break;\n\t\t// case \"info\":\n\t\t// this.toastRef.setInfo(message);\n\t\t// break;\n\t\t// case \"warning\":\n\t\t// this.toastRef.setWarning(message);\n\t\t// break;\n\t\t// default:\n\t\t// break;\n\t\t// }\n\n\t\treturn null;\n\t};\n\n\tgetLoggedinUser = () => {\n\t\tlet timerCounter = 10000;\n\t\tlet timer = 0;\n\n\t\treturn new Promise((resolve, reject) => {\n\n\t\t\tif (timerCounter === timer) {\n\t\t\t\treturn reject(`timer reached ${timerCounter}`);\n\t\t\t};\n\n\t\t\tif (this.loggedInUser) {\n\t\t\t\treturn resolve(this.loggedInUser);\n\t\t\t};\n\n\t\t\tif (!CometChat.isInitialized()) {\n\t\t\t\treturn reject(\"CometChat not initialized\");\n\t\t\t};\n\n\t\t\tthis.isUserLoggedIn = setInterval(() => {\n\t\t\t\tCometChat.getLoggedinUser()\n\t\t\t\t\t.then(user => {\n\n\t\t\t\t\t\tthis.loggedInUser = user;\n\t\t\t\t\t\tclearInterval(this.isUserLoggedIn);\n\t\t\t\t\t\treturn resolve(user);\n\t\t\t\t\t})\n\t\t\t\t\t.catch(error => reject(error));\n\n\t\t\t\ttimer += 100;\n\t\t\t}, 100);\n\t\t});\n\n\t\t// return new Promise((resolve, reject) => {\n\t\t// \tCometChat.getLoggedinUser()\n\t\t// \t\t.then(user => resolve(user))\n\t\t// \t\t.catch(error => reject(error));\n\t\t// });\n\t};\n\n\tclearGroupMembers = () => {\n\t\tthis.setState({\n\t\t\tgroupMembers: [],\n\t\t\tgroupAdmins: [],\n\t\t\tgroupModerators: [],\n\t\t\tbannedGroupMembers: [],\n\t\t});\n\t};\n\n\tsetAllGroupMembers = (groupMembers, groupAdmins, groupModerators) => {\n\t\tthis.setState({\n\t\t\tgroupMembers: [...this.state.groupMembers, ...groupMembers],\n\t\t\tgroupAdmins: [...this.state.groupAdmins, ...groupAdmins],\n\t\t\tgroupModerators: [...this.state.groupModerators, ...groupModerators],\n\t\t});\n\t};\n\n\tupdateGroupMembers = groupMembers => {\n\t\tthis.setState({\n\t\t\tgroupMembers: [...groupMembers],\n\t\t});\n\t};\n\n\tsetGroupMembers = groupMembers => {\n\t\tthis.setState({\n\t\t\tgroupMembers: [...this.state.groupMembers, ...groupMembers],\n\t\t});\n\t};\n\n\tsetGroupAdmins = groupAdmins => {\n\t\tthis.setState({\n\t\t\tgroupAdmins: [...this.state.groupAdmins, ...groupAdmins],\n\t\t});\n\t};\n\n\tsetGroupModerators = groupModerators => {\n\t\tthis.setState({\n\t\t\tgroupModerators: [...this.state.groupModerators, ...groupModerators],\n\t\t});\n\t};\n\n\tsetBannedGroupMembers = bannedMembers => {\n\t\tthis.setState({\n\t\t\tbannedGroupMembers: [...this.state.bannedGroupMembers, ...bannedMembers],\n\t\t});\n\t};\n\n\tupdateBannedGroupMembers = bannedMembers => {\n\t\tthis.setState({\n\t\t\tbannedGroupMembers: [...bannedMembers],\n\t\t});\n\t};\n\n\tsetCallInProgress = (call, callType) => {\n\t\tthis.setState({ callInProgress: { ...call }, callType });\n\t};\n\n\tsetItem = item => {\n\t\tthis.setState({ item: { ...item } });\n\t};\n\n\tsetType = type => {\n\t\tthis.setState({ type });\n\t};\n\n\tsetTypeAndItem = (type, item) => {\n\t\tthis.setState({ item: { ...item }, type });\n\t};\n\n\tsetDeletedGroupId = guid => {\n\t\tthis.setState({ deletedGroupId: guid });\n\t};\n\n\tsetLeftGroupId = guid => {\n\t\tthis.setState({ leftGroupId: guid });\n\t};\n\n\tsetLastMessage = message => {\n\t\tthis.setState({ lastMessage: message });\n\t};\n\t\n\tsetClearedUnreadMessages = flag => {\n\t\tthis.setState({ clearedUnreadMessages: flag });\n\t};\n\n\tsetDirectCallCustomMessage = (message, event) => {\n\t\tthis.setState({ directCallCustomMessage: message, directCallCustomMessageAction: event });\n\t};\n\n\tcheckIfDirectCallIsOngoing = () => {\n\t\tlet output = null;\n\n\t\tif (Object.keys(this.state.callInProgress).length && (this.state.callType === enums.CONSTANTS[\"INCOMING_DIRECT_CALLING\"] || this.state.callType === enums.CONSTANTS[\"OUTGOING_DIRECT_CALLING\"])) {\n\t\t\tif (this.state.callInProgress.customData.sessionID === this.state.item.guid) {\n\t\t\t\toutput = enums.CONSTANTS.CALLS[\"ONGOING_CALL_SAME_GROUP\"];\n\t\t\t} else {\n\t\t\t\toutput = enums.CONSTANTS.CALLS[\"ONGOING_CALL_DIFF_GROUP\"];\n\t\t\t}\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tcheckIfCallIsOngoing = () => {\n\t\tif (Object.keys(this.state.callInProgress).length) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t};\n\n\tgetActiveCallSessionID = () => {\n\t\tlet sessionID;\n\t\tif (this.state.callType === enums.CONSTANTS[\"INCOMING_DIRECT_CALLING\"] || this.state.callType === enums.CONSTANTS[\"OUTGOING_DIRECT_CALLING\"]) {\n\t\t\tsessionID = this.state.callInProgress?.data?.customData?.sessionID;\n\t\t} else {\n\t\t\tsessionID = this.state.callInProgress?.sessionId;\n\t\t}\n\n\t\treturn sessionID;\n\t};\n\n\thasKeyValue = (data, key) => {\n\t\tif (data.hasOwnProperty(key) === false || data[key] === null || data[key] === undefined) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t (this.toastRef = el)} lang={this.props.language} position={this.props.toastNotificationPos} />\n\t\t\t\t{this.props.children}\n\t\t\t\n\t\t);\n\t}\n}\n\nCometChatContextProvider.defaultProps = {\n\ttoastMessage: {},\n\tgroupMembers: [],\n\tbannedGroupMembers: [],\n\tgroupAdmins: [],\n\tgroupModerators: [],\n\tcallInProgress: {},\n\tuser: \"\",\n\tgroup: \"\",\n\t_component: \"\",\n\tlanguage: Translator.getDefaultLanguage(),\n};\n\nCometChatContextProvider.propTypes = {\n\ttoastMessage: PropTypes.object,\n\tgroupMembers: PropTypes.array,\n\tbannedGroupMembers: PropTypes.array,\n\tgroupAdmins: PropTypes.array,\n\tgroupModerators: PropTypes.array,\n\tcallInProgress: PropTypes.object,\n\tgroup: PropTypes.string,\n\tuser: PropTypes.string,\n\t_component: PropTypes.string,\n\tlanguage: PropTypes.string,\n};\n","export class Storage {\n\n static attachChangeDetection = (callback) => {\n window.addEventListener('storage', callback);\n }\n\n static detachChangeDetection = (callback) => {\n window.removeEventListener('storage', callback);\n }\n\n static setItem = (storageKey, storageValue) => {\n localStorage.setItem(storageKey, JSON.stringify(storageValue));\n }\n\n static getItem = (storageKey) => {\n return JSON.parse(localStorage.getItem(storageKey));\n }\n\n static removeItem = (storageKey) => {\n localStorage.removeItem(storageKey);\n }\n\n static clear = () => {\n\n }\n}","\n\nexport const callScreenWrapperStyle = (props, keyframes) => {\n\n const fadeAnimation = keyframes`\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }`;\n\n return {\n width: \"100%\",\n height: \"calc(100% - 50px)\",\n position: \"absolute\",\n top: \"50px\",\n right: \"0\",\n bottom: \"0\",\n left: \"0\",\n backgroundColor: `${props.theme.backgroundColor.darkGrey}`,\n zIndex: \"999\",\n color: `${props.theme.color.white}`,\n textAlign: \"center\",\n boxSizing: \"border-box\",\n animation: `${fadeAnimation} 250ms ease`,\n fontFamily: `${props.theme.fontFamily}`,\n \"*\": {\n boxSizing: \"border-box\",\n fontFamily: `${props.theme.fontFamily}`,\n },\n \"iframe\": {\n border: \"none\"\n },\n }\n}\n\nexport const callScreenBackgroundStyle = (state) => {\n\n return {\n display: \"none\",\n width: \"100vw\",\n height: \"100vh\",\n position: \"fixed\",\n top: \"0\",\n left: \"0\",\n bottom: \"0\",\n right: \"0\",\n zIndex: \"2147483001\",\n }\n}\n\nexport const callScreenContainerStyle = (props) => {\n\n return {\n width: props.maxWidth,\n height: props.maxHeight,\n position: \"fixed\",\n top: \"0\",\n left: \"0\",\n overflow: \"hidden\",\n zIndex: \"2147483002\",\n \"*\": {\n boxSizing: \"border-box\",\n fontFamily: `${props.theme.fontFamily}`,\n }\n }\n}\n\nexport const callScreenInnerBackgroundStyle = () => {\n\n return {\n display: \"none\",\n position: \"absolute\",\n top: \"0\",\n left: \"0\",\n bottom: \"0\",\n right: \"0\",\n zIndex: \"2147483003\",\n }\n}\n\nexport const callScreenHeaderStyle = (state) => {\n\n const cursorStyle = (state.maximized) ? {} : {\n cursor: \"grabbing\",\n };\n\n return {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n backgroundColor: \"#282c34\",\n width: \"100%\",\n height: \"50px\",\n position: \"absolute\",\n top: \"0\",\n right: \"0\",\n bottom: \"0\",\n left: \"0\",\n zIndex: \"2147483004\",\n ...cursorStyle\n }\n}\n\nexport const headerTitleStyle = () => {\n\n return {\n width: \"calc(100% - 55px)\",\n padding: \"16px\",\n }\n}\n\nexport const headerButtonStyle = () => {\n\n return {\n width: \"55px\",\n padding: \"16px\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n \"button\": {\n border: \"none\",\n background: \"transparent\",\n cursor: \"pointer\",\n outline: \"none\",\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"center\",\n alignItems: \"center\",\n width: \"100%\",\n padding: \"0px\",\n userSelect: \"none\",\n \"img\": {\n maxWidth: \"100%\",\n flexShrink: \"0\"\n }\n }\n }\n}\n\nexport const callScreenResizerStyle = (state) => {\n\n const backgroundStyle = (state.maximized) ? {}: {\n cursor: \"nwse-resize\",\n clipPath: \"polygon(100% 0,100% 100%,0 100%)\",\n background: \"repeating-linear-gradient(135deg,hsla(0,0%,100%,.5),hsla(0,0%,100%,.5) 2px,#000 0,#000 4px)\",\n };\n\n return {\n width: \"35px\",\n height: \"35px\",\n position: \"absolute\",\n right: \"0\",\n bottom: \"0\",\n zIndex: \"2147483004\", \n ...backgroundStyle\n }\n}\n\nexport const iconStyle = (img) => {\n\n return {\n width: \"24px\",\n height: \"24px\",\n display: \"inline-block\",\n cursor: \"pointer\",\n mask: `url(${img}) center center no-repeat`,\n backgroundColor: `white`,\n }\n}","export default __webpack_public_path__ + \"static/media/reduce-size.e5af2bb8.svg\";","export default __webpack_public_path__ + \"static/media/increase-size.97e9cd75.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx, keyframes } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\n\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport { Storage } from \"../../../util/Storage\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n callScreenBackgroundStyle,\n callScreenContainerStyle,\n callScreenInnerBackgroundStyle,\n callScreenHeaderStyle,\n callScreenWrapperStyle,\n headerTitleStyle,\n headerButtonStyle,\n callScreenResizerStyle,\n iconStyle\n} from \"./style\";\n\nimport minimizeIcon from \"./resources/reduce-size.svg\";\nimport maximizeIcon from \"./resources/increase-size.svg\";\n\nclass CometChatCallScreen extends React.PureComponent {\n\n static contextType = CometChatContext;\n\n constructor(props) {\n super(props);\n\n this.state = {\n x: 0,\n y: 0,\n rel: null, // position relative to the cursor\n dragging: false,\n maximized: true\n };\n\n this.loggedInUser = props.loggedInUser;\n \n this.callScreenBackgroundEl = React.createRef();\n this.callScreenInnerBackgroundEl = React.createRef();\n this.callScreenEl = React.createRef();\n this.callScreenFrame = React.createRef();\n }\n\n componentDidMount() {\n\n this.document = window.document;\n\n if (this.props.call.type === enums.CUSTOM_TYPE_MEETING) {\n this.startDirectCall(this.props.call);\n } else {\n this.startDefaultCall(this.props.call);\n }\n }\n\n enableDragging = (e) => {\n\n e.preventDefault();\n \n if (this.checkIfCallScreenIsMaximized() === true) {\n return false;\n }\n\n this.setState({\n dragging: true,\n rel: {\n x: e.pageX - this.state.x,\n y: e.pageY - this.state.y\n }\n });\n\n this.toggleCallScreenBackground(true);\n this.toggleCallScreenInnerBackground(true);\n\n this.document.onmousemove = (e) => this.startDragging(e);\n this.document.onmouseup = (e) => this.disableDragging(e);\n }\n\n checkIfCallScreenIsMaximized = () => {\n\n const elem = this.callScreenEl.current;\n\n const dialogWidth = elem.clientWidth;\n const dialogHeight = elem.clientHeight;\n\n const windowWidth = window.innerWidth;\n const windowHeight = window.innerHeight;\n\n if (dialogWidth === windowWidth && dialogHeight === windowHeight) {\n return true;\n }\n\n return false;\n }\n\n checkIfCallScreenIsMinimized = () => {\n\n const elem = this.callScreenEl.current;\n\n const dialogWidth = elem.clientWidth;\n const dialogHeight = elem.clientHeight;\n\n const minimumWidth = this.props.minWidth;\n const minimumHeight = this.props.minHeight;\n\n if (dialogWidth === minimumWidth && dialogHeight === minimumHeight) {\n return true;\n }\n\n return false;\n }\n\n startDragging = (e) => {\n \n if (!this.state.dragging) return;\n \n e = e || window.event;\n\n const elem = this.callScreenEl.current;\n\n const dialogWidth = elem.clientWidth; \n const dialogHeight = elem.clientHeight; \n const x = Math.min(\n Math.max(0, e.pageX - this.state.rel.x),\n window.innerWidth - dialogWidth - 20\n );\n const y = Math.min(\n Math.max(0, e.pageY - this.state.rel.y),\n window.innerHeight - dialogHeight - 20\n ); \n\n this.setState({\n x: x,\n y: y\n });\n\n e.stopPropagation();\n e.preventDefault();\n }\n\n disableDragging = (e) => {\n\n this.document.onmousemove = null;\n this.document.onmouseup = null;\n\n this.setState({ dragging: false });\n\n this.toggleCallScreenBackground(false);\n this.toggleCallScreenInnerBackground(false);\n }\n\n initResize = (e) => {\n\n e.preventDefault();\n\n if (this.checkIfCallScreenIsMaximized() === true) {\n return false;\n }\n\n const element = this.callScreenEl.current;\n\n this.startX = e.pageX;\n this.startY = e.pageY;\n\n this.startWidth = parseFloat(getComputedStyle(element, null).getPropertyValue(\"width\").replace(\"px\", \"\"));\n this.startHeight = parseInt(getComputedStyle(element, null).getPropertyValue(\"height\").replace(\"px\", \"\"));\n\n this.document.onmousemove = (e) => this.startResize(e);\n this.document.onmouseup = (e) => this.stopResize(e);\n }\n\n startResize = (e) => {\n \n let width = this.startWidth + (e.pageX - this.startX);\n let height = this.startHeight + (e.pageY - this.startY);\n\n if (width < this.props.minWidth) {\n width = this.props.minHWidth;\n }\n\n if (width > window.innerWidth) {\n width = this.props.maxWidth;\n }\n\n if (height < this.props.minHeight) {\n height = this.props.minHeight;\n }\n\n if (height > window.innerHeight) {\n height = this.props.maxHeight;\n }\n\n this.callScreenEl.current.style.width = width + \"px\";\n this.callScreenEl.current.style.height = height + \"px\";\n\n this.setDimensionOfCallScreenInnerBackground({ width: width + \"px\", height: height + \"px\" });\n\n this.toggleCallScreenBackground(true);\n this.toggleCallScreenInnerBackground(true);\n }\n\n stopResize = () => {\n \n this.document.onmousemove = null;\n this.document.onmouseup = null;\n\n this.toggleCallScreenBackground(false);\n this.toggleCallScreenInnerBackground(false);\n\n if (this.checkIfCallScreenIsMaximized() === true) {\n this.setState({ maximized: true });\n } \n if (this.checkIfCallScreenIsMinimized() === true) {\n this.setState({ maximized: false });\n }\n }\n\n toggleCallScreenBackground = (flag) => {\n\n if (this.callScreenBackgroundEl && this.callScreenBackgroundEl.current) {\n this.callScreenBackgroundEl.current.style.display = (flag) ? \"block\" : \"none\";\n }\n }\n\n toggleCallScreenInnerBackground = (flag) => {\n\n if (this.callScreenInnerBackgroundEl && this.callScreenInnerBackgroundEl.current) {\n this.callScreenInnerBackgroundEl.current.style.display = (flag) ? \"block\" : \"none\";\n }\n }\n\n setDimensionOfCallScreenInnerBackground = (props) => {\n\n this.callScreenInnerBackgroundEl.current.style.width = props.width;\n this.callScreenInnerBackgroundEl.current.style.height = props.height;\n }\n\n setPositionOfCallScreenInnerBackground = (props) => {\n\n this.callScreenInnerBackgroundEl.current.style.top = props.y;\n this.callScreenInnerBackgroundEl.current.style.left = props.x;\n }\n\n minimize = () => {\n\n if (!this.callScreenEl || !this.callScreenEl.current) {\n return false;\n }\n\n const width = this.props.minWidth + \"px\";\n const height = this.props.minHeight + \"px\";\n\n this.setState({ maximized: false });\n this.setSizingAndPostionOfCallScreen({ width: width, height: height });\n this.setDimensionOfCallScreenInnerBackground({ width: width, height: height });\n this.setPositionOfCallScreenInnerBackground({ x: \"0px\", y: \"0px\" });\n }\n\n maximize = () => {\n\n if (!this.callScreenEl || !this.callScreenEl.current) {\n return false;\n }\n\n const width = this.props.maxWidth;\n const height = this.props.maxHeight;\n\n this.setState({ maximized: true });\n this.setSizingAndPostionOfCallScreen({ width: width, height: height });\n this.setDimensionOfCallScreenInnerBackground({ width: width, height: height });\n this.setPositionOfCallScreenInnerBackground({ x: \"0px\", y: \"0px\" });\n }\n\n setSizingAndPostionOfCallScreen = (props) => {\n\n this.callScreenEl.current.style.width = props.width;\n this.callScreenEl.current.style.height = props.height;\n this.callScreenEl.current.style.top = \"0px\";\n this.callScreenEl.current.style.left = \"0px\";\n }\n\n toggle = (e) => {\n\n this.setState({ x: 0, y: 0 });\n\n if (this.state.maximized) {\n this.minimize();\n } else {\n this.maximize();\n }\n\n e.stopPropagation();\n e.preventDefault();\n }\n\n startDirectCall = (call) => {\n\n const sessionId = call.data.customData.sessionID;\n const customCSS = this.context.UIKitSettings.customCSS;\n\n const callSettings = new CometChat.CallSettingsBuilder()\n .enableDefaultLayout(true)\n .setSessionID(sessionId)\n .setIsAudioOnlyCall(false)\n .setCustomCSS(customCSS)\n .setLocalizedStringObject({\n \"SELECT_VIDEO_SOURCE\": Translator.translate(\"SELECT_VIDEO_SOURCE\", this.props.lang),\n \"SELECT_INPUT_AUDIO_SOURCE\": Translator.translate(\"SELECT_INPUT_AUDIO_SOURCE\", this.props.lang),\n \"SELECT_OUTPUT_AUDIO_SOURCE\": Translator.translate(\"SELECT_OUTPUT_AUDIO_SOURCE\", this.props.lang),\n \"SELECT_MODE\": Translator.translate(\"SELECT_MODE\", this.props.lang)\n }).build();\n\n const el = this.callScreenFrame;\n CometChat.startCall(\n callSettings,\n el,\n new CometChat.OngoingCallListener({\n onCallEnded: call => {\n\n if (this.context) {\n this.context.setCallInProgress({}, \"\");\n }\n Storage.removeItem(enums.CONSTANTS[\"ACTIVECALL\"]);\n this.props.actionGenerated(enums.ACTIONS[\"DIRECT_CALL_ENDED\"]);\n },\n onError: error => {\n\n if (this.context) {\n this.context.setCallInProgress(null, \"\");\n }\n \n this.props.actionGenerated(enums.ACTIONS[\"DIRECT_CALL_ERROR\"]);\n const errorCode = (error && error.hasOwnProperty(\"code\")) ? error.code : \"ERROR\";\n this.context.setToastMessage(\"error\", errorCode);\n }\n })\n );\n }\n\n startDefaultCall = (call) => {\n\n const sessionId = call.getSessionId();\n const callType = (call.type === CometChat.CALL_TYPE.AUDIO ? true : false);\n const customCSS = this.context.UIKitSettings.customCSS;\n\n const callSettings = new CometChat.CallSettingsBuilder()\n .setSessionID(sessionId)\n .enableDefaultLayout(true)\n .setMode(CometChat.CALL_MODE.DEFAULT)\n .setIsAudioOnlyCall(callType)\n .setCustomCSS(customCSS)\n .setLocalizedStringObject({\n \"SELECT_VIDEO_SOURCE\": Translator.translate(\"SELECT_VIDEO_SOURCE\", this.props.lang),\n \"SELECT_INPUT_AUDIO_SOURCE\": Translator.translate(\"SELECT_INPUT_AUDIO_SOURCE\", this.props.lang),\n \"SELECT_OUTPUT_AUDIO_SOURCE\": Translator.translate(\"SELECT_OUTPUT_AUDIO_SOURCE\", this.props.lang)\n }).build();\n\n\n const el = this.callScreenFrame;\n CometChat.startCall(\n callSettings,\n el,\n new CometChat.OngoingCallListener({\n onUserJoined: user => {\n\n /* Notification received here if another user joins the call. */\n /* this method can be use to display message or perform any actions if someone joining the call */\n //call initiator gets the same info in outgoingcallaccpeted event\n if (call.callInitiator.uid !== this.loggedInUser.uid && call.callInitiator.uid !== user.uid) {\n\n const callMessage = {\n \"category\": call.category,\n \"type\": call.type,\n \"action\": call.action,\n \"status\": call.status,\n \"callInitiator\": call.callInitiator,\n \"callReceiver\": call.callReceiver,\n \"receiverId\": call.receiverId,\n \"receiverType\": call.receiverType,\n \"sentAt\": call.sentAt,\n \"sender\": { ...user }\n };\n this.props.actionGenerated(enums.ACTIONS[\"USER_JOINED_CALL\"], callMessage);\n }\n },\n onUserLeft: user => {\n /* Notification received here if another user left the call. */\n /* this method can be use to display message or perform any actions if someone leaving the call */\n //call initiator gets the same info in outgoingcallaccpeted event\n if (call.callInitiator.uid !== this.loggedInUser.uid && call.callInitiator.uid !== user.uid) {\n\n const callMessage = {\n \"category\": call.category,\n \"type\": call.type,\n \"action\": \"left\",\n \"status\": call.status,\n \"callInitiator\": call.callInitiator,\n \"callReceiver\": call.callReceiver,\n \"receiverId\": call.receiverId,\n \"receiverType\": call.receiverType,\n \"sentAt\": call.sentAt,\n \"sender\": { ...user }\n };\n\n this.props.actionGenerated(enums.ACTIONS[\"USER_LEFT_CALL\"], callMessage);\n }\n },\n onCallEnded: endedCall => {\n\n /* Notification received here if current ongoing call is ended. */\n if (this.context) {\n this.context.setCallInProgress(null, \"\");\n }\n Storage.removeItem(enums.CONSTANTS[\"ACTIVECALL\"]);\n this.props.actionGenerated(enums.ACTIONS[\"OUTGOING_CALL_ENDED\"], endedCall);\n /* hiding/closing the call screen can be done here. */\n }\n })\n );\n }\n\n render() {\n\n const resizeText = Translator.translate(\"RESIZE\", this.props.lang);\n let iconView = ();\n if (this.state.maximized === false) {\n iconView = ();\n }\n\n return (\n \n
\n
\n
\n
\n
 
\n
e.stopPropagation()}>
\n
\n
{ this.callScreenFrame = el; }}>
\n
\n
\n
\n )\n }\n}\n\n// Specifies the default values for props:\nCometChatCallScreen.defaultProps = {\n lang: Translator.getDefaultLanguage(),\n theme: theme,\n minWidth: 400,\n minHeight: 300,\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n style: {},\n};\n\nCometChatCallScreen.propTypes = {\n lang: PropTypes.string,\n theme: PropTypes.object,\n minWidth: PropTypes.number,\n minHeight: PropTypes.number,\n maxWidth: PropTypes.string,\n maxHeight: PropTypes.string,\n style: PropTypes.object,\n}\n\nexport { CometChatCallScreen }\n","import * as enums from \"./enums\";\n\nexport class SoundManager {\n\tstatic widgetSettings;\n\tstatic incomingCallAudio = null;\n\tstatic outgoingCallAudio = null;\n\tstatic incomingMessageAudio = null;\n\tstatic outgoingMessageAudio = null;\n\tstatic incomingOtherMessageAudio = null;\n\n\tstatic play = (action, context) => {\n\t\tswitch (action) {\n\t\t\tcase enums.CONSTANTS.AUDIO[\"INCOMING_CALL\"]:\n\t\t\t\tthis.onIncomingCall(context);\n\t\t\t\tbreak;\n\t\t\tcase enums.CONSTANTS.AUDIO[\"OUTGOING_CALL\"]:\n\t\t\t\tthis.onOutgoingCall(context);\n\t\t\t\tbreak;\n\t\t\tcase enums.CONSTANTS.AUDIO[\"INCOMING_MESSAGE\"]:\n\t\t\t\tthis.onIncomingMessage(context);\n\t\t\t\tbreak;\n\t\t\tcase enums.CONSTANTS.AUDIO[\"INCOMING_OTHER_MESSAGE\"]:\n\t\t\t\tthis.onIncomingOtherMessage(context);\n\t\t\t\tbreak;\n\t\t\tcase enums.CONSTANTS.AUDIO[\"OUTGOING_MESSAGE\"]:\n\t\t\t\tthis.onOutgoingMessage(context);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tstatic pause = (action, context) => {\n\t\tswitch (action) {\n\t\t\tcase enums.CONSTANTS.AUDIO[\"INCOMING_CALL\"]:\n\t\t\t\tthis.pauseIncomingCall(context);\n\t\t\t\tbreak;\n\t\t\tcase enums.CONSTANTS.AUDIO[\"OUTGOING_CALL\"]:\n\t\t\t\tthis.pauseOutgoingCall(context);\n\t\t\t\tbreak;\n\t\t\tcase enums.CONSTANTS.AUDIO[\"INCOMING_MESSAGE\"]:\n\t\t\tcase enums.CONSTANTS.AUDIO[\"INCOMING_OTHER_MESSAGE\"]:\n\t\t\tcase enums.CONSTANTS.AUDIO[\"OUTGOING_MESSAGE\"]:\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tstatic onIncomingMessage = context => {\n\t\tthis.enableSoundForMessages(context).then(response => {\n\t\t\tif (response === true) {\n\t\t\t\tif (this.incomingMessageAudio === null) {\n\t\t\t\t\timport(\"../resources/audio/incomingmessage.wav\").then(response => {\n\t\t\t\t\t\tthis.incomingMessageAudio = new Audio(response.default);\n\t\t\t\t\t\tthis.playMessageAlert(this.incomingMessageAudio);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthis.playMessageAlert(this.incomingMessageAudio);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\n\tstatic onIncomingOtherMessage = context => {\n\t\tthis.enableSoundForMessages(context).then(response => {\n\t\t\tif (response === true) {\n\t\t\t\tif (this.incomingOtherMessageAudio === null) {\n\t\t\t\t\timport(\"../resources/audio/incomingothermessage.wav\").then(response => {\n\t\t\t\t\t\tthis.incomingOtherMessageAudio = new Audio(response.default);\n\t\t\t\t\t\tthis.playMessageAlert(this.incomingOtherMessageAudio);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthis.playMessageAlert(this.incomingOtherMessageAudio);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\n\tstatic onOutgoingMessage = context => {\n\t\tthis.enableSoundForMessages(context).then(response => {\n\t\t\tif (response === true) {\n\t\t\t\tif (this.outgoingMessageAudio === null) {\n\t\t\t\t\timport(\"../resources/audio/outgoingmessage.wav\").then(response => {\n\t\t\t\t\t\tthis.outgoingMessageAudio = new Audio(response.default);\n\t\t\t\t\t\tthis.playMessageAlert(this.outgoingMessageAudio);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthis.playMessageAlert(this.outgoingMessageAudio);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\n\tstatic playMessageAlert = messageAudio => {\n\t\tmessageAudio.currentTime = 0;\n\t\tmessageAudio.play();\n\t};\n\n\tstatic onIncomingCall = context => {\n\t\tthis.enableSoundForCalls(context).then(response => {\n\t\t\tif (response === true) {\n\t\t\t\tif (this.incomingCallAudio === null) {\n\t\t\t\t\timport(\"../resources/audio/incomingcall.wav\").then(response => {\n\t\t\t\t\t\tthis.incomingCallAudio = new Audio(response.default);\n\t\t\t\t\t\tthis.playCallAlert(this.incomingCallAudio);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthis.playCallAlert(this.incomingCallAudio);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\n\tstatic onOutgoingCall = context => {\n\t\tthis.enableSoundForCalls(context).then(response => {\n\t\t\tif (response === true) {\n\t\t\t\tif (this.outgoingCallAudio === null) {\n\t\t\t\t\timport(\"../resources/audio/outgoingcall.wav\").then(response => {\n\t\t\t\t\t\tthis.outgoingCallAudio = new Audio(response.default);\n\t\t\t\t\t\tthis.playCallAlert(this.outgoingCallAudio);\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthis.playCallAlert(this.outgoingCallAudio);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\n\tstatic playCallAlert = callAudio => {\n\t\ttry {\n\t\t\tcallAudio.currentTime = 0;\n\t\t\tif (typeof callAudio.loop == \"boolean\") {\n\t\t\t\tcallAudio.loop = true;\n\t\t\t} else {\n\t\t\t\tcallAudio.addEventListener(\n\t\t\t\t\t\"ended\",\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\tthis.currentTime = 0;\n\t\t\t\t\t\tthis.play();\n\t\t\t\t\t},\n\t\t\t\t\tfalse,\n\t\t\t\t);\n\t\t\t}\n\t\t\tcallAudio.play();\n\t\t} catch (error) {}\n\t};\n\n\tstatic pauseIncomingCall = context => {\n\t\tthis.enableSoundForCalls(context).then(response => {\n\t\t\tif (response === true) {\n\t\t\t\tif (this.incomingCallAudio) {\n\t\t\t\t\tthis.incomingCallAudio.pause();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\n\tstatic pauseOutgoingCall = context => {\n\t\tthis.enableSoundForCalls(context).then(response => {\n\t\t\tif (response === true) {\n\t\t\t\tif (this.outgoingCallAudio) {\n\t\t\t\t\tthis.outgoingCallAudio.pause();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\n\tstatic enableSoundForCalls = context => {\n\t\treturn new Promise(resolve => {\n\t\t\tcontext.FeatureRestriction.isCallsSoundEnabled()\n\t\t\t\t.then(response => resolve(response))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n\n\tstatic enableSoundForMessages = context => {\n\t\treturn new Promise(resolve => {\n\t\t\tcontext.FeatureRestriction.isMessagesSoundEnabled()\n\t\t\t\t.then(response => resolve(response))\n\t\t\t\t.catch(error => resolve(false));\n\t\t});\n\t};\n}","export const incomingCallWrapperStyle = (props, keyframes) => {\n\n const slideDown = keyframes`\n 0% { transform: translateY(-50px); }\n 100% { transform: translateY(0px); }\n `;\n\n let positionValue = \"absolute\";\n let leftPos = \"0\";\n let rightPos = \"0\";\n let topPos = \"0\";\n let bottomPos = \"unset\";\n let zIndexValue = \"998\";\n \n if (props.hasOwnProperty(\"widgetsettings\")) {\n\n if (props.widgetsettings.hasOwnProperty(\"dockedview\") && props.widgetsettings.dockedview) {\n\n //if chat window is open\n if (props.widgetsettings.hasOwnProperty(\"launched\") && props.widgetsettings.launched) {\n\n zIndexValue = \"2147483000\";\n positionValue = \"fixed\";\n topPos = \"unset\";\n bottomPos = \"100px\";\n \n if (props.widgetsettings.hasOwnProperty(\"alignment\") && props.widgetsettings.alignment === \"left\") {\n\n rightPos = \"unset\";\n leftPos = \"20px\";\n\n if (props.widgetsettings.hasOwnProperty(\"width\")) {\n\n if (props.widgetsettings.width.includes(\"px\")) {\n\n const widgetWidth = props.widgetsettings.width.replace(\"px\", \"\");\n rightPos = parseInt(widgetWidth) - 250 - 15;\n rightPos = rightPos + \"px\";\n }\n }\n\n if (props.widgetsettings.hasOwnProperty(\"height\")) {\n\n if (props.widgetsettings.height.includes(\"px\")) {\n\n const widgetHeight = props.widgetsettings.height.replace(\"px\", \"\");\n bottomPos = parseInt(widgetHeight) - 140 + 100;\n bottomPos = bottomPos + \"px\";\n }\n }\n \n } else {\n\n leftPos = \"unset\";\n rightPos = \"20px\";\n \n if(props.widgetsettings.hasOwnProperty(\"width\")) {\n\n if (props.widgetsettings.width.includes(\"px\")) {\n\n const widgetWidth = props.widgetsettings.width.replace(\"px\", \"\");\n rightPos = parseInt(widgetWidth) - 250 - 15;\n rightPos = rightPos + \"px\";\n }\n }\n\n if (props.widgetsettings.hasOwnProperty(\"height\")) {\n\n if (props.widgetsettings.height.includes(\"px\")) {\n\n const widgetHeight = props.widgetsettings.height.replace(\"px\", \"\"); \n bottomPos = parseInt(widgetHeight) - 140 + 100;\n bottomPos = bottomPos + \"px\";\n }\n }\n }\n \n } else {\n\n leftPos = \"unset\";\n positionValue = \"fixed\";\n }\n } else {\n zIndexValue = \"2147483000\";\n }\n }\n\n return {\n position: positionValue,\n top: topPos,\n left: leftPos,\n bottom: bottomPos,\n right: rightPos,\n borderRadius: \"10px\",\n margin: \"16px\",\n backgroundColor: `${props.theme.backgroundColor.callScreenGrey}`,\n zIndex: zIndexValue,\n color: `${props.theme.color.white}`,\n textAlign: \"center\",\n boxSizing: \"border-box\",\n fontFamily: `${props.theme.fontFamily}`,\n animation: `${slideDown} 250ms ease`,\n width: \"248px\",\n \"*\": {\n boxSizing: \"border-box\",\n fontFamily: `${props.theme.fontFamily}`,\n },\n }\n}\n\nexport const callContainerStyle = () => {\n\n return {\n display: \"flex\",\n flexDirection: \"column\",\n width: \"100%\",\n padding: \"16px\",\n }\n}\n\nexport const headerWrapperStyle = () => {\n\n return {\n width: \"100%\",\n display: \"flex\",\n }\n}\n\nexport const callDetailStyle = () => {\n\n return {\n width: \"calc(100% - 36px)\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n textAlign: \"left\"\n }\n}\n\nexport const nameStyle = () => {\n\n return {\n fontSize: \"15px\",\n fontWeight: \"600\",\n display: \"block\",\n width: \"100%\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n lineHeight: \"20px\",\n }\n}\n\nexport const callTypeStyle = (props) => {\n\n return {\n fontSize: \"13px\",\n width: \"100%\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n textTransform: \"capitalize\",\n lineHeight: \"20px\",\n color: \"#8A8A8A\",\n display: \"flex\",\n justifyContent: \"start\",\n alignItems: \"center\",\n padding: \"2px 0 0 0px\",\n \"span\": {\n padding: \"0 5px\"\n }\n }\n}\n\nexport const thumbnailStyle = () => {\n\n return {\n width: \"36px\",\n height: \"36px\",\n display: \"flex\",\n justifyContent: \"center\",\n }\n}\n\nexport const headerButtonStyle = () => {\n\n return {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"space-between\",\n margin: \"10px 0 0 0\",\n }\n}\n\nexport const ButtonStyle = (props, action) => {\n\n const backgroundColor = (action) ? `${props.theme.backgroundColor.blue}!important` : `${props.theme.backgroundColor.red}!important`;\n\n return {\n cursor: \"pointer\",\n padding: \"8px 16px\",\n backgroundColor: backgroundColor,\n borderRadius: \"5px\",\n color: `${props.theme.color.white}`,\n fontSize: \"100%\",\n outline: \"0\",\n border: \"0\",\n width: \"49%\",\n overflow: \"hidden\"\n }\n}\n\nexport const callIconStyle = (img, context) => {\n\n return {\n width: \"24px\",\n height: \"24px\",\n display: \"inline-block\",\n cursor: \"pointer\",\n mask: `url(${img}) center center no-repeat`,\n backgroundColor: `${context.theme.secondaryTextColor}`,\n }\n}","export default __webpack_public_path__ + \"static/media/incoming-call.aaaf0cb6.svg\";","export default __webpack_public_path__ + \"static/media/incoming-video-call.37a9f849.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx, keyframes } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CallAlertManager } from \"./controller\";\n\nimport { CometChatCallScreen } from \"../CometChatCallScreen\";\nimport { CometChatAvatar } from \"../../Shared\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\nimport { SoundManager } from \"../../../util/SoundManager\";\nimport { Storage } from \"../../../util/Storage\";\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n incomingCallWrapperStyle,\n callContainerStyle,\n headerWrapperStyle,\n callDetailStyle,\n nameStyle,\n callTypeStyle,\n thumbnailStyle,\n headerButtonStyle,\n ButtonStyle,\n\tcallIconStyle\n} from \"./style\";\n\nimport audioCallIcon from \"./resources/incoming-call.svg\";\nimport videoCallIcon from \"./resources/incoming-video-call.svg\";\n\nclass CometChatIncomingCall extends React.PureComponent {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis._isMounted = false;\n\t\tthis.state = {\n\t\t\tincomingCall: null,\n\t\t\tcallInProgress: null,\n\t\t};\n\n\t\tthis.callButtonRef = React.createRef();\n\n\t\tCometChat.getLoggedinUser()\n\t\t\t.then(user => (this.loggedInUser = user))\n\t\t\t.catch(error => {\n\t\t\t\tconsole.error(error);\n\t\t\t});\n\t}\n\n\tcomponentDidMount() {\n\t\tthis._isMounted = true;\n\n\t\tthis.CallAlertManager = new CallAlertManager();\n\t\tthis.CallAlertManager.attachListeners(this.callScreenUpdated);\n\n\t\tStorage.attachChangeDetection(this.logStorageChange);\n\t}\n\n\tcomponentDidUpdate() {\n\t\tif (this.state.incomingCall) {\n\t\t\tthis.adjustFontSize();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis._isMounted = false;\n\t\tStorage.detachChangeDetection(this.logStorageChange);\n\t}\n\n\tadjustFontSize = () => {\n\t\tif (this.callButtonRef && this.callButtonRef.current) {\n\t\t\tlet reduceFontSize = false;\n\t\t\tconst buttonNodeList = this.callButtonRef.current.querySelectorAll(\"button\");\n\n\t\t\tbuttonNodeList.forEach(buttonNode => {\n\t\t\t\tconst parentContainerWidth = buttonNode.clientWidth;\n\t\t\t\tconst currentTextWidth = buttonNode.scrollWidth;\n\n\t\t\t\tif (parentContainerWidth < currentTextWidth) {\n\t\t\t\t\treduceFontSize = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (reduceFontSize) {\n\t\t\t\tbuttonNodeList.forEach(buttonNode => {\n\t\t\t\t\tbuttonNode.style.fontSize = \"85%\";\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n\n\tcallScreenUpdated = (key, call) => {\n\t\tswitch (key) {\n\t\t\tcase enums.INCOMING_CALL_RECEIVED: //occurs at the callee end\n\t\t\t\tthis.incomingCallReceived(call);\n\t\t\t\tbreak;\n\t\t\tcase enums.INCOMING_CALL_CANCELLED: //occurs(call dismissed) at the callee end, caller cancels the call\n\t\t\t\tthis.incomingCallCancelled(call);\n\t\t\t\tbreak;\n\t\t\tcase enums.OUTGOING_CALL_ACCEPTED: //occurs(call dismissed) at the callee end, caller cancels the call\n\t\t\t\tthis.outgoingCallAccepted(call);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tincomingCallReceived = incomingCall => {\n\t\tif (this._isMounted) {\n\t\t\tif (this.state.incomingCall === null) {\n\t\t\t\tif (incomingCall?.callInitiator.uid !== this.loggedInUser?.uid) {\n\t\t\t\t\tSoundManager.play(enums.CONSTANTS.AUDIO[\"INCOMING_CALL\"], this.context);\n\t\t\t\t\tthis.setState({ incomingCall: incomingCall });\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tincomingCallCancelled = call => {\n\t\tif (this._isMounted) {\n\t\t\t//we are not marking this as read as it will done in messagelist component\n\t\t\tSoundManager.pause(enums.CONSTANTS.AUDIO[\"INCOMING_CALL\"], this.context);\n\t\t\tthis.setState({ incomingCall: null });\n\t\t}\n\t};\n\n\toutgoingCallAccepted = call => {\n\n\t\tif(call.sender?.uid === this.loggedInUser?.uid) {\n\t\t\tif (this._isMounted) {\n\t\t\t\t//we are not marking this as read as it will done in messagelist component\n\t\t\t\tSoundManager.pause(enums.CONSTANTS.AUDIO[\"INCOMING_CALL\"], this.context);\n\t\t\t\tthis.setState({ incomingCall: null });\n\t\t\t}\n\t\t}\n\t};\n\n\trejectCall = () => {\n\t\tSoundManager.pause(enums.CONSTANTS.AUDIO[\"INCOMING_CALL\"], this.context);\n\t\tlet callStatus = this.isCallActive() ? CometChat.CALL_STATUS.BUSY : CometChat.CALL_STATUS.REJECTED;\n\n\t\tCometChat.rejectCall(this.state.incomingCall.sessionId, callStatus)\n\t\t\t.then(rejectedCall => {\n\t\t\t\tif (this.isCallActive() === false) {\n\t\t\t\t\tif (this.context) {\n\t\t\t\t\t\tthis.context.setCallInProgress(null, \"\");\n\t\t\t\t\t}\n\t\t\t\t\tStorage.setItem(enums.CONSTANTS[\"ACTIVECALL\"], rejectedCall);\n\t\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"INCOMING_CALL_REJECTED\"], rejectedCall);\n\t\t\t\t\tthis.setState({ callInProgress: null });\n\t\t\t\t}\n\n\t\t\t\tthis.setState({ incomingCall: null });\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tthis.setState({ incomingCall: null, callInProgress: null });\n\t\t\t\tconst errorCode = error && error.hasOwnProperty(\"code\") ? error.code : \"ERROR\";\n\t\t\t\tthis.context.setToastMessage(\"error\", errorCode);\n\t\t\t});\n\t};\n\n\tacceptCall = () => {\n\t\tthis.checkForActiveCallAndEndCall()\n\t\t\t.then(response => {\n\t\t\t\tSoundManager.pause(enums.CONSTANTS.AUDIO[\"INCOMING_CALL\"], this.context);\n\t\t\t\tCometChat.acceptCall(this.state.incomingCall.sessionId)\n\t\t\t\t\t.then(call => {\n\t\t\t\t\t\tif (this.context) {\n\t\t\t\t\t\t\tthis.context.setCallInProgress(call, enums.CONSTANTS[\"INCOMING_DEFAULT_CALLING\"]);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tStorage.setItem(enums.CONSTANTS[\"ACTIVECALL\"], call);\n\t\t\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"INCOMING_CALL_ACCEPTED\"], call);\n\t\t\t\t\t\tthis.setState({ incomingCall: null, callInProgress: call });\n\t\t\t\t\t})\n\t\t\t\t\t.catch(error => {\n\t\t\t\t\t\tif (this.context) {\n\t\t\t\t\t\t\tthis.context.setCallInProgress(null, \"\");\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.setState({ incomingCall: null, callInProgress: null });\n\n\t\t\t\t\t\tconst errorCode = error && error.hasOwnProperty(\"code\") ? error.code : \"ERROR\";\n\t\t\t\t\t\tthis.context.setToastMessage(\"error\", errorCode);\n\t\t\t\t\t});\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tconst errorCode = error && error.hasOwnProperty(\"code\") ? error.code : \"ERROR\";\n\t\t\t\tthis.context.setToastMessage(\"error\", errorCode);\n\t\t\t});\n\t};\n\n\tisCallActive = () => {\n\t\tif (Object.keys(this.context.callInProgress).length === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet sessionID = this.getActiveCallSessionID();\n\t\tif (!sessionID) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t};\n\n\tgetActiveCallSessionID = () => {\n\t\treturn this.context.getActiveCallSessionID();\n\t};\n\n\tcheckForActiveCallAndEndCall = () => {\n\t\tconst promise = new Promise((resolve, reject) => {\n\t\t\tif (this.isCallActive() === false) {\n\t\t\t\treturn resolve({ success: true });\n\t\t\t}\n\n\t\t\tlet sessionID = this.getActiveCallSessionID();\n\t\t\tCometChat.endCall(sessionID)\n\t\t\t\t.then(response => {\n\t\t\t\t\treturn resolve(response);\n\t\t\t\t})\n\t\t\t\t.catch(error => {\n\t\t\t\t\treturn reject(error);\n\t\t\t\t});\n\t\t});\n\n\t\treturn promise;\n\t};\n\n\tactionHandler = (action, call) => {\n\t\tswitch (action) {\n\t\t\tcase enums.ACTIONS[\"OUTGOING_CALL_ENDED\"]:\n\t\t\t\tthis.setState({ callInProgress: null });\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"USER_JOINED_CALL\"]:\n\t\t\tcase enums.ACTIONS[\"USER_LEFT_CALL\"]:\n\t\t\t\tthis.props.actionGenerated(action, call);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tlogStorageChange = event => {\n\t\tif (event?.key !== enums.CONSTANTS[\"ACTIVECALL\"]) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (event.newValue || event.oldValue) {\n\t\t\tlet call;\n\t\t\tif (event.newValue) {\n\t\t\t\tcall = JSON.parse(event.newValue);\n\t\t\t} else if (event.oldValue) {\n\t\t\t\tcall = JSON.parse(event.oldValue);\n\t\t\t}\n\n\t\t\tif (this.state.incomingCall?.getSessionId() === call?.sessionId) {\n\t\t\t\tSoundManager.pause(enums.CONSTANTS.AUDIO[\"INCOMING_CALL\"], this.context);\n\t\t\t\tthis.setState({ incomingCall: null });\n\t\t\t}\n\t\t}\n\t};\n\n\trender() {\n\t\tlet callScreen = null,\n\t\t\tincomingCallAlert = null;\n\t\tif (this.state.incomingCall) {\n\t\t\tlet callType = (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{Translator.translate(\"INCOMING_AUDIO_CALL\", this.props.lang)}\n\t\t\t\t\n\t\t\t);\n\t\t\tif (this.state.incomingCall.type === CometChat.CALL_TYPE.VIDEO) {\n\t\t\t\tcallType = (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t{Translator.translate(\"INCOMING_VIDEO_CALL\", this.props.lang)}\n\t\t\t\t\t\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tincomingCallAlert = (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{this.state.incomingCall.sender.name}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{callType}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t);\n\t\t}\n\n\t\tif (this.state.callInProgress) {\n\t\t\tcallScreen = ;\n\t\t}\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{incomingCallAlert}\n\t\t\t\t{callScreen}\n\t\t\t\n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatIncomingCall.defaultProps = {\n lang: Translator.getDefaultLanguage(),\n theme: theme\n};\n\nCometChatIncomingCall.propTypes = {\n lang: PropTypes.string,\n theme: PropTypes.object\n}\n\nexport { CometChatIncomingCall };\n","import { CometChat } from \"@cometchat-pro/chat\";\n\nimport * as enums from \"../../../util/enums.js\";\n\nexport class CallScreenManager {\n\n\tcallListenerId = \"callscreen_\" + new Date().getTime();\n\n\tattachListeners(callback) {\n\n\t\tCometChat.addCallListener(\n\t\t\tthis.callListenerId,\n\t\t\tnew CometChat.CallListener({\n\t\t\t\tonOutgoingCallAccepted: call => {\n\t\t\t\t\tcallback(enums.OUTGOING_CALL_ACCEPTED, call);\n\t\t\t\t},\n\t\t\t\tonOutgoingCallRejected: call => {\n\t\t\t\t\tcallback(enums.OUTGOING_CALL_REJECTED, call);\n\t\t\t\t},\n\t\t\t\tonIncomingCallCancelled: call => {\n\t\t\t\t\tcallback(enums.INCOMING_CALL_CANCELLED, call);\n\t\t\t\t}\n\t\t\t})\n\t\t);\n\t}\n\n\tremoveListeners() {\n\t\tCometChat.removeCallListener(this.callListenerId);\n\t}\n}","export const callScreenWrapperStyle = (props, keyframes) => {\n\n let styles = {\n width: \"100%\",\n height: \"100%\",\n position: \"absolute\",\n top: \"0\",\n right: \"0\",\n bottom: \"0\",\n left: \"0\",\n zIndex: \"999\",\n }\n\n if (props.widgetsettings) {\n\n styles = {\n width: \"100%\",\n height: \"100%\",\n position: \"fixed\",\n top: \"0\",\n right: \"0\",\n bottom: \"0\",\n left: \"0\",\n zIndex: \"2147483000\",\n }\n }\n\n const fadeAnimation = keyframes`\n from {\n opacity: 0;\n }\n to {\n opacity: 1;\n }`;\n\n return {\n ...styles,\n backgroundColor: `${props.theme.backgroundColor.darkGrey}`,\n color: `${props.theme.color.white}`,\n textAlign: \"center\",\n boxSizing: \"border-box\",\n animation: `${fadeAnimation} 250ms ease`,\n fontFamily: `${props.theme.fontFamily}`,\n \"*\": {\n boxSizing: \"border-box\",\n fontFamily: `${props.theme.fontFamily}`,\n },\n }\n}\n\nexport const callScreenContainerStyle = () => {\n\n return {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\",\n width: \"100%\"\n }\n}\n\nexport const headerStyle = () => {\n\n return {\n padding: \"20px 10px\",\n width: \"100%\",\n height: \"20%\",\n }\n}\n\nexport const headerDurationStyle = () => {\n\n return {\n fontSize: \"13px\",\n display: \"inline-block\",\n padding: \"5px\"\n }\n}\n\nexport const headerNameStyle = () => {\n\n return {\n margin: \"0\",\n fontWeight: \"700\",\n textTransform: \"capitalize\",\n fontSize: \"16px\",\n }\n}\n\nexport const thumbnailWrapperStyle = () => {\n\n return {\n width: \"100%\",\n height: \"50%\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n }\n}\n\nexport const thumbnailStyle = () => {\n\n return {\n width: \"200px\",\n flexShrink: \"0\",\n }\n}\n\nexport const headerIconStyle = () => {\n\n return {\n width: \"100%\",\n height: \"15%\",\n padding: \"10px\",\n display: \"flex\",\n justifyContent: \"center\"\n }\n}\n\nexport const iconWrapperStyle = () => {\n\n return {\n display: \"flex\"\n }\n}\n\nexport const iconStyle = (img) => {\n\n return {\n width: \"50px\",\n height: \"50px\",\n borderRadius: \"27px\",\n backgroundColor: \"red\",\n display: \"flex\",\n margin: \"auto 10px\",\n cursor: \"pointer\",\n justifyContent: \"center\",\n alignItems: \"center\",\n \"i\": {\n mask: `url(${img}) center center no-repeat`,\n backgroundColor: `white`,\n display: \"inline-block\",\n width: \"24px\",\n height: \"24px\",\n },\n };\n}\n\nexport const errorContainerStyle = () => {\n\n return {\n color: \"#fff\",\n textAlign: \"center\",\n borderRadius: \"2px\",\n padding: \"13px 10px\",\n fontSize: \"13px\",\n width: \"100%\",\n height: \"10%\",\n backgroundColor: \"#333\",\n }\n}\n","export default __webpack_public_path__ + \"static/media/end-call.0d5e5b21.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx, keyframes } from \"@emotion/core\";\nimport PropTypes from 'prop-types';\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CallScreenManager } from \"./controller\";\n\nimport { CometChatCallScreen } from \"../CometChatCallScreen\";\nimport { CometChatAvatar } from \"../../Shared\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\nimport { SoundManager } from \"../../../util/SoundManager\";\n\nimport Translator from \"../../../resources/localization/translator\";\nimport { theme } from \"../../../resources/theme\";\n\nimport {\n\tcallScreenWrapperStyle,\n\tcallScreenContainerStyle,\n\theaderStyle,\n\theaderDurationStyle,\n\theaderNameStyle,\n\tthumbnailWrapperStyle,\n\tthumbnailStyle,\n\theaderIconStyle,\n\ticonWrapperStyle,\n\ticonStyle,\n\terrorContainerStyle\n} from \"./style\"; \n\nimport callIcon from \"./resources/end-call.svg\";\n\nclass CometChatOutgoingCall extends React.PureComponent {\n\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\n\t\tsuper(props);\n\n\t\tthis.callScreenFrame = React.createRef();\n\n\t\tthis.state = {\n\t\t\terrorScreen: false,\n\t\t\terrorMessage: null,\n\t\t\toutgoingCallScreen: false,\n\t\t\tcallInProgress: null,\n\t\t}\n\n\t\tCometChat.getLoggedinUser().then(user => this.loggedInUser = user).catch(error => {\n\t\t\tconsole.error(error);\n\t\t});\n\t}\n\n\tcomponentDidMount() {\n\n\t\tthis.CallScreenManager = new CallScreenManager();\n\t\tthis.CallScreenManager.attachListeners(this.callScreenUpdated);\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.CallScreenManager.removeListeners();\n\t\tthis.CallScreenManager = null;\n\t}\n\n\tcallScreenUpdated = (key, call) => {\n\n\t\tswitch (key) {\n\n\t\t\tcase enums.OUTGOING_CALL_ACCEPTED://occurs at the caller end\n\t\t\t\tthis.outgoingCallAccepted(call);\n\t\t\tbreak;\n\t\t\tcase enums.OUTGOING_CALL_REJECTED://occurs at the caller end, callee rejects the call\n\t\t\t\tthis.outgoingCallRejected(call);\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\tbreak;\n\t\t}\n\t}\n\n\toutgoingCallAccepted = (call) => {\n\n\t\tif (this.state.outgoingCallScreen === true) {\n\n\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"OUTGOING_CALL_ACCEPTED\"], call);\n\n\t\t\tSoundManager.pause(enums.CONSTANTS.AUDIO[\"OUTGOING_CALL\"], this.context);\n\t\t\tthis.setState({ outgoingCallScreen: false, callInProgress: call, errorScreen: false, errorMessage: null });\n\n\t\t\tif(this.context) {\n\t\t\t\tthis.context.setCallInProgress(call, enums.CONSTANTS[\"OUTGOING_DEFAULT_CALLING\"]);\n\t\t\t}\n\t\t}\n\t}\n\n\toutgoingCallRejected = (call) => {\n\n\t\tSoundManager.pause(enums.CONSTANTS.AUDIO[\"OUTGOING_CALL\"], this.context);\n\t\tif (call.hasOwnProperty(\"status\") && call.status === CometChat.CALL_STATUS.BUSY) {\n\n\t\t\t//show busy message.\n\t\t\tconst errorMessage = `${call.sender.name} ${Translator.translate(\"ON_ANOTHER_CALL\", this.props.lang)}`;\n\t\t\tthis.setState({ errorScreen: true, errorMessage: errorMessage });\n\t\t\tthis.clearCallInProgress();\n\n\t\t} else {\n\n\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"OUTGOING_CALL_REJECTED\"], call);\n\t\t\tthis.setState({ outgoingCallScreen: false, callInProgress: null, errorScreen: false, errorMessage: null });\n\t\t\tthis.clearCallInProgress();\n\n\t\t}\n\t}\n\n\tstartCall = (call) => {\n\n\t\tSoundManager.play(enums.CONSTANTS.AUDIO[\"OUTGOING_CALL\"], this.context);\n\t\tthis.setState({ outgoingCallScreen: true, callInProgress: call, errorScreen: false, errorMessage: null });\n\t}\n\n\tactionHandler = (action, call) => {\n\n\t\tswitch (action) {\n\n\t\t\tcase enums.ACTIONS[\"OUTGOING_CALL_ENDED\"]:\n\t\t\t\tthis.setState({ callInProgress: null });\n\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"USER_JOINED_CALL\"]:\n\t\t\tcase enums.ACTIONS[\"USER_LEFT_CALL\"]:\n\t\t\t\tthis.props.actionGenerated(action, call);\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\tbreak;\n\t\t}\n\t}\n\n\t//cancelling an outgoing call\n\tcancelCall = () => {\n\n\t\tSoundManager.pause(enums.CONSTANTS.AUDIO[\"OUTGOING_CALL\"], this.context);\n\t\t//if user busy error, just close the callscreen, no need to reject the call\n\t\tif (this.state.errorScreen) {\n\n\t\t\tthis.setState({ errorScreen: false, errorMessage: null, outgoingCallScreen: false, callInProgress: null });\n\t\t\tthis.clearCallInProgress();\n\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"OUTGOING_CALL_CANCELLED\"]);\n\n\t\t} else {\n\n\t\t\tCometChat.rejectCall(this.state.callInProgress.sessionId, CometChat.CALL_STATUS.CANCELLED).then(call => {\n\n\t\t\t\tthis.setState({ outgoingCallScreen: false, callInProgress: null });\n\t\t\t\tthis.clearCallInProgress();\n\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"OUTGOING_CALL_CANCELLED\"]);\n\n\t\t\t}).catch(error => {\n\n\t\t\t\tthis.setState({ outgoingCallScreen: false, callInProgress: null });\n\t\t\t\tthis.clearCallInProgress();\n\n\t\t\t});\n\t\t}\n\t}\n\n\tclearCallInProgress = () => {\n\t\tif (this.context) {\n\t\t\tthis.context.setCallInProgress(null, \"\");\n\t\t}\n\t}\n\n\trender() {\n\n\t\tlet callScreen = null, errorScreen = null;\n\t\tif (this.state.callInProgress) {\n\n\t\t\tlet avatar = ();\n\t\t\tif (this.state.errorScreen) {\n\t\t\t\terrorScreen = (\n\t\t\t\t\t
{this.state.errorMessage}
\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tif (this.state.outgoingCallScreen) {\n\t\t\t\tcallScreen = (\n\t\t\t\t\t
{ this.callScreenFrame = el; }}>\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t{Translator.translate(\"CALLING\", this.props.lang)}\n\t\t\t\t\t\t\t\t
{this.state.callInProgress.receiver.name}
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
{avatar}
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{errorScreen}\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\tcallScreen = ;\n\t\t\t}\n\t\t}\n\t\treturn callScreen;\n\t}\n}\n\n// Specifies the default values for props:\nCometChatOutgoingCall.defaultProps = {\n\tlang: Translator.getDefaultLanguage(),\n\ttheme: theme,\n};\n\nCometChatOutgoingCall.propTypes = {\n\tlang: PropTypes.string,\n\ttheme: PropTypes.object,\n}\n\nexport { CometChatOutgoingCall };\n","import { CometChat } from \"@cometchat-pro/chat\";\n\nimport * as enums from \"../../../util/enums.js\";\n\nexport class messageAlertManager {\n\n msgListenerId = \"incoming_message_\" + new Date().getTime();\n\n attachListeners(callback) {\n\n CometChat.addMessageListener(\n this.msgListenerId,\n new CometChat.MessageListener({\n onCustomMessageReceived: customMessage => {\n callback(enums.CUSTOM_MESSAGE_RECEIVED, customMessage);\n }\n })\n );\n }\n\n removeListeners() {\n CometChat.removeMessageListener(this.msgListenerId);\n }\n}\n","export const incomingCallWrapperStyle = (props, keyframes) => {\n\n const slideDown = keyframes`\n 0% { transform: translateY(-50px); }\n 100% { transform: translateY(0px); }\n `;\n\n let positionValue = \"absolute\";\n let leftPos = \"0\";\n let rightPos = \"0\";\n let topPos = \"0\";\n let bottomPos = \"unset\";\n let zIndexValue = \"998\";\n\n if (props.hasOwnProperty(\"widgetsettings\")) {\n\n if (props.widgetsettings.hasOwnProperty(\"dockedview\") && props.widgetsettings.dockedview) {\n\n //if chat window is open\n if (props.widgetsettings.hasOwnProperty(\"launched\") && props.widgetsettings.launched) {\n\n zIndexValue = \"2147483000\";\n positionValue = \"fixed\";\n topPos = \"unset\";\n bottomPos = \"100px\";\n\n if (props.widgetsettings.hasOwnProperty(\"alignment\") && props.widgetsettings.alignment === \"left\") {\n\n rightPos = \"unset\";\n leftPos = \"20px\";\n\n if (props.widgetsettings.hasOwnProperty(\"width\")) {\n\n if (props.widgetsettings.width.includes(\"px\")) {\n\n const widgetWidth = props.widgetsettings.width.replace(\"px\", \"\");\n rightPos = parseInt(widgetWidth) - 250 - 15;\n rightPos = rightPos + \"px\";\n }\n }\n\n if (props.widgetsettings.hasOwnProperty(\"height\")) {\n\n if (props.widgetsettings.height.includes(\"px\")) {\n\n const widgetHeight = props.widgetsettings.height.replace(\"px\", \"\");\n bottomPos = parseInt(widgetHeight) - 140 + 100;\n bottomPos = bottomPos + \"px\";\n }\n }\n\n } else {\n\n leftPos = \"unset\";\n rightPos = \"20px\";\n\n if (props.widgetsettings.hasOwnProperty(\"width\")) {\n\n if (props.widgetsettings.width.includes(\"px\")) {\n\n const widgetWidth = props.widgetsettings.width.replace(\"px\", \"\");\n rightPos = parseInt(widgetWidth) - 250 - 15;\n rightPos = rightPos + \"px\";\n }\n }\n\n if (props.widgetsettings.hasOwnProperty(\"height\")) {\n\n if (props.widgetsettings.height.includes(\"px\")) {\n\n const widgetHeight = props.widgetsettings.height.replace(\"px\", \"\");\n bottomPos = parseInt(widgetHeight) - 140 + 100;\n bottomPos = bottomPos + \"px\";\n }\n }\n }\n\n } else {\n\n leftPos = \"unset\";\n positionValue = \"fixed\";\n }\n } else {\n zIndexValue = \"2147483000\";\n }\n }\n\n return {\n position: positionValue,\n top: topPos,\n left: leftPos,\n bottom: bottomPos,\n right: rightPos,\n borderRadius: \"10px\",\n margin: \"16px\",\n backgroundColor: `${props.theme.backgroundColor.callScreenGrey}`,\n zIndex: zIndexValue,\n color: `${props.theme.color.white}`,\n textAlign: \"center\",\n boxSizing: \"border-box\",\n fontFamily: `${props.theme.fontFamily}`,\n animation: `${slideDown} 250ms ease`,\n width: \"248px\",\n \"*\": {\n boxSizing: \"border-box\",\n fontFamily: `${props.theme.fontFamily}`,\n },\n }\n}\n\nexport const callContainerStyle = () => {\n\n return {\n display: \"flex\",\n flexDirection: \"column\",\n width: \"100%\",\n padding: \"16px\",\n }\n}\n\nexport const headerWrapperStyle = () => {\n\n return {\n width: \"100%\",\n display: \"flex\",\n }\n}\n\nexport const callDetailStyle = () => {\n\n return {\n width: \"calc(100% - 36px)\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"center\",\n textAlign: \"left\"\n }\n}\n\nexport const nameStyle = () => {\n\n return {\n fontSize: \"15px\",\n fontWeight: \"600\",\n display: \"block\",\n width: \"100%\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n lineHeight: \"20px\",\n }\n}\n\nexport const callTypeStyle = (props) => {\n\n return {\n fontSize: \"13px\",\n width: \"100%\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n textTransform: \"capitalize\",\n lineHeight: \"20px\",\n color: \"#8A8A8A\",\n display: \"flex\",\n justifyContent: \"start\",\n alignItems: \"center\",\n padding: \"2px 0 0 0px\",\n \"span\": {\n padding: \"0 5px\"\n }\n }\n}\n\nexport const thumbnailStyle = () => {\n\n return {\n width: \"36px\",\n height: \"36px\",\n display: \"flex\",\n justifyContent: \"center\",\n }\n}\n\nexport const headerButtonStyle = () => {\n\n return {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"space-between\",\n margin: \"10px 0 0 0\",\n }\n}\n\nexport const ButtonStyle = (props, action) => {\n\n const backgroundColor = (action) ? `${props.theme.backgroundColor.blue}!important` : `${props.theme.backgroundColor.red}!important`;\n\n return {\n\t\t\tcursor: \"pointer\",\n\t\t\tpadding: \"8px 16px\",\n\t\t\tbackgroundColor: backgroundColor,\n\t\t\tborderRadius: \"5px\",\n\t\t\tcolor: `${props.theme.color.white}`,\n\t\t\tfontSize: \"100%\",\n\t\t\toutline: \"0\",\n\t\t\tborder: \"0\",\n\t\t\twidth: \"49%\",\n\t\t\toverflow: \"hidden\",\n\t\t};\n}\n\nexport const callIconStyle = (img, context) => {\n\treturn {\n\t\twidth: \"24px\",\n\t\theight: \"24px\",\n\t\tdisplay: \"inline-block\",\n\t\tcursor: \"pointer\",\n\t\tmask: `url(${img}) center center no-repeat`,\n\t\tbackgroundColor: `${context.theme.secondaryTextColor}`,\n\t};\n};","export default __webpack_public_path__ + \"static/media/incoming-video-call.37a9f849.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx, keyframes } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { messageAlertManager } from \"./controller\";\n\nimport { CometChatAvatar } from \"../../Shared\";\nimport { CometChatCallScreen } from \"../CometChatCallScreen\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\nimport { SoundManager } from \"../../../util/SoundManager\";\nimport { Storage } from \"../../../util/Storage\";\n\nimport Translator from \"../../../resources/localization/translator\";\nimport { theme } from \"../../../resources/theme\";\n\nimport {\n incomingCallWrapperStyle,\n callContainerStyle,\n headerWrapperStyle,\n callDetailStyle,\n nameStyle,\n callTypeStyle,\n thumbnailStyle,\n headerButtonStyle,\n ButtonStyle,\n\tcallIconStyle\n} from \"./style\";\n\nimport videoCallIcon from \"./resources/incoming-video-call.svg\";\n\nclass CometChatIncomingDirectCall extends React.PureComponent {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis._isMounted = false;\n\t\tthis.state = {\n\t\t\tincomingCall: null,\n\t\t\tcallInProgress: null,\n\t\t\tmaximize: true,\n\t\t};\n\n\t\tthis.callButtonRef = React.createRef();\n\n\t\tCometChat.getLoggedinUser()\n\t\t\t.then(user => (this.loggedInUser = user))\n\t\t\t.catch(error => {\n\t\t\t\tconsole.error(error);\n\t\t\t});\n\t}\n\n\tcomponentDidMount() {\n\t\tthis._isMounted = true;\n\n\t\tthis.MessageAlertManager = new messageAlertManager();\n\t\tthis.MessageAlertManager.attachListeners(this.messageListenerCallback);\n\n\t\tStorage.attachChangeDetection(this.logStorageChange);\n\t}\n\n\tcomponentDidUpdate() {\n\t\tif (this.state.incomingCall) {\n\t\t\tthis.adjustFontSize();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis._isMounted = false;\n\t\tStorage.detachChangeDetection(this.logStorageChange);\n\t}\n\n\tadjustFontSize = () => {\n\t\tif (this.callButtonRef && this.callButtonRef.current) {\n\t\t\tlet reduceFontSize = false;\n\t\t\tconst buttonNodeList = this.callButtonRef.current.querySelectorAll(\"button\");\n\n\t\t\tbuttonNodeList.forEach(buttonNode => {\n\t\t\t\tconst parentContainerWidth = buttonNode.clientWidth;\n\t\t\t\tconst currentTextWidth = buttonNode.scrollWidth;\n\n\t\t\t\tif (parentContainerWidth < currentTextWidth) {\n\t\t\t\t\treduceFontSize = true;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif (reduceFontSize) {\n\t\t\t\tbuttonNodeList.forEach(buttonNode => {\n\t\t\t\t\tbuttonNode.style.fontSize = \"85%\";\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t};\n\n\tmessageListenerCallback = (key, message) => {\n\t\tswitch (key) {\n\t\t\tcase enums.CUSTOM_MESSAGE_RECEIVED: //occurs at the callee end\n\t\t\t\tthis.incomingCallReceived(message);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tincomingCallReceived = message => {\n\t\tif (this._isMounted) {\n\t\t\tif (message.type !== enums.CUSTOM_TYPE_MEETING) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (Object.keys(this.context.callInProgress).length) {\n\t\t\t\tif (this.context.checkIfDirectCallIsOngoing() && this.context.getActiveCallSessionID() === message.data.customData.sessionID) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (message?.sender.uid !== this.loggedInUser?.uid) {\n\t\t\t\tSoundManager.play(enums.CONSTANTS.AUDIO[\"INCOMING_CALL\"], this.context);\n\t\t\t\tthis.setState({incomingCall: message});\n\t\t\t}\n\t\t}\n\t};\n\n\tjoinCall = () => {\n\t\tthis.checkForActiveCallAndEndCall()\n\t\t\t.then(response => {\n\t\t\t\tSoundManager.pause(enums.CONSTANTS.AUDIO[\"INCOMING_CALL\"], this.context);\n\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"ACCEPT_DIRECT_CALL\"], true);\n\n\t\t\t\tif (this.context) {\n\t\t\t\t\tthis.context.setCallInProgress(this.state.incomingCall, enums.CONSTANTS[\"INCOMING_DIRECT_CALLING\"]);\n\t\t\t\t}\n\t\t\t\tStorage.setItem(enums.CONSTANTS[\"ACTIVECALL\"], this.state.incomingCall);\n\t\t\t\tthis.setState({incomingCall: null, callInProgress: this.state.incomingCall});\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tconst errorCode = error && error.hasOwnProperty(\"code\") ? error.code : \"ERROR\";\n\t\t\t\tthis.context.setToastMessage(\"error\", errorCode);\n\t\t\t});\n\t};\n\n\tignoreCall = () => {\n\t\tSoundManager.pause(enums.CONSTANTS.AUDIO[\"INCOMING_CALL\"], this.context);\n\t\tStorage.setItem(enums.CONSTANTS[\"ACTIVECALL\"], this.state.incomingCall);\n\t\tthis.setState({incomingCall: null});\n\t};\n\n\tcheckForActiveCallAndEndCall = () => {\n\t\tconst promise = new Promise((resolve, reject) => {\n\t\t\tif (this.isCallActive() === false) {\n\t\t\t\treturn resolve({success: true});\n\t\t\t}\n\n\t\t\tlet sessionID = this.getActiveCallSessionID();\n\t\t\tCometChat.endCall(sessionID)\n\t\t\t\t.then(response => {\n\t\t\t\t\treturn resolve(response);\n\t\t\t\t})\n\t\t\t\t.catch(error => {\n\t\t\t\t\treturn reject(error);\n\t\t\t\t});\n\t\t});\n\n\t\treturn promise;\n\t};\n\n\tisCallActive = () => {\n\t\tif (Object.keys(this.context.callInProgress).length === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet sessionID = this.getActiveCallSessionID();\n\t\tif (!sessionID) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t};\n\n\tgetActiveCallSessionID = () => {\n\t\treturn this.context.getActiveCallSessionID();\n\t};\n\n\tactionHandler = action => {\n\t\tswitch (action) {\n\t\t\tcase enums.ACTIONS[\"DIRECT_CALL_ENDED\"]:\n\t\t\tcase enums.ACTIONS[\"DIRECT_CALL_ERROR\"]:\n\t\t\t\tthis.setState({callInProgress: null});\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tlogStorageChange = event => {\n\t\tif (event?.key !== enums.CONSTANTS[\"ACTIVECALL\"]) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (event.newValue || event.oldValue) {\n\t\t\tlet call;\n\t\t\tif (event.newValue) {\n\t\t\t\tcall = JSON.parse(event.newValue);\n\t\t\t} else if (event.oldValue) {\n\t\t\t\tcall = JSON.parse(event.oldValue);\n\t\t\t}\n\n\t\t\tif (this.state.incomingCall?.sessionId === call?.sessionId) {\n\t\t\t\tSoundManager.pause(enums.CONSTANTS.AUDIO[\"INCOMING_CALL\"], this.context);\n\t\t\t\tthis.setState({incomingCall: null});\n\t\t\t}\n\t\t}\n\t};\n\n\trender() {\n\t\tlet callScreen = null,\n\t\t\tincomingCallAlert = null;\n\t\tif (this.state.incomingCall) {\n\t\t\tlet avatar = (\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t);\n\n\t\t\tconst callType = (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t{Translator.translate(\"INCOMING_VIDEO_CALL\", this.props.lang)}\n\t\t\t\t\n\t\t\t);\n\n\t\t\tincomingCallAlert = (\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{this.state.incomingCall.sender.name}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t{callType}\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{avatar}\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t);\n\t\t}\n\n\t\tif (this.state.callInProgress) {\n\t\t\tcallScreen = ;\n\t\t}\n\n\t\treturn (\n\t\t\t\n\t\t\t\t{incomingCallAlert}\n\t\t\t\t{callScreen}\n\t\t\t\n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatIncomingDirectCall.defaultProps = {\n lang: Translator.getDefaultLanguage(),\n theme: theme,\n};\n\nCometChatIncomingDirectCall.propTypes = {\n lang: PropTypes.string,\n theme: PropTypes.object,\n}\n\nexport { CometChatIncomingDirectCall };\n","/* eslint-disable no-useless-concat */\n/* eslint-disable no-extend-native */\nimport dateFormat from \"dateformat\";\nimport Translator from \"../resources/localization/translator\";\nconst milliseconds = 1000;\nconst seconds = 1 * milliseconds;\nconst minute = 60 * seconds;\nconst hour = 60 * minute;\nconst day = 24 * hour;\n\nconst wordBoundary = {\n start: `(?:^|:|;|'|\"|,|{|}|\\\\.|\\\\s|\\\\!|\\\\?|\\\\(|\\\\)|\\\\[|\\\\]|\\\\*)`,\n end: `(?=$|:|;|'|\"|,|{|}|\\\\.|\\\\s|\\\\!|\\\\?|\\\\(|\\\\)|\\\\[|\\\\]|\\\\*)`,\n};\n\nconst emailPattern = new RegExp(\n wordBoundary.start +\n `[A-Z0-9a-z._%+-]+@[A-Za-z0-9.-]+\\\\.[A-Za-z]{2,6}` +\n wordBoundary.end,\n 'gi'\n); \nconst urlPattern = new RegExp(\n wordBoundary.start +\n `((https?://|www\\\\.|pic\\\\.)[-\\\\w;/?:@&=+$\\\\|\\\\_.!~*\\\\|'()\\\\[\\\\]%#,☺]+[\\\\w/#](\\\\(\\\\))?)` +\n wordBoundary.end,\n 'gi'\n);\nconst phoneNumPattern = new RegExp(\n wordBoundary.start +\n `(?:\\\\+?(\\\\d{1,3}))?([-. (]*(\\\\d{3})[-. )]*)?((\\\\d{3})[-. ]*(\\\\d{2,4})(?:[-.x ]*(\\\\d+))?)` +\n wordBoundary.end,\n 'gi'\n);\n\nexport const linkify = (message) => {\n\n let outputStr = message.replace(phoneNumPattern, \"$&\");\n outputStr = outputStr.replace(emailPattern, \"$&\");\n\n const results = outputStr.match(urlPattern);\n\n results &&\n results.forEach((url) => {\n\n url = url.trim();\n let normalizedURL = url;\n if (!url.startsWith('http')) {\n normalizedURL = `//${url}`;\n }\n outputStr = outputStr.replace(\n url,\n `${url}`\n );\n });\n\n return outputStr;\n}\n\nexport const checkMessageForExtensionsData = (message, extensionKey) => {\n\n let output = null;\n \n if (message.hasOwnProperty(\"metadata\")) {\n\n const metadata = message.metadata;\n const injectedObject = metadata[\"@injected\"];\n if (injectedObject && injectedObject.hasOwnProperty(\"extensions\")) {\n\n const extensionsObject = injectedObject[\"extensions\"];\n if (extensionsObject && extensionsObject.hasOwnProperty(extensionKey)) {\n\n output = extensionsObject[extensionKey];\n }\n }\n }\n\n return output;\n}\n\nexport const getMessageFileMetadata = (message, metadataKey) => {\n\n let fileMetadata = null;\n if(message.hasOwnProperty(\"metadata\")) {\n\n const metadata = message[\"metadata\"];\n if (metadata.hasOwnProperty(metadataKey)) {\n fileMetadata = metadata[metadataKey];\n }\n }\n\n return fileMetadata;\n}\n\nexport const ID = () => {\n // Math.random should be unique because of its seeding algorithm.\n // Convert it to base 36 (numbers + letters), and grab the first 9 characters\n // after the decimal.\n return '_' + Math.random().toString(36).substr(2, 9);\n};\n\nexport const getUnixTimestamp = () => {\n\n return Math.round(+new Date() / 1000);\n}\n\nconst dateDiffInDays = (a, b) => {\n\n const milliSecondsPerDay = day;\n\n // Discard the time and time-zone information.\n const utc1 = Date.UTC(a.getFullYear(), a.getMonth(), a.getDate());\n const utc2 = Date.UTC(b.getFullYear(), b.getMonth(), b.getDate());\n\n return Math.floor((utc2 - utc1) / milliSecondsPerDay);\n}\n\n\nexport const getTimeStampForLastMessage = (timestamp, lang) => {\n\n const timeStampInMilliSeconds = timestamp * 1000;\n\n const messageTimestamp = new Date(timeStampInMilliSeconds);\n const currentTimestamp = new Date(Date.now());\n\n const dateDifferenceInDays = dateDiffInDays(messageTimestamp, currentTimestamp);\n\n if (dateDifferenceInDays < 1) {\n\n timestamp = dateFormat(messageTimestamp, \"shortTime\");\n\n } else if (dateDifferenceInDays < 2) {\n\n timestamp = Translator.translate(\"YESTERDAY\", lang);\n\n } else if (dateDifferenceInDays < 7) {\n\n timestamp = dateFormat(messageTimestamp, \"dddd\");\n timestamp = Translator.translate(timestamp, lang);\n\n } else {\n\n timestamp = dateFormat(messageTimestamp, \"dS mmm\");\n }\n\n return timestamp;\n}\n\nexport const getMessageSentTime = (timestamp, lang) => {\n\n let oTimestamp = null;\n\n const messageTimestamp = new Date(timestamp) * 1000;\n oTimestamp = dateFormat(messageTimestamp, \"shortTime\");\n\n return oTimestamp;\n}\n\nexport const getMessageDate = (timestamp, lang) => {\n\n const timeStampInMilliSeconds = timestamp * 1000;\n\n const messageTimestamp = new Date(timeStampInMilliSeconds);\n const currentTimestamp = new Date(Date.now());\n\n const dateDifferenceInDays = dateDiffInDays(messageTimestamp, currentTimestamp);\n\n if (dateDifferenceInDays < 1) {\n\n timestamp = Translator.translate(\"TODAY\", lang);\n\n } else if (dateDifferenceInDays < 2) {\n\n timestamp = Translator.translate(\"YESTERDAY\", lang);\n\n } else if (dateDifferenceInDays < 7) {\n\n timestamp = dateFormat(messageTimestamp, \"dddd\");\n timestamp = Translator.translate(timestamp, lang);\n\n } else {\n\n timestamp = dateFormat(timeStampInMilliSeconds, \"dS mmm, yyyy\");\n }\n\n return timestamp;\n}","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatCallScreen } from \"../CometChatCallScreen\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport { ID, getUnixTimestamp } from \"../../../util/common\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport Translator from \"../../../resources/localization/translator\";\nimport { theme } from \"../../../resources/theme\";\n\nclass CometChatOutgoingDirectCall extends React.Component {\n\n sessionID;\n static contextType = CometChatContext;\n \n constructor(props) {\n\n super(props);\n\n this.state = {\n callInProgress: null,\n }\n\n this.callScreenRef = React.createRef();\n \n CometChat.getLoggedinUser().then(user => this.loggedInUser = user).catch(error => {\n console.error(error);\n });\n }\n\n actionHandler = (action) => {\n\n switch(action) {\n\n case enums.ACTIONS[\"DIRECT_CALL_ENDED\"]:\n case enums.ACTIONS[\"DIRECT_CALL_ERROR\"]:\n this.setState({ callInProgress: null });\n break;\n default:\n break;\n }\n }\n\n startCall = (sessionID) => {\n\n this.sessionID = sessionID;\n if (!this.sessionID) {\n const errorCode = \"ERR_EMPTY_CALL_SESSION_ID\";\n this.context.setToastMessage(\"error\", errorCode);\n return false;\n }\n\n const customMessage = this.prepareCustomMessageData();\n this.setState({ callInProgress: customMessage });\n if(this.context) {\n this.context.setCallInProgress(customMessage, enums.CONSTANTS[\"OUTGOING_DIRECT_CALLING\"]);\n }\n\n setTimeout(() => {\n this.sendCustomMessage();\n }, 5);\n }\n\n joinCall = (sessionID) => {\n\n this.sessionID = sessionID;\n if (this.sessionID === null) {\n const errorCode = \"ERR_EMPTY_CALL_SESSION_ID\";\n this.context.setToastMessage(\"error\", errorCode);\n return false;\n }\n\n const customMessage = this.prepareCustomMessageData();\n this.setState({ callInProgress: customMessage });\n if (this.context) {\n this.context.setCallInProgress(customMessage, enums.CONSTANTS[\"OUTGOING_DIRECT_CALLING\"]);\n }\n }\n\n prepareCustomMessageData = () => {\n\n const receiverType = CometChat.RECEIVER_TYPE.GROUP;\n const customData = { \"sessionID\": this.sessionID, \"sessionId\": this.sessionID, \"callType\": CometChat.CALL_TYPE.VIDEO };\n const customType = enums.CUSTOM_TYPE_MEETING;\n const conversationId = `group_${this.sessionID}`;\n\n const customMessage = new CometChat.CustomMessage(this.sessionID, receiverType, customType, customData);\n customMessage.setSender(this.loggedInUser);\n customMessage.setReceiver(receiverType);\n customMessage.setConversationId(conversationId);\n customMessage._composedAt = getUnixTimestamp();\n customMessage._id = ID();\n\n return customMessage;\n }\n\n sendCustomMessage = () => {\n\n const customMessage = this.prepareCustomMessageData();\n this.props.actionGenerated(enums.ACTIONS[\"MESSAGE_COMPOSED\"], [customMessage]);\n\n CometChat.sendCustomMessage(customMessage).then(message => {\n\n const newMessageObj = { ...message, \"_id\": customMessage._id };\n this.props.actionGenerated(enums.ACTIONS[\"MESSAGE_SENT\"], [newMessageObj]);\n\n }).catch(error => {\n\n const newMessageObj = { ...customMessage, \"error\": error };\n this.props.actionGenerated(enums.ACTIONS[\"ERROR_IN_SENDING_MESSAGE\"], [newMessageObj]);\n\n const errorCode = (error && error.hasOwnProperty(\"code\")) ? error.code : \"ERROR\";\n this.context.setToastMessage(\"error\", errorCode);\n });\n }\n\n render() {\n\n let callScreen = null;\n if(this.state.callInProgress) {\n\n callScreen = (\n this.callScreenRef = el} loggedInUser={this.loggedInUser} call={this.state.callInProgress} lang={this.props.lang} actionGenerated={this.actionHandler} />\n );\n }\n return callScreen;\n }\n}\n\n// Specifies the default values for props:\nCometChatOutgoingDirectCall.defaultProps = {\n lang: Translator.getDefaultLanguage(),\n theme: theme,\n};\n\nCometChatOutgoingDirectCall.propTypes = {\n lang: PropTypes.string,\n theme: PropTypes.object,\n}\n\nexport { CometChatOutgoingDirectCall };\n","import { CometChat } from \"@cometchat-pro/chat\";\n\nimport * as enums from \"../../../util/enums.js\";\nimport { UIKitSettings } from \"../../../util/UIKitSettings\";\n\nexport class ConversationListManager {\n\n conversationRequest = null;\n\n conversationListenerId = \"chatlist_\" + new Date().getTime();\n userListenerId = \"chatlist_user_\" + new Date().getTime();\n groupListenerId = \"chatlist_group_\" + new Date().getTime();\n callListenerId = \"chatlist_call_\" + new Date().getTime();\n\n constructor(context) {\n\n const chatListMode = context.UIKitSettings.chatListMode;\n const chatListFilterOptions = UIKitSettings.chatListFilterOptions;\n\n switch (chatListMode) {\n case chatListFilterOptions[\"USERS\"]:\n this.conversationRequest = new CometChat.ConversationsRequestBuilder().setConversationType(CometChat.ACTION_TYPE.TYPE_USER).setLimit(30).build();\n break;\n case chatListFilterOptions[\"GROUPS\"]:\n this.conversationRequest = new CometChat.ConversationsRequestBuilder().setConversationType(CometChat.ACTION_TYPE.TYPE_GROUP).setLimit(30).build();\n break;\n default:\n this.conversationRequest = new CometChat.ConversationsRequestBuilder().setLimit(30).build();\n break;\n }\n }\n\n fetchNextConversation() {\n return this.conversationRequest.fetchNext();\n }\n\n attachListeners(callback) {\n\n CometChat.addUserListener(\n this.userListenerId,\n new CometChat.UserListener({\n onUserOnline: onlineUser => {\n /* when someuser/friend comes online, user will be received here */\n callback(enums.USER_ONLINE, onlineUser);\n },\n onUserOffline: offlineUser => {\n /* when someuser/friend went offline, user will be received here */\n callback(enums.USER_OFFLINE, offlineUser);\n }\n })\n );\n\n CometChat.addGroupListener(\n this.groupListenerId,\n new CometChat.GroupListener({\n onGroupMemberScopeChanged: (message, changedUser, newScope, oldScope, changedGroup) => {\n callback(enums.GROUP_MEMBER_SCOPE_CHANGED, changedGroup, message, {\"user\": changedUser, \"scope\": newScope});\n }, \n onGroupMemberKicked: (message, kickedUser, kickedBy, kickedFrom) => {\n callback(enums.GROUP_MEMBER_KICKED, kickedFrom, message, {\"user\": kickedUser, \"hasJoined\": false});\n }, \n onGroupMemberBanned: (message, bannedUser, bannedBy, bannedFrom) => {\n callback(enums.GROUP_MEMBER_BANNED, bannedFrom, message, {\"user\": bannedUser});\n }, \n onGroupMemberUnbanned: (message, unbannedUser, unbannedBy, unbannedFrom) => {\n callback(enums.GROUP_MEMBER_UNBANNED, unbannedFrom, message, {\"user\": unbannedUser});\n }, \n onMemberAddedToGroup: (message, userAdded, userAddedBy, userAddedIn) => {\n callback(enums.GROUP_MEMBER_ADDED, userAddedIn, message, {\"user\": userAdded, \"hasJoined\": true});\n }, \n onGroupMemberLeft: (message, leavingUser, group) => {\n callback(enums.GROUP_MEMBER_LEFT, group, message, {\"user\": leavingUser});\n }, \n onGroupMemberJoined: (message, joinedUser, joinedGroup) => {\n callback(enums.GROUP_MEMBER_JOINED, joinedGroup, message, {\"user\": joinedUser});\n }\n })\n );\n\n CometChat.addMessageListener(\n this.conversationListenerId,\n new CometChat.MessageListener({\n onTextMessageReceived: textMessage => {\n callback(enums.TEXT_MESSAGE_RECEIVED, null, textMessage);\n },\n onMediaMessageReceived: mediaMessage => {\n callback(enums.MEDIA_MESSAGE_RECEIVED, null, mediaMessage);\n },\n onCustomMessageReceived: customMessage => {\n callback(enums.CUSTOM_MESSAGE_RECEIVED, null, customMessage);\n },\n onMessageDeleted: deletedMessage => {\n callback(enums.MESSAGE_DELETED, null, deletedMessage);\n },\n onMessageEdited: editedMessage => {\n callback(enums.MESSAGE_EDITED, null, editedMessage);\n },\n onMessagesRead: messageReceipt => {\n callback(enums.MESSAGE_READ, null, messageReceipt);\n }\n })\n );\n\n CometChat.addCallListener(\n this.callListenerId,\n new CometChat.CallListener({\n onIncomingCallReceived: call => {\n callback(enums.INCOMING_CALL_RECEIVED, null, call);\n },\n onIncomingCallCancelled: call => {\n callback(enums.INCOMING_CALL_CANCELLED, null, call);\n }\n })\n );\n }\n\n removeListeners() {\n CometChat.removeMessageListener(this.conversationListenerId);\n CometChat.removeUserListener(this.userListenerId);\n CometChat.removeGroupListener(this.groupListenerId);\n CometChat.removeCallListener(this.callListenerId);\n }\n\n}\n","class CometChatEvent {\n\tstatic _triggers = {};\n\n\tstatic on(event, callback) {\n\t\tif (!CometChatEvent._triggers[event]) CometChatEvent._triggers[event] = [];\n\t\tCometChatEvent._triggers[event].push(callback);\n\t}\n\n\tstatic triggerHandler(event, params) {\n\t\tif (CometChatEvent._triggers[event]) {\n\t\t\tfor (const i in CometChatEvent._triggers[event]) CometChatEvent._triggers[event][i](params);\n\t\t}\n\t}\n}\n\nexport { CometChatEvent };","export const chatsWrapperStyle = (props, theme) => {\n\n const borderStyle = (props._parent === \"\") ? {\n border: `1px solid ${theme.borderColor.primary}`\n } : {};\n\n return {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\",\n boxSizing: \"border-box\",\n ...borderStyle,\n \"*\": {\n boxSizing: \"border-box\",\n \"::-webkit-scrollbar\": {\n width: \"8px\",\n height: \"4px\",\n },\n \"::-webkit-scrollbar-track\": {\n background: \"#ffffff00\"\n },\n \"::-webkit-scrollbar-thumb\": {\n background: \"#ccc\",\n \"&:hover\": {\n background: \"#aaa\"\n }\n }\n }\n }\n}\n\nexport const chatsHeaderStyle = theme => {\n\n\treturn {\n\t\tpadding: \"16px\",\n\t\tdisplay: \"flex\",\n\t\talignItems: \"center\",\n\t\tborderBottom: `1px solid ${theme.borderColor.primary}`,\n\t\theight: \"69px\",\n\t};\n};\n\nexport const chatsHeaderCloseStyle = (img, theme) => {\n\n\tconst mq = [...theme.breakPoints];\n\n\treturn {\n\t\tcursor: \"pointer\",\n\t\tdisplay: \"none\",\n\t\tmask: `url(${img}) no-repeat left center`,\n\t\tbackgroundColor: `${theme.primaryColor}`,\n\t\theight: \"24px\",\n\t\twidth: \"33%\",\n\t\t[`@media ${mq[0]}`]: {\n\t\t\tdisplay: \"block!important\",\n\t\t},\n\t};\n};\n\nexport const chatsHeaderTitleStyle = (props) => {\n\n const alignment = (props.hasOwnProperty(\"enableCloseMenu\") && props.enableCloseMenu.length > 0) ? {\n width: \"33%\",\n textAlign: \"center\"\n } : {};\n \n return {\n margin: \"0\",\n display: \"inline-block\",\n width: \"100%\",\n textAlign: \"left\",\n fontSize: \"20px\",\n ...alignment,\n \"&[dir=rtl]\": {\n textAlign: \"right\",\n }\n }\n}\n\nexport const chatsMsgStyle = () =>{\n\n return {\n overflow: \"hidden\",\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n position: \"absolute\",\n top: \"50%\",\n }\n}\n\nexport const chatsMsgTxtStyle = theme => {\n \n\treturn {\n\t\tmargin: \"0\",\n\t\tminHeight: \"36px\",\n\t\tcolor: `${theme.color.secondary}`,\n\t\tfontSize: \"20px!important\",\n\t\tfontWeight: \"600\",\n\t\tlineHeight: \"30px\",\n\t\twordWrap: \"break-word\",\n\t\tpadding: \"0 16px\",\n\t};\n};\n\nexport const chatsListStyle = () => {\n\n return {\n height: \"calc(100% - 75px)\",\n width: \"100%\",\n overflowY: \"auto\",\n margin: \"0\",\n padding: \"0\",\n }\n}","export default __webpack_public_path__ + \"static/media/back.e8e05e7c.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { ConversationListManager } from \"./controller\";\n\nimport { CometChatConfirmDialog, CometChatToastNotification } from \"../../Shared\";\nimport { CometChatConversationListItem } from \"../\";\n\nimport { CometChatContextProvider, CometChatContext } from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\nimport { UIKitSettings } from \"../../../util/UIKitSettings\";\nimport { SoundManager } from \"../../../util/SoundManager\";\nimport { CometChatEvent } from \"../../../util/CometChatEvent\";\n\nimport Translator from \"../../../resources/localization/translator\";\nimport { theme } from \"../../../resources/theme\";\n\nimport {\n chatsWrapperStyle,\n chatsHeaderStyle,\n chatsHeaderCloseStyle,\n chatsHeaderTitleStyle,\n chatsMsgStyle,\n chatsMsgTxtStyle,\n chatsListStyle\n} from \"./style\";\n\nimport navigateIcon from \"./resources/back.svg\";\n\nclass CometChatConversationList extends React.Component {\n\n\tloggedInUser = null;\n\tselectedConversation = null;\n\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis._isMounted = false;\n\t\tthis.state = {\n\t\t\tconversationlist: [],\n\t\t\tonItemClick: null,\n\t\t\thideGroupActionMessages: false,\n\t\t\tshowConfirmDialog: false,\n\t\t\tdecoratorMessage: Translator.translate(\"LOADING\", props.lang),\n\t\t\tconversationToBeDeleted: null,\n\t\t};\n\n\t\tthis.contextProviderRef = React.createRef();\n\t\tthis.chatListRef = React.createRef();\n\t\tthis.toastRef = React.createRef();\n\n\t\tCometChat.getLoggedinUser()\n\t\t\t.then(user => (this.loggedInUser = user))\n\t\t\t.catch(error => this.setState({ decoratorMessage: Translator.translate(\"SOMETHING_WRONG\", this.props.lang) }));\n\t}\n\n\tcomponentDidMount() {\n\n\t\tthis._isMounted = true;\n\t\tthis.item = this.getContext().type === CometChat.ACTION_TYPE.TYPE_USER || CometChat.ACTION_TYPE.TYPE_GROUP ? this.getContext().item : null;\n\t\tthis.hideGroupActionMessages();\n\n\t\tthis.setState({ conversationlist: [] }, () => {\n\t\t\tthis.ConversationListManager = new ConversationListManager(this.getContext());\n\t\t\tthis.getConversations();\n\t\t\tthis.ConversationListManager.attachListeners(this.conversationCallback);\n\t\t});\n\n\t\t//updating last message whenever a message is composed and sent\n\t\tCometChatEvent.on(\"updateLastMessage\", args => this.updateLastMessage(args));\n\n\t\t//updating unreadcount whenever a new message is received and not read.\n\t\tCometChatEvent.on(enums.EVENTS[\"NEW_MESSAGES\"], args => this.updateUnreadCount(args));\n\n\t\t//clearing unreadcount whenever scrolled to the bottom.\n\t\tCometChatEvent.on(enums.EVENTS[\"CLEAR_UNREAD_MESSAGES\"], args => this.clearUnreadCount(args));\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\n\t\t//when a particular chat is selected from the chats list\n\t\tif ((Object.keys(this.getContext().item).length && this.getContext().type.length) || this.getContext().item !== this.item) {\n\t\t\tconst conversationlist = [...this.state.conversationlist];\n\t\t\tconst conversationObj = conversationlist.find(c => {\n\t\t\t\tif (\n\t\t\t\t\t(c.conversationType === this.getContext().type && this.getContext().type === CometChat.RECEIVER_TYPE.USER && c.conversationWith.uid === this.getContext().item.uid) ||\n\t\t\t\t\t(c.conversationType === this.getContext().type && this.getContext().type === CometChat.RECEIVER_TYPE.GROUP && c.conversationWith.guid === this.getContext().item.guid)\n\t\t\t\t) {\n\t\t\t\t\treturn c;\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t});\n\n\t\t\tif (conversationObj && conversationObj.unreadMessageCount > 0) {\n\t\t\t\tlet conversationKey = conversationlist.indexOf(conversationObj);\n\t\t\t\tlet newConversationObj = { ...conversationObj, unreadMessageCount: 0 };\n\n\t\t\t\tconversationlist.splice(conversationKey, 1, newConversationObj);\n\t\t\t\tthis.setState({ conversationlist: conversationlist });\n\t\t\t}\n\n\t\t\tif (Object.keys(this.getContext().item).length === 0) {\n\t\t\t\tthis.selectedConversation = null;\n\t\t\t}\n\t\t}\n\n\t\t//if user is blocked/unblocked, update conversationlist in state\n\t\tif (this.item && Object.keys(this.item).length && this.item.hasOwnProperty(\"uid\") && this.getContext().type === CometChat.ACTION_TYPE.TYPE_USER && this.item.uid === this.getContext().item.uid && this.item.blockedByMe !== this.getContext().item.blockedByMe) {\n\t\t\tlet conversationlist = [...this.state.conversationlist];\n\n\t\t\t//search for user\n\t\t\tlet convKey = conversationlist.findIndex(c => c.conversationType === CometChat.ACTION_TYPE.TYPE_USER && c.conversationWith.uid === this.getContext().item.uid);\n\t\t\tif (convKey > -1) {\n\t\t\t\tconst convObj = conversationlist[convKey];\n\n\t\t\t\tlet convWithObj = { ...convObj.conversationWith };\n\t\t\t\tlet newConvWithObj = Object.assign({}, convWithObj, { blockedByMe: this.getContext().item.blockedByMe });\n\n\t\t\t\tlet newConvObj = Object.assign({}, convObj, { conversationWith: newConvWithObj });\n\n\t\t\t\tconversationlist.splice(convKey, 1, newConvObj);\n\t\t\t\tthis.setState({ conversationlist: conversationlist });\n\t\t\t}\n\t\t}\n\n\t\t//if group detail(membersCount) is updated, update grouplist\n\t\tif (this.item && Object.keys(this.item).length && this.item.hasOwnProperty(\"guid\") && this.getContext().type === CometChat.ACTION_TYPE.TYPE_GROUP && this.item.guid === this.getContext().item.guid && this.item.membersCount !== this.getContext().item.membersCount) {\n\t\t\tconst conversationlist = [...this.state.conversationlist];\n\n\t\t\tlet convKey = conversationlist.findIndex(c => c.conversationType === CometChat.ACTION_TYPE.TYPE_GROUP && c.conversationWith.guid === this.getContext().item.guid);\n\t\t\tif (convKey > -1) {\n\t\t\t\tconst convObj = conversationlist[convKey];\n\n\t\t\t\tlet convWithObj = { ...convObj.conversationWith };\n\t\t\t\tlet newConvWithObj = Object.assign({}, convWithObj, { membersCount: this.getContext().item.membersCount });\n\n\t\t\t\tlet newConvObj = Object.assign({}, convObj, { conversationWith: newConvWithObj });\n\n\t\t\t\tconversationlist.splice(convKey, 1, newConvObj);\n\t\t\t\tthis.setState({ conversationlist: conversationlist });\n\t\t\t}\n\t\t}\n\n\t\t//upon user deleting a group, remove group from conversation list\n\t\tif (this.getContext().deletedGroupId.trim().length) {\n\t\t\tconst guid = this.getContext().deletedGroupId.trim();\n\t\t\tconst conversationlist = [...this.state.conversationlist];\n\n\t\t\tlet conversationKey = conversationlist.findIndex(c => c.conversationType === CometChat.ACTION_TYPE.TYPE_GROUP && c.conversationWith.guid === guid);\n\n\t\t\tif (conversationKey > -1) {\n\t\t\t\tconversationlist.splice(conversationKey, 1);\n\t\t\t\tthis.setState({ conversationlist: conversationlist });\n\t\t\t}\n\t\t}\n\n\t\t//upon user leaving a group, remove group from conversation list\n\t\tif (this.getContext().leftGroupId.trim().length) {\n\t\t\tconst guid = this.getContext().leftGroupId.trim();\n\t\t\tconst conversationlist = [...this.state.conversationlist];\n\n\t\t\tlet conversationKey = conversationlist.findIndex(c => c.conversationType === CometChat.ACTION_TYPE.TYPE_GROUP && c.conversationWith.guid === guid);\n\n\t\t\tif (conversationKey > -1) {\n\t\t\t\tconversationlist.splice(conversationKey, 1);\n\t\t\t\tthis.setState({ conversationlist: conversationlist });\n\t\t\t}\n\t\t}\n\n\t\tthis.item = this.getContext().type === CometChat.ACTION_TYPE.TYPE_USER || CometChat.ACTION_TYPE.TYPE_GROUP ? this.getContext().item : null;\n\t\tthis.hideGroupActionMessages();\n\t}\n\n\tcomponentWillUnmount() {\n\n\t\tthis._isMounted = false;\n\t\tthis.ConversationListManager.removeListeners();\n\t\tthis.ConversationListManager = null;\n\n\t}\n\n\tupdateLastMessage = lastMessage => {\n\t\tconst conversationList = [...this.state.conversationlist];\n\t\tconst conversationKey = conversationList.findIndex(c => c.conversationId === lastMessage.conversationId);\n\n\t\tif (conversationKey > -1) {\n\t\t\tconst conversationObj = conversationList[conversationKey];\n\t\t\tlet newConversationObj = { ...conversationObj, lastMessage: { ...lastMessage } };\n\n\t\t\tif (conversationKey === 0) {\n\t\t\t\tconversationList.splice(conversationKey, 1, newConversationObj);\n\t\t\t} else {\n\t\t\t\tconversationList.splice(conversationKey, 1);\n\t\t\t\tconversationList.unshift(newConversationObj);\n\t\t\t}\n\n\t\t\tthis.setState({ conversationlist: conversationList });\n\t\t} else {\n\t\t\tconst chatListMode = this.getContext().UIKitSettings.chatListMode;\n\t\t\tconst chatListFilterOptions = UIKitSettings.chatListFilterOptions;\n\t\t\tif (chatListMode !== chatListFilterOptions[\"USERS_AND_GROUPS\"]) {\n\t\t\t\tif ((chatListMode === chatListFilterOptions[\"USERS\"] && lastMessage.receiverType === CometChat.RECEIVER_TYPE.GROUP) || (chatListMode === chatListFilterOptions[\"GROUPS\"] && lastMessage.receiverType === CometChat.RECEIVER_TYPE.USER)) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet newConversation = new CometChat.Conversation();\n\t\t\tnewConversation.setConversationId(lastMessage.conversationId);\n\t\t\tnewConversation.setConversationType(this.getContext().type);\n\t\t\tnewConversation.setConversationWith(this.getContext().item);\n\t\t\tnewConversation.setLastMessage(lastMessage);\n\t\t\tnewConversation.setUnreadMessageCount(0);\n\n\t\t\tconversationList.unshift(newConversation);\n\n\t\t\tif (this._isMounted) {\n\t\t\t\tthis.setState({ conversationlist: conversationList });\n\t\t\t}\n\t\t}\n\t};\n\n\tupdateUnreadCount = params => {\n\t\t\n\t\tif (this.selectedConversation) {\n\t\t\tthis.selectedConversation[\"unreadMessages\"] = params.unreadMessages;\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tclearUnreadCount = params => {\n\n\t\tif (this.selectedConversation) {\n\t\t\t\n\t\t\tthis.selectedConversation[\"unreadMessages\"] = [];\n\t\t\tlet conversationList = [...this.state.conversationlist];\n\n\t\t\tlet conversationKey = conversationList.findIndex(c => c.conversationId === this.selectedConversation.conversationId);\n\n\t\t\tif (conversationKey > -1) {\n\t\t\t\tlet conversationObj = { ...conversationList[conversationKey] };\n\t\t\t\tlet newConversationObj = { ...conversationObj, unreadMessageCount: 0 };\n\n\t\t\t\tconversationList.splice(conversationKey, 1);\n\t\t\t\tconversationList.unshift(newConversationObj);\n\t\t\t\tthis.setState({ conversationlist: conversationList });\n\t\t\t}\n\t\t}\n\t};\n\n\tconversationCallback = (key, item, message, options) => {\n\t\tswitch (key) {\n\t\t\tcase enums.USER_ONLINE:\n\t\t\tcase enums.USER_OFFLINE:\n\t\t\t\tthis.updateUser(item);\n\t\t\t\tbreak;\n\t\t\tcase enums.TEXT_MESSAGE_RECEIVED:\n\t\t\tcase enums.MEDIA_MESSAGE_RECEIVED:\n\t\t\tcase enums.CUSTOM_MESSAGE_RECEIVED:\n\t\t\t\tthis.markMessageAsDelivered(message);\n\t\t\t\tthis.conversationUpdated(key, message, options);\n\t\t\t\tbreak;\n\t\t\tcase enums.INCOMING_CALL_RECEIVED:\n\t\t\tcase enums.INCOMING_CALL_CANCELLED:\n\t\t\tcase enums.MESSAGE_EDITED:\n\t\t\tcase enums.MESSAGE_DELETED:\n\t\t\tcase enums.MESSAGE_READ:\n\t\t\tcase enums.GROUP_MEMBER_ADDED:\n\t\t\tcase enums.GROUP_MEMBER_KICKED:\n\t\t\tcase enums.GROUP_MEMBER_BANNED:\n\t\t\tcase enums.GROUP_MEMBER_LEFT:\n\t\t\tcase enums.GROUP_MEMBER_SCOPE_CHANGED:\n\t\t\tcase enums.GROUP_MEMBER_JOINED:\n\t\t\tcase enums.GROUP_MEMBER_UNBANNED:\n\t\t\t\tthis.conversationUpdated(key, message, options);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tmarkMessageAsDelivered = message => {\n\n\t\t//if chat window is not open, mark message as delivered\n\t\tif ((this.getContext().type === \"\" || Object.keys(this.getContext().item).length === 0) \n\t\t&& message.hasOwnProperty(\"deliveredAt\") === false) {\n\t\t\tCometChat.markAsDelivered(message);\n\t\t}\n\t};\n\n\tconversationUpdated = (key, message, options) => {\n\t\tconst chatListMode = this.getContext().UIKitSettings.chatListMode;\n\t\tconst chatListFilterOptions = UIKitSettings.chatListFilterOptions;\n\n\t\tif (chatListMode !== chatListFilterOptions[\"USERS_AND_GROUPS\"]) {\n\t\t\tif ((chatListMode === chatListFilterOptions[\"USERS\"] && message.receiverType === CometChat.RECEIVER_TYPE.GROUP) || (chatListMode === chatListFilterOptions[\"GROUPS\"] && message.receiverType === CometChat.RECEIVER_TYPE.USER)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tswitch (key) {\n\t\t\tcase enums.TEXT_MESSAGE_RECEIVED:\n\t\t\tcase enums.MEDIA_MESSAGE_RECEIVED:\n\t\t\tcase enums.CUSTOM_MESSAGE_RECEIVED:\n\t\t\tcase enums.INCOMING_CALL_RECEIVED:\n\t\t\tcase enums.INCOMING_CALL_CANCELLED:\n\t\t\t\tthis.updateConversation(key, message);\n\t\t\t\tbreak;\n\t\t\tcase enums.MESSAGE_EDITED:\n\t\t\tcase enums.MESSAGE_DELETED:\n\t\t\t\tthis.conversationEditedDeleted(message);\n\t\t\t\tbreak;\n\t\t\tcase enums.GROUP_MEMBER_ADDED:\n\t\t\t\tthis.updateGroupMemberAdded(message, options);\n\t\t\t\tbreak;\n\t\t\tcase enums.GROUP_MEMBER_KICKED:\n\t\t\tcase enums.GROUP_MEMBER_BANNED:\n\t\t\tcase enums.GROUP_MEMBER_LEFT:\n\t\t\t\tthis.updateGroupMemberRemoved(message, options);\n\t\t\t\tbreak;\n\t\t\tcase enums.GROUP_MEMBER_SCOPE_CHANGED:\n\t\t\t\tthis.updateGroupMemberScopeChanged(message, options);\n\t\t\t\tbreak;\n\t\t\tcase enums.GROUP_MEMBER_JOINED:\n\t\t\tcase enums.GROUP_MEMBER_UNBANNED:\n\t\t\t\tthis.updateGroupMemberChanged(message, options);\n\t\t\t\tbreak;\n\t\t\tcase enums.MESSAGE_READ:\n\t\t\t\tthis.onMessagesRead(message);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tupdateUser = user => {\n\t\tconst conversationlist = [...this.state.conversationlist];\n\t\tconst conversationKey = conversationlist.findIndex(conversationObj => conversationObj.conversationType === \"user\" && conversationObj.conversationWith.uid === user.uid);\n\n\t\tif (conversationKey > -1) {\n\t\t\tlet conversationObj = { ...conversationlist[conversationKey] };\n\t\t\tlet conversationWithObj = { ...conversationObj.conversationWith, status: user.getStatus() };\n\n\t\t\tlet newConversationObj = { ...conversationObj, conversationWith: conversationWithObj };\n\t\t\tconversationlist.splice(conversationKey, 1, newConversationObj);\n\t\t\tthis.setState({ conversationlist: conversationlist });\n\t\t}\n\t};\n\n\thideGroupActionMessages = () => {\n\t\tthis.getContext()\n\t\t\t.FeatureRestriction.isGroupActionMessagesEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.hideGroupActionMessages) {\n\t\t\t\t\tthis.setState({ hideGroupActionMessages: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.hideGroupActionMessages !== false) {\n\t\t\t\t\tthis.setState({ hideGroupActionMessages: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tplayAudio = message => {\n\t\tif (message.category === CometChat.CATEGORY_ACTION && message.type === CometChat.ACTION_TYPE.TYPE_GROUP_MEMBER && this.state.hideGroupActionMessages === true) {\n\t\t\treturn false;\n\t\t}\n\n\t\t/**\n\t\t * Sound alert for incoming messages\n\t\t */\n\t\tconst receiverType = message.getReceiverType();\n\t\tconst receiverId = receiverType === CometChat.RECEIVER_TYPE.USER ? message.getSender().uid : message.getReceiverId();\n\n\t\tif (receiverType === this.getContext().type) {\n\t\t\tif ((receiverType === CometChat.RECEIVER_TYPE.USER && receiverId === this.getContext().item.uid) || (receiverType === CometChat.RECEIVER_TYPE.GROUP && receiverId === this.getContext().item.guid)) {\n\t\t\t\tSoundManager.play(enums.CONSTANTS.AUDIO[\"INCOMING_MESSAGE\"], this.getContext());\n\t\t\t} else {\n\t\t\t\tSoundManager.play(enums.CONSTANTS.AUDIO[\"INCOMING_OTHER_MESSAGE\"], this.getContext());\n\t\t\t}\n\t\t} else {\n\t\t\tSoundManager.play(enums.CONSTANTS.AUDIO[\"INCOMING_OTHER_MESSAGE\"], this.getContext());\n\t\t}\n\t};\n\n\tonMessagesRead = messageReceipt => {\n\t\tconst conversationList = [...this.state.conversationlist];\n\t\tconversationList.forEach((conversation, conversationKey) => {\n\t\t\tif (conversation?.conversationType === messageReceipt.receiverType) {\n\t\t\t\tif ((conversation?.conversationType === CometChat.RECEIVER_TYPE.USER && messageReceipt.receiver === conversation?.conversationWith?.uid) || (conversation?.conversationType === CometChat.RECEIVER_TYPE.GROUP && messageReceipt.receiver === conversation?.conversationWith?.guid)) {\n\t\t\t\t\tlet unreadMessageCount = conversation.unreadMessageCount;\n\t\t\t\t\t/**\n\t\t\t\t\t * If the message id of the read reciept if greater than or equal to the lastmessage id, set unreadmessagecount to 0\n\t\t\t\t\t */\n\t\t\t\t\tif (messageReceipt?.messageId >= conversation?.lastMessage?.id) {\n\t\t\t\t\t\tunreadMessageCount = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet newConversationObj = { ...conversation, unreadMessageCount: unreadMessageCount };\n\t\t\t\t\tconversationList.splice(conversationKey, 1, newConversationObj);\n\t\t\t\t\tthis.setState({ conversationlist: conversationList });\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\n\tmakeConversation = message => {\n\t\tconst promise = new Promise(resolve => {\n\t\t\tCometChat.CometChatHelper.getConversationFromMessage(message).then(conversation => {\n\t\t\t\tlet conversationList = [...this.state.conversationlist];\n\t\t\t\tlet conversationKey = conversationList.findIndex(c => c.conversationId === conversation.conversationId);\n\n\t\t\t\tlet conversationObj = { ...conversation };\n\t\t\t\tif (conversationKey > -1) {\n\t\t\t\t\tconversationObj = { ...conversationList[conversationKey] };\n\t\t\t\t}\n\n\t\t\t\tresolve({ conversationKey: conversationKey, conversationObj: conversationObj, conversationList: conversationList });\n\t\t\t});\n\t\t});\n\n\t\treturn promise;\n\t};\n\n\tmakeUnreadMessageCount = (message, conversation = {}) => {\n\t\t/**\n\t\t * If the received message is sent by the logged in user, don't increment the unread count\n\t\t */\n\t\tif (Object.keys(conversation).length === 0) {\n\t\t\tif (message.sender.uid === this.loggedInUser?.uid) {\n\t\t\t\treturn 0;\n\t\t\t} else {\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t}\n\n\t\tlet unreadMessageCount = parseInt(conversation.unreadMessageCount);\n\t\tif (this.selectedConversation && this.selectedConversation.conversationId === conversation.conversationId) {\n\t\t\tif (this.selectedConversation.hasOwnProperty(\"unreadMessages\") && this.selectedConversation.unreadMessages.length) {\n\t\t\t\tconst firstUnreadMessage = this.selectedConversation.unreadMessages[0];\n\t\t\t\tconst selectedConversation = this.selectedConversation;\n\n\t\t\t\tif (firstUnreadMessage.hasOwnProperty(\"conversationId\") && firstUnreadMessage.conversationId === selectedConversation.conversationId) {\n\t\t\t\t\tunreadMessageCount = 0;\n\t\t\t\t\tthis.selectedConversation.unreadMessages.forEach(message => {\n\t\t\t\t\t\tunreadMessageCount = this.shouldIncrementCount(message) ? ++unreadMessageCount : unreadMessageCount;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tunreadMessageCount = 0;\n\t\t\t}\n\t\t} else if (\n\t\t\t(this.getContext().item.hasOwnProperty(\"guid\") && conversation.conversationWith.hasOwnProperty(\"guid\") && this.getContext().item.guid === conversation.conversationWith.guid) ||\n\t\t\t(this.getContext().item.hasOwnProperty(\"uid\") && conversation.conversationWith.hasOwnProperty(\"uid\") && this.getContext().item.uid === conversation.conversationWith.uid)\n\t\t) {\n\t\t\tunreadMessageCount = 0;\n\t\t} else {\n\t\t\tunreadMessageCount = this.shouldIncrementCount(message) ? ++unreadMessageCount : unreadMessageCount;\n\t\t}\n\n\t\treturn unreadMessageCount;\n\t};\n\n\tshouldIncrementCount = incomingMessage => {\n\t\tlet output = false;\n\t\tif (\n\t\t\t(incomingMessage.category === CometChat.CATEGORY_MESSAGE && incomingMessage.sender.uid !== this.loggedInUser?.uid) ||\n\t\t\t(this.getContext().hasKeyValue(incomingMessage, enums.KEYS[\"METADATA\"]) &&\n\t\t\t\tthis.getContext().hasKeyValue(incomingMessage[enums.KEYS[\"METADATA\"]], enums.KEYS[\"INCREMENT_UNREAD_COUNT\"]) &&\n\t\t\t\tincomingMessage[enums.KEYS[\"METADATA\"]][enums.KEYS[\"INCREMENT_UNREAD_COUNT\"]] === true &&\n\t\t\t\tincomingMessage.sender.uid !== this.loggedInUser?.uid)\n\t\t) {\n\t\t\toutput = true;\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tmakeLastMessage = (message, conversation = {}) => {\n\t\tconst newMessage = Object.assign({}, message);\n\t\treturn newMessage;\n\t};\n\n\tupdateConversation = (key, message) => {\n\t\tthis.makeConversation(message).then(response => {\n\t\t\tconst { conversationKey, conversationObj, conversationList } = response;\n\n\t\t\tif (conversationKey > -1) {\n\t\t\t\tlet unreadMessageCount = this.makeUnreadMessageCount(message, conversationObj);\n\t\t\t\tlet lastMessageObj = this.makeLastMessage(message, conversationObj);\n\n\t\t\t\tlet newConversationObj = { ...conversationObj, lastMessage: lastMessageObj, unreadMessageCount: unreadMessageCount };\n\t\t\t\tconversationList.splice(conversationKey, 1);\n\t\t\t\tconversationList.unshift(newConversationObj);\n\t\t\t\tthis.setState({ conversationlist: conversationList });\n\n\t\t\t\tif (key !== enums.INCOMING_CALL_RECEIVED && key !== enums.INCOMING_CALL_CANCELLED) {\n\t\t\t\t\tthis.playAudio(message);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tlet unreadMessageCount = this.makeUnreadMessageCount(message, {});\n\t\t\t\tlet lastMessageObj = this.makeLastMessage(message);\n\n\t\t\t\tlet newConversationObj = { ...conversationObj, lastMessage: lastMessageObj, unreadMessageCount: unreadMessageCount };\n\t\t\t\tconversationList.unshift(newConversationObj);\n\t\t\t\tthis.setState({ conversationlist: conversationList });\n\n\t\t\t\tif (key !== enums.INCOMING_CALL_RECEIVED && key !== enums.INCOMING_CALL_CANCELLED) {\n\t\t\t\t\tthis.playAudio(message);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\n\tconversationEditedDeleted = message => {\n\t\tthis.makeConversation(message).then(response => {\n\t\t\tconst { conversationKey, conversationObj, conversationList } = response;\n\n\t\t\tif (conversationKey > -1) {\n\t\t\t\tlet lastMessageObj = conversationObj.lastMessage;\n\n\t\t\t\tif (lastMessageObj.id === message.id) {\n\t\t\t\t\tconst newLastMessageObj = Object.assign({}, lastMessageObj, message);\n\t\t\t\t\tlet newConversationObj = Object.assign({}, conversationObj, { lastMessage: newLastMessageObj });\n\t\t\t\t\tconversationList.splice(conversationKey, 1, newConversationObj);\n\t\t\t\t\tthis.setState({ conversationlist: conversationList });\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\n\tupdateGroupMemberAdded = (message, options) => {\n\t\tthis.makeConversation(message).then(response => {\n\t\t\tconst { conversationKey, conversationObj, conversationList } = response;\n\n\t\t\tif (conversationKey > -1) {\n\t\t\t\tlet lastMessageObj = this.makeLastMessage(message, conversationObj);\n\t\t\t\tlet conversationWithObj = { ...conversationObj.conversationWith };\n\n\t\t\t\tlet membersCount = parseInt(conversationWithObj.membersCount);\n\t\t\t\tif (message.hasOwnProperty(\"actionFor\") && message.actionFor.hasOwnProperty(\"membersCount\")) {\n\t\t\t\t\tmembersCount = message.actionFor.membersCount;\n\t\t\t\t}\n\n\t\t\t\tlet newConversationWithObj = { ...conversationWithObj, membersCount: membersCount };\n\n\t\t\t\tlet newConversationObj = { ...conversationObj, conversationWith: newConversationWithObj, lastMessage: lastMessageObj };\n\t\t\t\tconversationList.splice(conversationKey, 1);\n\t\t\t\tconversationList.unshift(newConversationObj);\n\t\t\t\tthis.setState({ conversationlist: conversationList });\n\t\t\t\tthis.playAudio(message);\n\t\t\t} else {\n\t\t\t\tif (options && this.loggedInUser.uid === options.user.uid) {\n\t\t\t\t\tlet lastMessageObj = this.makeLastMessage(message);\n\t\t\t\t\tlet conversationWithObj = { ...conversationObj.conversationWith };\n\n\t\t\t\t\tlet membersCount = parseInt(conversationWithObj.membersCount);\n\t\t\t\t\tif (message.hasOwnProperty(\"actionFor\") && message.actionFor.hasOwnProperty(\"membersCount\")) {\n\t\t\t\t\t\tmembersCount = message.actionFor.membersCount;\n\t\t\t\t\t}\n\t\t\t\t\tlet scope = CometChat.GROUP_MEMBER_SCOPE.PARTICIPANT;\n\t\t\t\t\tlet hasJoined = options.hasJoined;\n\n\t\t\t\t\tlet newConversationWithObj = { ...conversationWithObj, membersCount: membersCount, scope: scope, hasJoined: hasJoined };\n\t\t\t\t\tlet newConversationObj = { ...conversationObj, conversationWith: newConversationWithObj, lastMessage: lastMessageObj };\n\n\t\t\t\t\tconversationList.unshift(newConversationObj);\n\t\t\t\t\tthis.setState({ conversationlist: conversationList });\n\t\t\t\t\tthis.playAudio(message);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\n\tupdateGroupMemberRemoved = (message, options) => {\n\t\tthis.makeConversation(message).then(response => {\n\t\t\tconst { conversationKey, conversationObj, conversationList } = response;\n\n\t\t\tif (conversationKey > -1) {\n\t\t\t\tif (options && this.loggedInUser.uid === options.user.uid) {\n\t\t\t\t\tconversationList.splice(conversationKey, 1);\n\t\t\t\t\tthis.setState({ conversationlist: conversationList });\n\t\t\t\t} else {\n\t\t\t\t\tlet lastMessageObj = this.makeLastMessage(message, conversationObj);\n\t\t\t\t\tlet conversationWithObj = { ...conversationObj.conversationWith };\n\n\t\t\t\t\tlet membersCount = parseInt(conversationWithObj.membersCount);\n\t\t\t\t\tif (message.hasOwnProperty(\"actionFor\") && message.actionFor.hasOwnProperty(\"membersCount\")) {\n\t\t\t\t\t\tmembersCount = message.actionFor.membersCount;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet newConversationWithObj = { ...conversationWithObj, membersCount: membersCount };\n\n\t\t\t\t\tlet newConversationObj = { ...conversationObj, conversationWith: newConversationWithObj, lastMessage: lastMessageObj };\n\t\t\t\t\tconversationList.splice(conversationKey, 1);\n\t\t\t\t\tconversationList.unshift(newConversationObj);\n\t\t\t\t\tthis.setState({ conversationlist: conversationList });\n\t\t\t\t\tthis.playAudio(message);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\n\tupdateGroupMemberScopeChanged = (message, options) => {\n\t\tthis.makeConversation(message).then(response => {\n\t\t\tconst { conversationKey, conversationObj, conversationList } = response;\n\n\t\t\tif (conversationKey > -1) {\n\t\t\t\tlet lastMessageObj = this.makeLastMessage(message, conversationObj);\n\n\t\t\t\tlet conversationWithObj = { ...conversationObj.conversationWith };\n\t\t\t\tlet membersCount = parseInt(conversationWithObj.membersCount);\n\n\t\t\t\tlet scope = conversationWithObj.scope;\n\t\t\t\tif (options && this.loggedInUser.uid === options.user.uid) {\n\t\t\t\t\tscope = options.scope;\n\t\t\t\t}\n\n\t\t\t\tlet newConversationWithObj = { ...conversationWithObj, membersCount: membersCount, scope: scope };\n\t\t\t\tlet newConversationObj = { ...conversationObj, conversationWith: newConversationWithObj, lastMessage: lastMessageObj };\n\t\t\t\tconversationList.splice(conversationKey, 1);\n\t\t\t\tconversationList.unshift(newConversationObj);\n\t\t\t\tthis.setState({ conversationlist: conversationList });\n\t\t\t\tthis.playAudio(message);\n\t\t\t}\n\t\t});\n\t};\n\n\tupdateGroupMemberChanged = (message, options) => {\n\t\tthis.makeConversation(message).then(response => {\n\t\t\tconst { conversationKey, conversationObj, conversationList } = response;\n\t\t\tif (conversationKey > -1) {\n\t\t\t\tif (options && this.loggedInUser.uid !== options.user.uid) {\n\t\t\t\t\tlet lastMessageObj = this.makeLastMessage(message, conversationObj);\n\t\t\t\t\tlet conversationWithObj = { ...conversationObj.conversationWith };\n\n\t\t\t\t\tlet membersCount = parseInt(conversationWithObj.membersCount);\n\t\t\t\t\tif (message.hasOwnProperty(\"actionFor\") && message.actionFor.hasOwnProperty(\"membersCount\")) {\n\t\t\t\t\t\tmembersCount = message.actionFor.membersCount;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet newConversationWithObj = { ...conversationWithObj, membersCount: membersCount };\n\t\t\t\t\tlet newConversationObj = { ...conversationObj, conversationWith: newConversationWithObj, lastMessage: lastMessageObj };\n\t\t\t\t\tconversationList.splice(conversationKey, 1);\n\t\t\t\t\tconversationList.unshift(newConversationObj);\n\t\t\t\t\tthis.setState({ conversationlist: conversationList });\n\t\t\t\t\tthis.playAudio(message);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t};\n\n\thandleScroll = e => {\n\t\tconst bottom = Math.round(e.currentTarget.scrollHeight - e.currentTarget.scrollTop) === Math.round(e.currentTarget.clientHeight);\n\t\tif (bottom) this.getConversations();\n\t};\n\n\t//click handler\n\thandleClick = conversation => {\n\t\tif (!this.props.onItemClick) return;\n\n\t\tthis.props.onItemClick(conversation.conversationWith, conversation.conversationType);\n\t\tthis.selectedConversation = conversation;\n\t};\n\n\thandleMenuClose = () => {\n\t\tif (!this.props.actionGenerated) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"TOGGLE_SIDEBAR\"]);\n\t};\n\n\tgetConversations = () => {\n\t\t\n\t\tthis.ConversationListManager.fetchNextConversation()\n\t\t\t.then(conversationList => {\n\n\t\t\t\tif (conversationList.length === 0) {\n\t\t\t\t\tif (this.state.conversationlist.length === 0) {\n\t\t\t\t\t\tthis.setState({ decoratorMessage: Translator.translate(\"NO_CHATS_FOUND\", this.props.lang) });\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState({ decoratorMessage: \"\" });\n\t\t\t\t}\n\n\t\t\t\tlet conversations = [...this.state.conversationlist];\n\t\t\t\t//if conversation exists already in the state, remove it from this list\n\t\t\t\tconversationList.forEach(eachConversation => {\n\n\t\t\t\t\tlet conversationKey = conversations.findIndex(c => c.conversationId === eachConversation.conversationId);\n\t\t\t\t\tif (conversationKey > -1) {\n\n\t\t\t\t\t\tconst newUnreadMessageCount = conversations[conversationKey][\"unreadMessageCount\"] + eachConversation[\"unreadMessageCount\"];\n\t\t\t\t\t\tconst updatedConversation = { ...conversations[conversationKey], unreadMessageCount: newUnreadMessageCount };\n\t\t\t\t\t\tconversations.splice(conversationKey, 1, updatedConversation);\n\n\t\t\t\t\t\tconversationList.splice(conversationKey, 1);\n\t\t\t\t\t}\n\n\t\t\t\t});\n\n\t\t\t\tthis.setState({ conversationlist: [...conversations, ...conversationList] });\n\t\t\t})\n\t\t\t.catch(error => this.setState({ decoratorMessage: Translator.translate(\"SOMETHING_WRONG\", this.props.lang) }));\n\t};\n\n\tgetContext = () => {\n\t\tif (this.props._parent.length) {\n\t\t\treturn this.context;\n\t\t} else {\n\t\t\treturn this.contextProviderRef.state;\n\t\t}\n\t};\n\n\tactionHandler = (action, conversation) => {\n\t\tswitch (action) {\n\t\t\tcase enums.ACTIONS[\"CONVERSATION_DELETED\"]:\n\t\t\t\tthis.conversationDeleted(conversation);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"DELETE_CONVERSATION\"]:\n\t\t\t\tthis.deleteConversation(conversation);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tdeleteConversation = conversation => {\n\n\t\tif (!this.state.showConfirmDialog) {\n\t\t\tthis.setState({ showConfirmDialog: true, conversationToBeDeleted: conversation });\n\t\t}\n\t};\n\n\tonDeleteConfirm = e => {\n\n\t\tconst optionSelected = e.target.value;\n\n\t\tthis.setState({ showConfirmDialog: false });\n\t\tif (optionSelected === \"yes\") {\n\n\t\t\tconst conversation = this.state.conversationToBeDeleted;\n\t\t\tconst conversationWith = conversation.conversationType === CometChat.RECEIVER_TYPE.GROUP ? conversation?.conversationWith?.guid : conversation?.conversationWith?.uid;\n\t\t\tCometChat.deleteConversation(conversationWith, conversation.conversationType)\n\t\t\t\t.then(deletedConversation => {\n\t\t\t\t\tthis.conversationDeleted(conversation);\n\t\t\t\t})\n\t\t\t\t.catch(error => this.toastRef.setError(\"SOMETHING_WRONG\"));\n\n\t\t} else {\n\n\t\t\tthis.setState({ showConfirmDialog: false, conversationToBeDeleted: null });\n\t\t}\n\t};\n\n\tconversationDeleted = conversation => {\n\n\t\tconst conversationList = [...this.state.conversationlist];\n\t\tconst conversationKey = conversationList.findIndex(c => c.conversationId === conversation.conversationId);\n\n\t\tif (conversationKey > -1) {\n\t\t\tif (this.selectedConversation && this.selectedConversation.conversationId === conversation.conversationId) {\n\t\t\t\tthis.selectedConversation = null;\n\t\t\t\tthis.getContext().setTypeAndItem(\"\", {});\n\t\t\t}\n\n\t\t\tconversationList.splice(conversationKey, 1);\n\t\t\tthis.setState({ conversationlist: conversationList, conversationToBeDeleted: null });\n\t\t}\n\t};\n\n\trender() {\n\n\t\tconst conversationList = this.state.conversationlist.map((conversation, key) => {\n\t\t\tif (this.getContext() && Object.keys(this.getContext().item).length && this.getContext().type.trim().length) {\n\t\t\t\tif (this.getContext().type === CometChat.ACTION_TYPE.TYPE_USER && this.getContext().item.uid === conversation.conversationWith.uid) {\n\t\t\t\t\tthis.selectedConversation = conversation;\n\t\t\t\t} else if (this.getContext().type === CometChat.ACTION_TYPE.TYPE_GROUP && this.getContext().item.guid === conversation.conversationWith.guid) {\n\t\t\t\t\tthis.selectedConversation = conversation;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn ;\n\t\t});\n\n\t\tlet messageContainer = null;\n\t\tif (this.state.decoratorMessage.length !== 0) {\n\t\t\tmessageContainer = (\n\t\t\t\t
\n\t\t\t\t\t

\n\t\t\t\t\t\t{this.state.decoratorMessage}\n\t\t\t\t\t

\n\t\t\t\t
\n\t\t\t);\n\t\t}\n\n\t\tlet closeBtn =
;\n\t\tif (this.getContext() && Object.keys(this.getContext().item).length === 0) {\n\t\t\tcloseBtn = null;\n\t\t}\n\n\t\tlet showConfirmDialog = null;\n\t\tif (this.state.showConfirmDialog) {\n\t\t\tshowConfirmDialog = (\n\t\t\t\t\n\t\t\t);\n\t\t}\n\n\t\tconst chatList = (\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{closeBtn}\n\t\t\t\t\t

\n\t\t\t\t\t\t{Translator.translate(\"CHATS\", this.props.lang)}\n\t\t\t\t\t

\n\t\t\t\t
\n\t\t\t\t{messageContainer}\n\t\t\t\t
(this.chatListRef = el)}>\n\t\t\t\t\t{conversationList}\n\t\t\t\t
\n\t\t\t\t{showConfirmDialog}\n\t\t\t\t (this.toastRef = el)} lang={this.props.lang} />\n\t\t\t
\n\t\t);\n\n\t\tlet chatListWrapper = chatList;\n\t\t//if used as a standalone component, add errorboundary and context provider\n\t\tif (this.props._parent === \"\") {\n\t\t\tchatListWrapper = (this.contextProviderRef = el)}>{chatList};\n\t\t}\n\n\t\treturn chatListWrapper;\n\t}\n}\n\n// Specifies the default values for props:\nCometChatConversationList.defaultProps = {\n\tlang: Translator.getDefaultLanguage(),\n\ttheme: theme,\n\tonItemClick: () => { },\n\t_parent: \"\"\n};\n\nCometChatConversationList.propTypes = {\n\tlang: PropTypes.string,\n\ttheme: PropTypes.object,\n\tonItemClick: PropTypes.func,\n\t_parent: PropTypes.string\n}\n\nexport { CometChatConversationList };\n","export const conversationActionStyle = context => {\n\treturn {\n\t\tdisplay: \"flex\",\n\t\tlistStyleType: \"none\",\n\t\tpadding: \"8px\",\n\t\tmargin: \"0\",\n\t\twidth: \"72px\",\n\t\tbackgroundColor: `${context.theme.backgroundColor.primary}`,\n\t\tborderRadius: \"4px\",\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"flex-end\",\n\t\tposition: \"absolute\",\n\t\tright: \"16px\",\n\t\theight: \"100%\",\n\t};\n};\n\nexport const groupButtonStyle = (actionInProgress, progressIcon, actionIcon) => {\n\n\tconst backgroundImage = actionInProgress ? progressIcon : actionIcon;\n\n\treturn {\n\t\toutline: \"0\",\n\t\tborder: \"0\",\n\t\theight: \"24px\",\n\t\twidth: \"24px\",\n\t\tborderRadius: \"4px\",\n\t\talignItems: \"center\",\n\t\tdisplay: \"inline-flex\",\n\t\tjustifyContent: \"center\",\n\t\tposition: \"relative\",\n\t\tbackground: `url(${backgroundImage}) center center no-repeat`,\n\t};\n};","export default __webpack_public_path__ + \"static/media/progress.446449d0.svg\";","export default __webpack_public_path__ + \"static/media/delete.9436ff08.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport {jsx} from \"@emotion/core\";\n\nimport {CometChatContext} from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {conversationActionStyle, groupButtonStyle} from \"./style.js\";\n\nimport loadingIcon from \"./resources/progress.svg\";\nimport deleteIcon from \"./resources/delete.svg\";\n\nclass CometChatConversationListActions extends React.PureComponent {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis._isMounted = false;\n\t\tthis.state = {\n\t\t\tdeleteInProgress: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tthis._isMounted = true;\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis._isMounted = false;\n\t}\n\n\ttoggleTooltip = (event, flag) => {\n\t\tconst elem = event.target;\n\n\t\tif (flag) {\n\t\t\telem.setAttribute(\"title\", elem.dataset.title);\n\t\t} else {\n\t\t\telem.removeAttribute(\"title\");\n\t\t}\n\t};\n\n\tdeleteConversation = event => {\n\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"DELETE_CONVERSATION\"], this.props.conversation);\n\t\tevent.stopPropagation();\n\t};\n\n\trender() {\n\t\tconst deleteConversation = (\n\t\t\t
  • \n\t\t\t\t this.toggleTooltip(event, true)}\n\t\t\t\tonMouseLeave={event => this.toggleTooltip(event, false)}\n\t\t\t\tonClick={this.deleteConversation} />\n\t\t\t
  • \n\t\t);\n\n\t\treturn (\n\t\t\t
      \n\t\t\t\t{deleteConversation}\n\t\t\t
    \n\t\t);\n\t}\n}\n\nexport {CometChatConversationListActions};","export const listItem = (props) => {\n\n const selectedState = (props.selectedConversation && props.selectedConversation.conversationId === props.conversation.conversationId) ? {\n backgroundColor: `${props.theme.backgroundColor.primary}`\n } : {};\n\n return {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"left\",\n alignItems: \"center\",\n cursor: \"pointer\",\n width: \"100%\",\n padding: \"8px 16px\",\n position: \"relative\",\n ...selectedState,\n '&:hover': {\n backgroundColor: `${props.theme.backgroundColor.primary}`\n },\n }\n}\n\nexport const itemThumbnailStyle = () => {\n\n return {\n display: \"inline-block\",\n width: \"36px\",\n height: \"36px\",\n flexShrink: \"0\",\n }\n}\n\nexport const itemDetailStyle = () => {\n\n return {\n width: \"calc(100% - 45px)\",\n flexGrow: \"1\",\n paddingLeft: \"16px\",\n \"&[dir=rtl]\": {\n paddingRight: \"16px\",\n paddingLeft: \"0\",\n }\n }\n}\n\nexport const itemRowStyle = () => {\n\n return {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"baseline\",\n }\n}\n\nexport const itemNameStyle = () => {\n\n return {\n fontSize: \"15px\",\n fontWeight: \"600\",\n display: \"block\",\n width: \"calc(100% - 70px)\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n }\n}\n\nexport const itemLastMsgStyle = (props) => {\n\n return {\n margin: \"0\",\n fontSize: \"13px\",\n width: \"calc(100% - 50px)\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n lineHeight: \"20px\",\n color: `${props.theme.color.helpText}`,\n }\n}\n\nexport const itemLastMsgTimeStyle = (props) => {\n\n return {\n fontSize: \"11px\",\n width: \"70px\",\n textAlign: \"right\",\n color: `${props.theme.color.helpText}`,\n }\n}","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport {CometChatAvatar, CometChatBadgeCount, CometChatUserPresence } from \"../../Shared\";\nimport {CometChatConversationListActions} from \"../CometChatConversationListActions\";\n\nimport * as enums from \"../../../util/enums.js\";\nimport { checkMessageForExtensionsData, getTimeStampForLastMessage } from \"../../../util/common\";\nimport { CometChatContext } from \"../../../util/CometChatContext\"\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n listItem,\n itemThumbnailStyle,\n itemDetailStyle,\n itemRowStyle,\n itemNameStyle,\n itemLastMsgStyle,\n itemLastMsgTimeStyle\n} from \"./style\";\n\nclass CometChatConversationListItem extends React.PureComponent {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tlastMessage: \"\",\n\t\t\tlastMessageTimestamp: \"\",\n\t\t\tenableUnreadCount: false,\n\t\t\tisHovering: false,\n\t\t\tenableHideDeletedMessages: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tconst message = this.getLastMessage();\n\t\tconst timestamp = this.getLastMessageTimestamp();\n\t\tthis.enableUnreadCount();\n\t\tthis.enableHideDeletedMessages();\n\n\t\tthis.setState({ lastMessage: message, lastMessageTimestamp: timestamp });\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\t\tconst previousItem = JSON.stringify(prevProps.conversation);\n\t\tconst currentItem = JSON.stringify(this.props.conversation);\n\n\t\tif (previousItem !== currentItem) {\n\t\t\tconst message = this.getLastMessage();\n\t\t\tconst timestamp = this.getLastMessageTimestamp();\n\n\t\t\tthis.setState({ lastMessage: message, lastMessageTimestamp: timestamp });\n\t\t}\n\n\t\tthis.enableUnreadCount();\n\t\tthis.enableHideDeletedMessages();\n\t}\n\n\tgetLastMessage = () => {\n\t\tif (this.props.hasOwnProperty(\"conversation\") === false) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.props.conversation.hasOwnProperty(\"lastMessage\") === false) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet message = null;\n\t\tconst lastMessage = this.props.conversation.lastMessage;\n\n\t\tif (lastMessage.hasOwnProperty(\"deletedAt\")) {\n\t\t\tif (this.state.enableHideDeletedMessages) {\n\t\t\t\tmessage = \"\";\n\t\t\t} else {\n\t\t\t\tmessage = this.props.loggedInUser.uid === lastMessage.sender.uid ? `${Translator.translate(\"YOU_DELETED_THIS_MESSAGE\", this.context.language)}` : `${Translator.translate(\"THIS_MESSAGE_DELETED\", this.context.language)}`;\n\t\t\t}\n\t\t} else {\n\t\t\tswitch (lastMessage.category) {\n\t\t\t\tcase CometChat.CATEGORY_MESSAGE:\n\t\t\t\t\tmessage = this.getMessage(lastMessage);\n\t\t\t\t\tbreak;\n\t\t\t\tcase CometChat.CATEGORY_CALL:\n\t\t\t\t\tmessage = this.getCallMessage(lastMessage);\n\t\t\t\t\tbreak;\n\t\t\t\tcase CometChat.CATEGORY_ACTION:\n\t\t\t\t\tmessage = this.getActionMessage(lastMessage);\n\t\t\t\t\tbreak;\n\t\t\t\tcase CometChat.CATEGORY_CUSTOM:\n\t\t\t\t\tmessage = this.getCustomMessage(lastMessage);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn message;\n\t};\n\n\tgetLastMessageTimestamp = () => {\n\t\tif (this.props.hasOwnProperty(\"conversation\") === false) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.props.conversation.hasOwnProperty(\"lastMessage\") === false) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.props.conversation.lastMessage.hasOwnProperty(\"sentAt\") === false && this.props.conversation.lastMessage.hasOwnProperty(\"_composedAt\") === false) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet timestamp = this.props.conversation.lastMessage._composedAt || this.props.conversation.lastMessage.sentAt;\n\t\ttimestamp = getTimeStampForLastMessage(timestamp, this.context.language);\n\n\t\treturn timestamp;\n\t};\n\n\tgetCustomMessage = lastMessage => {\n\t\tlet message = null;\n\t\tconst sender = this.props.loggedInUser.uid !== lastMessage.sender.uid ? `${lastMessage.sender.name}: ` : ``;\n\n\t\tswitch (lastMessage.type) {\n\t\t\tcase enums.CUSTOM_TYPE_POLL:\n\t\t\t\t{\n\t\t\t\t\tconst pollMessage = Translator.translate(\"CUSTOM_MESSAGE_POLL\", this.context.language);\n\t\t\t\t\tmessage = lastMessage.receiverType === CometChat.RECEIVER_TYPE.GROUP ? `${sender} ${pollMessage}` : `${pollMessage}`;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase enums.CUSTOM_TYPE_STICKER:\n\t\t\t\t{\n\t\t\t\t\tconst stickerMessage = Translator.translate(\"CUSTOM_MESSAGE_STICKER\", this.context.language);\n\t\t\t\t\tmessage = lastMessage.receiverType === CometChat.RECEIVER_TYPE.GROUP ? `${sender} ${stickerMessage}` : `${stickerMessage}`;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase enums.CUSTOM_TYPE_DOCUMENT:\n\t\t\t\t{\n\t\t\t\t\tconst docMessage = Translator.translate(\"CUSTOM_MESSAGE_DOCUMENT\", this.context.language);\n\t\t\t\t\tmessage = lastMessage.receiverType === CometChat.RECEIVER_TYPE.GROUP ? `${sender} ${docMessage}` : `${docMessage}`;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase enums.CUSTOM_TYPE_WHITEBOARD:\n\t\t\t\t{\n\t\t\t\t\tconst whiteboardMessage = Translator.translate(\"CUSTOM_MESSAGE_WHITEBOARD\", this.context.language);\n\t\t\t\t\tmessage = lastMessage.receiverType === CometChat.RECEIVER_TYPE.GROUP ? `${sender} ${whiteboardMessage}` : `${whiteboardMessage}`;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase enums.CUSTOM_TYPE_MEETING:\n\t\t\t\t{\n\t\t\t\t\tconst meetingMessage = Translator.translate(\"VIDEO_CALL\", this.context.language);\n\t\t\t\t\tmessage = `${sender} ${meetingMessage}`;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t\treturn message;\n\t};\n\n\tgetTextMessage = message => {\n\t\tlet messageText = message.text;\n\n\t\t//xss extensions data\n\t\tconst xssData = checkMessageForExtensionsData(message, \"xss-filter\");\n\t\tif (xssData && xssData.hasOwnProperty(\"sanitized_text\")) {\n\t\t\tmessageText = xssData.sanitized_text;\n\t\t}\n\n\t\t//datamasking extensions data\n\t\tconst maskedData = checkMessageForExtensionsData(message, \"data-masking\");\n\t\tif (maskedData && maskedData.hasOwnProperty(\"data\") && maskedData.data.hasOwnProperty(\"sensitive_data\") && maskedData.data.hasOwnProperty(\"message_masked\") && maskedData.data.sensitive_data === \"yes\") {\n\t\t\tmessageText = maskedData.data.message_masked;\n\t\t}\n\n\t\t//profanity extensions data\n\t\tconst profaneData = checkMessageForExtensionsData(message, \"profanity-filter\");\n\t\tif (profaneData && profaneData.hasOwnProperty(\"profanity\") && profaneData.hasOwnProperty(\"message_clean\") && profaneData.profanity === \"yes\") {\n\t\t\tmessageText = profaneData.message_clean;\n\t\t}\n\n\t\treturn messageText;\n\t};\n\n\tgetMessage = lastMessage => {\n\t\tlet message = null;\n\t\tconst sender = this.props?.loggedInUser?.uid !== lastMessage?.sender?.uid ? `${lastMessage?.sender?.name}: ` : ``;\n\n\t\tswitch (lastMessage.type) {\n\t\t\tcase CometChat.MESSAGE_TYPE.TEXT:\n\t\t\t\t{\n\t\t\t\t\tconst textMessage = this.getTextMessage(lastMessage);\n\t\t\t\t\tmessage = lastMessage.receiverType === CometChat.RECEIVER_TYPE.GROUP ? `${sender} ${textMessage}` : `${textMessage}`;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase CometChat.MESSAGE_TYPE.MEDIA:\n\t\t\t\t{\n\t\t\t\t\tconst mediaMessage = Translator.translate(\"MEDIA_MESSAGE\", this.context.language);\n\t\t\t\t\tmessage = lastMessage.receiverType === CometChat.RECEIVER_TYPE.GROUP ? `${sender} ${mediaMessage}` : `${mediaMessage}`;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase CometChat.MESSAGE_TYPE.IMAGE:\n\t\t\t\t{\n\t\t\t\t\tconst imageMessage = Translator.translate(\"MESSAGE_IMAGE\", this.context.language);\n\t\t\t\t\tmessage = lastMessage.receiverType === CometChat.RECEIVER_TYPE.GROUP ? `${sender} ${imageMessage}` : `${imageMessage}`;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase CometChat.MESSAGE_TYPE.FILE:\n\t\t\t\t{\n\t\t\t\t\tconst fileMessage = Translator.translate(\"MESSAGE_FILE\", this.context.language);\n\t\t\t\t\tmessage = lastMessage.receiverType === CometChat.RECEIVER_TYPE.GROUP ? `${sender} ${fileMessage}` : `${fileMessage}`;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase CometChat.MESSAGE_TYPE.VIDEO:\n\t\t\t\t{\n\t\t\t\t\tconst videoMessage = Translator.translate(\"MESSAGE_VIDEO\", this.context.language);\n\t\t\t\t\tmessage = lastMessage.receiverType === CometChat.RECEIVER_TYPE.GROUP ? `${sender} ${videoMessage}` : `${videoMessage}`;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase CometChat.MESSAGE_TYPE.AUDIO:\n\t\t\t\t{\n\t\t\t\t\tconst audioMessage = Translator.translate(\"MESSAGE_AUDIO\", this.context.language);\n\t\t\t\t\tmessage = lastMessage.receiverType === CometChat.RECEIVER_TYPE.GROUP ? `${sender} ${audioMessage}` : `${audioMessage}`;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase CometChat.MESSAGE_TYPE.CUSTOM:\n\t\t\t\t{\n\t\t\t\t\tconst customMessage = Translator.translate(\"CUSTOM_MESSAGE\", this.context.language);\n\t\t\t\t\tmessage = lastMessage.receiverType === CometChat.RECEIVER_TYPE.GROUP ? `${sender} ${customMessage}` : `${customMessage}`;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn message;\n\t};\n\n\tgetCallMessage = lastMessage => {\n\t\tlet message = null;\n\t\tconst sender = this.props.loggedInUser.uid !== lastMessage.sender.uid ? `${lastMessage.sender.name}: ` : ``;\n\n\t\tswitch (lastMessage.type) {\n\t\t\tcase CometChat.MESSAGE_TYPE.VIDEO:\n\t\t\t\t{\n\t\t\t\t\tconst videoMessage = Translator.translate(\"VIDEO_CALL\", this.context.language);\n\t\t\t\t\tmessage = lastMessage.receiverType === CometChat.RECEIVER_TYPE.GROUP ? `${sender} ${videoMessage}` : `${videoMessage}`;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase CometChat.MESSAGE_TYPE.AUDIO:\n\t\t\t\t{\n\t\t\t\t\tconst audioMessage = Translator.translate(\"AUDIO_CALL\", this.context.language);\n\t\t\t\t\tmessage = lastMessage.receiverType === CometChat.RECEIVER_TYPE.GROUP ? `${sender} ${audioMessage}` : `${audioMessage}`;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn message;\n\t};\n\n\tgetActionMessage = message => {\n\t\tlet actionMessage = null;\n\n\t\tif (message.hasOwnProperty(\"actionBy\") === false || message.hasOwnProperty(\"actionOn\") === false) {\n\t\t\treturn actionMessage;\n\t\t}\n\n\t\tif (message.action !== CometChat.ACTION_TYPE.MEMBER_JOINED && message.action !== CometChat.ACTION_TYPE.MEMBER_LEFT && (message.actionBy.hasOwnProperty(\"name\") === false || message.actionOn.hasOwnProperty(\"name\") === false)) {\n\t\t\treturn actionMessage;\n\t\t}\n\n\t\tif (message.action === CometChat.ACTION_TYPE.MEMBER_SCOPE_CHANGED) {\n\t\t\tif (message.hasOwnProperty(\"data\") && message.data.hasOwnProperty(\"extras\")) {\n\t\t\t\tif (message.data.extras.hasOwnProperty(\"scope\")) {\n\t\t\t\t\tif (message.data.extras.scope.hasOwnProperty(\"new\") === false) {\n\t\t\t\t\t\treturn actionMessage;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treturn actionMessage;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treturn actionMessage;\n\t\t\t}\n\t\t}\n\n\t\tif (message.action === CometChat.ACTION_TYPE.MEMBER_SCOPE_CHANGED && message.data.extras.hasOwnProperty(\"scope\") === false) {\n\t\t\treturn actionMessage;\n\t\t}\n\n\t\tif (message.action === CometChat.ACTION_TYPE.MEMBER_SCOPE_CHANGED && message.data.extras.scope.hasOwnProperty(\"new\") === false) {\n\t\t\treturn actionMessage;\n\t\t}\n\n\t\tconst byEntity = message.actionBy;\n\t\tconst onEntity = message.actionOn;\n\n\t\tconst byString = byEntity.name;\n\t\tconst forString = message.action !== CometChat.ACTION_TYPE.MEMBER_JOINED && message.action !== CometChat.ACTION_TYPE.MEMBER_LEFT ? onEntity.name : \"\";\n\n\t\tswitch (message.action) {\n\t\t\tcase CometChat.ACTION_TYPE.MEMBER_ADDED:\n\t\t\t\tactionMessage = `${byString} ${Translator.translate(\"ADDED\", this.context.language)} ${forString}`;\n\t\t\t\tbreak;\n\t\t\tcase CometChat.ACTION_TYPE.MEMBER_JOINED:\n\t\t\t\tactionMessage = `${byString} ${Translator.translate(\"JOINED\", this.context.language)}`;\n\t\t\t\tbreak;\n\t\t\tcase CometChat.ACTION_TYPE.MEMBER_LEFT:\n\t\t\t\tactionMessage = `${byString} ${Translator.translate(\"LEFT\", this.context.language)}`;\n\t\t\t\tbreak;\n\t\t\tcase CometChat.ACTION_TYPE.MEMBER_KICKED:\n\t\t\t\tactionMessage = `${byString} ${Translator.translate(\"KICKED\", this.context.language)} ${forString}`;\n\t\t\t\tbreak;\n\t\t\tcase CometChat.ACTION_TYPE.MEMBER_BANNED:\n\t\t\t\tactionMessage = `${byString} ${Translator.translate(\"BANNED\", this.context.language)} ${forString}`;\n\t\t\t\tbreak;\n\t\t\tcase CometChat.ACTION_TYPE.MEMBER_UNBANNED:\n\t\t\t\tactionMessage = `${byString} ${Translator.translate(\"UNBANNED\", this.context.language)} ${forString}`;\n\t\t\t\tbreak;\n\t\t\tcase CometChat.ACTION_TYPE.MEMBER_SCOPE_CHANGED: {\n\t\t\t\tconst newScope = message[\"data\"][\"extras\"][\"scope\"][\"new\"];\n\t\t\t\tactionMessage = `${byString} ${Translator.translate(\"MADE\", this.context.language)} ${forString} ${Translator.translate(newScope, this.context.language)}`;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn actionMessage;\n\t};\n\n\ttoggleTooltip = (event, flag) => {\n\t\tconst elem = event.target;\n\n\t\tconst scrollWidth = elem.scrollWidth;\n\t\tconst clientWidth = elem.clientWidth;\n\n\t\tif (scrollWidth <= clientWidth) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (flag) {\n\t\t\telem.setAttribute(\"title\", elem.textContent);\n\t\t} else {\n\t\t\telem.removeAttribute(\"title\");\n\t\t}\n\t};\n\n\tenableUnreadCount = () => {\n\t\tthis.context.FeatureRestriction.isUnreadCountEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableUnreadCount) {\n\t\t\t\t\tthis.setState({ enableUnreadCount: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableUnreadCount !== false) {\n\t\t\t\t\tthis.setState({ enableUnreadCount: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableHideDeletedMessages = () => {\n\t\tthis.context.FeatureRestriction.isHideDeletedMessagesEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enableHideDeletedMessages) {\n\t\t\t\t\tthis.setState({ enableHideDeletedMessages: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableHideDeletedMessages !== false) {\n\t\t\t\t\tthis.setState({ enableHideDeletedMessages: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\thandleMouseHover = toggleFlag => {\n\t\tif (toggleFlag && !this.state.isHovering) {\n\t\t\tthis.setState({ isHovering: true });\n\t\t} else if (!toggleFlag && this.state.isHovering) {\n\t\t\tthis.setState({ isHovering: false });\n\t\t}\n\t};\n\n\trender() {\n\t\tlet lastMessageTimeStamp = null;\n\t\tif (this.state.lastMessage) {\n\t\t\tlastMessageTimeStamp = (\n\t\t\t\t\n\t\t\t\t\t{this.state.lastMessageTimestamp}\n\t\t\t\t\n\t\t\t);\n\t\t}\n\n\t\tlet presence;\n\t\tif (this.props.conversation.conversationType === CometChat.RECEIVER_TYPE.USER) {\n\t\t\tconst status = this.props.conversation.conversationWith.status;\n\t\t\tpresence = ;\n\t\t}\n\n\t\tlet avatar = null;\n\t\tif (this.props.conversation.conversationType === CometChat.RECEIVER_TYPE.USER) {\n\t\t\tavatar = ;\n\t\t} else if (this.props.conversation.conversationType === CometChat.RECEIVER_TYPE.GROUP) {\n\t\t\tavatar = ;\n\t\t}\n\n\t\tlet unreadCount = null;\n\t\tif (this.state.enableUnreadCount) {\n\t\t\tunreadCount = ;\n\t\t}\n\n\t\tlet toolTipView = null;\n\t\tif (this.state.isHovering) {\n\t\t\ttoolTipView = ;\n\t\t}\n\n\t\treturn (\n\t\t\t
    this.handleMouseHover(true)} onMouseLeave={() => this.handleMouseHover(false)} onClick={() => this.props.handleClick(this.props.conversation)}>\n\t\t\t\t
    \n\t\t\t\t\t{avatar}\n\t\t\t\t\t{presence}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    this.toggleTooltip(event, true)} onMouseLeave={event => this.toggleTooltip(event, false)}>\n\t\t\t\t\t\t\t{this.props.conversation.conversationWith.name}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{lastMessageTimeStamp}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    this.toggleTooltip(event, true)} onMouseLeave={event => this.toggleTooltip(event, false)}>\n\t\t\t\t\t\t\t{this.state.lastMessage}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{unreadCount}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t{toolTipView}\n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatConversationListItem.defaultProps = {\n\ttheme: theme,\n\tloggedInUser: null,\n\tconversation: {\n\t\tconversationWith: {}\n\t}\n};\n\nCometChatConversationListItem.propTypes = {\n\ttheme: PropTypes.object,\n\tloggedInUser: PropTypes.shape(CometChat.User),\n\tconversation: PropTypes.shape(CometChat.Conversation)\n}\n\nexport { CometChatConversationListItem };\n","export const previewWrapperStyle = (context, keyframes) => {\n\n\tconst slideAnimation = keyframes`\n from {\n bottom: -55px\n }\n to {\n bottom: 0px\n }`;\n\n\treturn {\n\t\tpadding: \"8px 8px 16px 8px\",\n marginBottom: \"-8px\",\n\t\tbackgroundColor: `${context.theme.backgroundColor.white}`,\n\t\tborder: `1px solid ${context.theme.borderColor.primary}`,\n\t\tfontSize: \"13px\",\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"row-reverse\",\n\t\tjustifyContent: \"space-between\",\n\t\tanimation: `${slideAnimation} 0.5s ease-out`,\n\t\tposition: \"relative\",\n\t};\n};\n\nexport const previewHeadingStyle = () => {\n\n return {\n alignSelf: \"flex-start\",\n display: \"flex\",\n alignItems: \"baseline\",\n justifyContent: \"space-between\"\n }\n}\n\nexport const previewCloseStyle = (img, context) => {\n\n return {\n width: \"24px\",\n height: \"24px\",\n borderRadius: \"50%\",\n mask: `url(${img}) center center no-repeat`,\n\t\tbackgroundColor: `${context.theme.primaryColor}`,\n cursor: \"pointer\",\n }\n}\n\nexport const previewOptionsWrapperStyle = () => {\n\n return {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-around\",\n width: \"100%\",\n }\n}\n\nexport const previewOptionStyle = context => {\n\n\treturn {\n\t\tpadding: \"8px\",\n\t\tmargin: \"0 8px\",\n\t\tbackgroundColor: `${context.theme.backgroundColor.grey}`,\n\t\tborder: `1px solid ${context.theme.borderColor.primary}`,\n\t\tborderRadius: \"10px\",\n\t\tcursor: \"pointer\",\n\t\theight: \"100%\",\n\t\ttextAlign: \"center\",\n\t};\n};","export default __webpack_public_path__ + \"static/media/close.0b0b6f95.svg\";","import { useContext } from 'react';\n\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx, keyframes } from '@emotion/core';\nimport PropTypes from 'prop-types';\n\nimport { CometChatContext } from \"../../../../util/CometChatContext\";\n\nimport { theme } from \"../../../../resources/theme\";\n\nimport {\n previewWrapperStyle,\n previewHeadingStyle,\n previewCloseStyle,\n previewOptionsWrapperStyle,\n previewOptionStyle,\n} from \"./style\";\n\nimport closeIcon from \"./resources/close.svg\";\n\nconst CometChatSmartReplyPreview = (props) => {\n\n const context = useContext(CometChatContext);\n\n const options = props.options.map((option, key) => {\n\n return (
    props.clicked(option)}>{option}
    )\n })\n\n return (\n
    \n
    \n
    \n
    \n
    {options}
    \n
    \n )\n}\n\n// Specifies the default values for props:\nCometChatSmartReplyPreview.defaultProps = {\n theme: theme\n};\n\nCometChatSmartReplyPreview.propTypes = {\n theme: PropTypes.object\n}\n\nexport { CometChatSmartReplyPreview };","export const stickerWrapperStyle = (context, keyframes) => {\n\n\tconst slideAnimation = keyframes`\n from {\n bottom: -55px\n }\n to {\n bottom: 0px\n }`;\n\n\treturn {\n\t\tbackgroundColor: `${context.theme.backgroundColor.grey}`,\n\t\tborder: `1px solid ${context.theme.borderColor.primary}`,\n\t\tborderBottom: \"none\",\n\t\tanimation: `${slideAnimation} 0.5s ease-out`,\n\t\tborderRadius: \"10px 10px 0 0\",\n\t\theight: \"215px\",\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"column\",\n\t\tjustifyContent: \"center\",\n\t};\n};\n\nexport const stickerSectionListStyle = context => {\n\n\treturn {\n\t\tborderTop: `1px solid ${context.theme.borderColor.primary}`,\n\t\tbackgroundColor: `${context.theme.backgroundColor.silver}`,\n\t\tdisplay: \"flex\",\n\t\tjustifyContent: \"space-between\",\n\t\talignItems: \"center\",\n\t\ttextTransform: \"uppercase\",\n\t\toverflowX: \"auto\",\n\t\toverflowY: \"hidden\",\n\t\tpadding: \"10px\",\n\t\t\"::-webkit-scrollbar\": {\n\t\t\tbackground: `${context.theme.backgroundColor.primary}`,\n\t\t},\n\t\t\"::-webkit-scrollbar-thumb\": {\n\t\t\tbackground: `${context.theme.backgroundColor.silver}`,\n\t\t},\n\t};\n};\n\nexport const sectionListItemStyle = () => {\n\n return {\n\n height: \"35px\",\n width: \"35px\",\n cursor: \"pointer\",\n flexShrink: \"0\",\n \":not(:first-of-type)\": {\n marginLeft: \"16px\",\n },\n }\n}\n\nexport const stickerListStyle = () => {\n\n return {\n height: \"calc(100% - 50px)\",\n display: \"flex\",\n overflowX: \"hidden\",\n overflowY: \"auto\",\n flexWrap: \"wrap\",\n justifyContent: \"space-between\",\n alignItems: \"center\"\n }\n}\n\nexport const stickerItemStyle = context => {\n\n\tconst mq = [...context.theme.breakPoints];\n\n\treturn {\n\t\tminWidth: \"50px\",\n\t\tminHeight: \"50px\",\n\t\tmaxWidth: \"70px\",\n\t\tmaxHeight: \"70px\",\n\t\tcursor: \"pointer\",\n\t\tflexShrink: \"0\",\n\t\tmarginRight: \"20px\",\n\t\t[`@media ${mq[1]}, ${mq[2]}, ${mq[3]}`]: {\n\t\t\tmaxWidth: \"70px\",\n\t\t\tmaxHeight: \"70px\",\n\t\t},\n\t};\n};\n\nexport const stickerMsgStyle = () => {\n\n return {\n overflow: \"hidden\",\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n position: \"absolute\",\n top: \"35%\",\n }\n}\n\nexport const stickerMsgTxtStyle = context => {\n\n\treturn {\n\t\tmargin: \"0\",\n\t\theight: \"30px\",\n\t\tcolor: `${context.theme.color.secondary}`,\n\t\tfontSize: \"24px!important\",\n\t\tfontWeight: \"600\",\n\t};\n};\n\nexport const stickerCloseStyle = (img, context) => {\n\t\n\treturn {\n\t\twidth: \"20px\",\n\t\theight: \"20px\",\n\t\tborderRadius: \"50%\",\n\t\talignSelf: \"flex-end\",\n\t\tmask: `url(${img}) center center no-repeat`,\n\t\tbackgroundColor: `${context.theme.primaryColor}`,\n\t\tcursor: \"pointer\",\n\t\tmargin: \"8px 8px 0 0\",\n\t};\n};\n","export default __webpack_public_path__ + \"static/media/close.0b0b6f95.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx, keyframes } from '@emotion/core';\nimport PropTypes from 'prop-types';\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatContext } from \"../../../../util/CometChatContext\";\nimport * as enums from \"../../../../util/enums.js\";\n\nimport { theme } from \"../../../../resources/theme\";\nimport Translator from \"../../../../resources/localization/translator\";\n\nimport { \n stickerWrapperStyle, \n stickerSectionListStyle, \n stickerListStyle,\n sectionListItemStyle,\n stickerItemStyle,\n stickerMsgStyle,\n stickerMsgTxtStyle,\n stickerCloseStyle\n} from \"./style\";\n\nimport closeIcon from \"./resources/close.svg\";\n\nclass CometChatStickerKeyboard extends React.PureComponent {\n\n static contextType = CometChatContext;\n\n constructor(props, context) {\n\n super(props, context);\n\n this.decoratorMessage = Translator.translate(\"LOADING\", context.language);\n\n this.state = {\n stickerlist: [],\n stickerset: {},\n activestickerlist: [],\n activestickerset: null\n }\n }\n\n componentDidMount() {\n this.getStickers();\n }\n\n getStickers = () => {\n\n CometChat.callExtension('stickers', 'GET', 'v1/fetch', null).then(stickers => {\n\n // Stickers received\n let activeStickerSet = null; \n const customStickers = (stickers.hasOwnProperty(\"customStickers\")) ? stickers[\"customStickers\"] : [];\n const defaultStickers = (stickers.hasOwnProperty(\"defaultStickers\")) ? stickers[\"defaultStickers\"] : [];\n\n defaultStickers.sort(function (a, b) {\n return a.stickerSetOrder - b.stickerSetOrder;\n });\n\n customStickers.sort(function (a, b) {\n return a.stickerSetOrder - b.stickerSetOrder;\n });\n\n const stickerList = [...defaultStickers, ...customStickers];\n \n if (stickerList.length === 0) {\n this.decoratorMessage = Translator.translate(\"NO_STICKERS_FOUND\", this.context.language);\n }\n\n const stickerSet = stickerList.reduce((r, sticker, index) => {\n\n const { stickerSetName } = sticker;\n if (index === 0) {\n activeStickerSet = stickerSetName;\n }\n\n r[stickerSetName] = [...r[stickerSetName] || [], { ...sticker}];\n\n return r;\n }, {});\n\n let activeStickerList = [];\n if (Object.keys(stickerSet).length) {\n\n Object.keys(stickerSet).forEach(key => {\n stickerSet[key].sort(function (a, b) {\n return a.stickerOrder - b.stickerOrder;\n });\n });\n\n activeStickerList = stickerSet[activeStickerSet];\n }\n \n this.setState({ \n \"stickerlist\": stickerList, \n \"stickerset\": stickerSet, \n \"activestickerlist\": activeStickerList, \n \"activestickerset\": activeStickerSet \n });\n\n }).catch(error => {\n \n this.decoratorMessage = Translator.translate(\"SOMETHING_WRONG\", this.context.language);\n this.setState({ \"activestickerlist\": [], \"stickerset\": {} });\n });\n }\n\n sendStickerMessage = (stickerItem) => {\n this.props.actionGenerated(enums.ACTIONS[\"SEND_STICKER\"], stickerItem);\n }\n\n onStickerSetClicked = (sectionItem) => {\n\n this.setState({ activestickerlist: [] }, () => {\n\n const stickerSet = { ...this.state.stickerset };\n const activeStickerList = stickerSet[sectionItem];\n this.setState({ \"activestickerset\": sectionItem, \"activestickerlist\": activeStickerList });\n });\n }\n\n closeStickerKeyboard = () => {\n this.props.actionGenerated(enums.ACTIONS[\"CLOSE_STICKER_KEYBOARD\"]);\n }\n\n render() {\n\n let messageContainer = null;\n if (this.state.activestickerlist.length === 0) {\n messageContainer = (\n
    \n

    {this.decoratorMessage}

    \n
    \n );\n }\n\n let stickers = null;\n if (Object.keys(this.state.stickerset).length) {\n\n const sectionItems = Object.keys(this.state.stickerset).map((sectionItem, key) => {\n\n const stickerSetThumbnail = this.state.stickerset[sectionItem][0][\"stickerUrl\"];\n return(
    this.onStickerSetClicked(sectionItem)}>\n {sectionItem}\n
    \n );\n });\n\n let activeStickerList = [];\n if (this.state.activestickerlist.length) {\n\n const stickerList = [...this.state.activestickerlist];\n activeStickerList = stickerList.map((stickerItem, key) => {\n\n return (\n
    this.sendStickerMessage(stickerItem)} className=\"stickers__listitem\">\n {stickerItem.stickerName}\n
    \n );\n });\n }\n\n stickers = (\n \n
    \n
    \n {activeStickerList}\n
    \n
    \n {sectionItems}\n
    \n
    \n );\n }\n\n return (\n
    \n {messageContainer}\n {stickers}\n
    \n );\n }\n}\n\n// Specifies the default values for props:\nCometChatStickerKeyboard.defaultProps = {\n theme: theme\n};\n\nCometChatStickerKeyboard.propTypes = {\n theme: PropTypes.object\n}\n\nexport { CometChatStickerKeyboard };","export const messageReactionsStyle = (props, reactionData, context, loggedInUser) => {\n\n\tconst uid = loggedInUser?.uid;\n\tlet borderStyle = {};\n\tlet hoveredBorderStyle = {};\n\n\tif (reactionData.hasOwnProperty(uid)) {\n\t\tborderStyle = {\n\t\t\tborder: `1px solid ${context.theme.primaryColor}`,\n\t\t};\n\n\t\thoveredBorderStyle = { ...borderStyle };\n\t} else {\n\t\tborderStyle = {\n\t\t\tborder: \"1px solid transparent\",\n\t\t};\n\n\t\thoveredBorderStyle = {\n\t\t\tborder: `1px solid ${context.theme.borderColor.primary}`,\n\t\t};\n\t}\n\n\treturn {\n\t\tfontSize: \"11px\",\n\t\tpadding: \"2px 6px\",\n\t\tdisplay: \"inline-flex\",\n\t\talignItems: \"center\",\n\t\tverticalAlign: \"top\",\n\t\tbackgroundColor: `${context.theme.backgroundColor.secondary}`,\n\t\tborderRadius: \"12px\",\n\t\tmargin: \"4px 4px 0 0\",\n\t\tcursor: \"pointer\",\n\t\t...borderStyle,\n\t\t\".emoji-mart-emoji\": {\n\t\t\tdisplay: \"inline-flex\",\n\t\t\talignItems: \"center\",\n\t\t\tjustifyContent: \"center\",\n\t\t},\n\t\t\"&:hover\": {\n\t\t\t...hoveredBorderStyle,\n\t\t},\n\t};\n};\n\nexport const emojiButtonStyle = (img, context) => {\n\n return {\n outline: \"0\",\n border: \"0\",\n borderRadius: \"4px\",\n alignItems: \"center\",\n display: \"inline-flex\",\n justifyContent: \"center\",\n position: \"relative\",\n \"i\": {\n height: \"24px\",\n width: \"24px\",\n mask: `url(${img}) center center no-repeat`,\n\t\t\tbackgroundColor: `${context.theme.secondaryTextColor}`,\n } \n }\n}\n\nexport const reactionCountStyle = context => {\n\n\treturn {\n\t\tcolor: `${context.theme.color.primary}`,\n\t\tpadding: \"0 1px 0 3px\",\n\t};\n};","export default __webpack_public_path__ + \"static/media/reactions.db072cb2.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { Emoji } from \"emoji-mart\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatContext } from \"../../../../util/CometChatContext\";\nimport * as enums from \"../../../../util/enums.js\";\nimport { checkMessageForExtensionsData } from \"../../../../util/common\";\n\nimport { theme } from \"../../../../resources/theme\";\nimport Translator from \"../../../../resources/localization/translator\";\n\nimport {\n messageReactionsStyle,\n reactionCountStyle,\n emojiButtonStyle,\n} from \"./style\";\n\nimport reactIcon from \"./resources/reactions.svg\";\n\nclass CometChatMessageReactions extends React.Component {\n\tstatic contextType = CometChatContext;\n\tloggedInUser;\n\n\tconstructor(props, context) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tenableMessageReaction: false,\n\t\t};\n\n\t\tthis.context.getLoggedinUser().then(user => {\n\t\t\tthis.loggedInUser = { ...user };\n\t\t});\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.enableMessageReaction();\n\t}\n\n\tenableMessageReaction = () => {\n\t\t/**\n\t\t * If reacting to messages feature is disabled\n\t\t */\n\t\tthis.context.FeatureRestriction.isReactionsEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enableMessageReaction) {\n\t\t\t\t\tthis.setState({ enableMessageReaction: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableMessageReaction !== false) {\n\t\t\t\t\tthis.setState({ enableMessageReaction: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\treactToMessages = emoji => {\n\n\t\tCometChat.callExtension(\"reactions\", \"POST\", \"v1/react\", {\n\t\t\tmsgId: this.props.message.id,\n\t\t\temoji: emoji.colons,\n\t\t}).then(response => {\n\t\t\t// Reaction failed\n\t\t\tif (response.hasOwnProperty(\"success\") === false || (response.hasOwnProperty(\"success\") && response[\"success\"] === false)) {\n\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"ERROR\"], [], \"SOMETHING_WRONG\");\n\t\t\t}\n\t\t})\n\t\t.catch(error => this.props.actionGenerated(enums.ACTIONS[\"ERROR\"], [], \"SOMETHING_WRONG\"));\n\t};\n\n\ttriggerEmojiClick = event => {\n\t\tevent.stopPropagation();\n\t\tevent.currentTarget.querySelector(\".emoji-mart-emoji\").click();\n\t};\n\n\tgetMessageReactions = reaction => {\n\t\t\n\t\tif (reaction === null) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst messageReactions = Object.keys(reaction).map((data, key) => {\n\t\t\tconst reactionData = reaction[data];\n\t\t\tconst reactionName = data.replaceAll(\":\", \"\");\n\t\t\tconst reactionCount = Object.keys(reactionData).length;\n\n\t\t\tif (!reactionCount) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst userList = [];\n\t\t\tlet reactionTitle = \"\";\n\n\t\t\tfor (const user in reactionData) {\n\t\t\t\tuserList.push(reactionData[user][\"name\"]);\n\t\t\t}\n\n\t\t\tif (userList.length) {\n\t\t\t\treactionTitle = userList.join(\", \");\n\t\t\t\tconst str = ` ${Translator.translate(\"REACTED\", this.context.language)}`;\n\t\t\t\treactionTitle = reactionTitle.concat(str);\n\t\t\t}\n\n\t\t\tconst reactionClassName = `reaction reaction__${reactionName}`;\n\t\t\treturn (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{reactionCount}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t});\n\n\t\treturn messageReactions;\n\t};\n\n\taddMessageReaction = () => {\n\t\t//If reacting to messages feature is disabled\n\t\tif (this.state.enableMessageReaction === false) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst addReactionEmoji = (\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t);\n\n\t\treturn addReactionEmoji;\n\t};\n\n\trender() {\n\t\tconst reaction = checkMessageForExtensionsData(this.props.message, \"reactions\");\n\t\tconst messageReactions = this.getMessageReactions(reaction);\n\n\t\tconst addReactionEmoji = this.addMessageReaction();\n\n\t\tif (messageReactions !== null && messageReactions.length && addReactionEmoji !== null) {\n\t\t\tif (this.props.message?.sender?.uid !== this.loggedInUser?.uid) {\n\t\t\t\tmessageReactions.push(addReactionEmoji);\n\t\t\t} else {\n\t\t\t\tmessageReactions.unshift(addReactionEmoji);\n\t\t\t}\n\t\t}\n\n\t\treturn messageReactions;\n\t}\n}\n\n// Specifies the default values for props:\nCometChatMessageReactions.defaultProps = {\n\ttheme: theme,\n\tactionGenerated: () => {},\n};\n\nCometChatMessageReactions.propTypes = {\n\ttheme: PropTypes.object,\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatMessageReactions };\n","export const modalWrapperStyle = context => {\n\n\tconst mq = [...context.theme.breakPoints];\n\n\treturn {\n\t\tminWidth: \"350px\",\n\t\tminHeight: \"450px\",\n\t\twidth: \"50%\",\n\t\theight: \"40%\",\n\t\toverflow: \"hidden\",\n\t\tbackgroundColor: `${context.theme.backgroundColor.white}`,\n\t\tposition: \"fixed\",\n\t\tleft: \"50%\",\n\t\ttop: \"50%\",\n\t\ttransform: \"translate(-50%, -50%)\",\n\t\tzIndex: \"1002\",\n\t\tmargin: \"0 auto\",\n\t\tboxShadow: \"rgba(20, 20, 20, 0.2) 0 16px 32px, rgba(20, 20, 20, 0.04) 0 0 0 1px\",\n\t\tborderRadius: \"12px\",\n\t\tdisplay: \"block\",\n\t\t[`@media ${mq[1]}, ${mq[2]}`]: {\n\t\t\twidth: \"100%\",\n\t\t\theight: \"100%\",\n\t\t},\n\t};\n};\n\nexport const modalCloseStyle = (img, context) => {\n\n return {\n position: \"absolute\",\n width: \"32px\",\n height: \"32px\",\n borderRadius: \"50%\",\n top: \"16px\",\n right: \"16px\",\n mask: `url(${img}) center center no-repeat`,\n\t\tbackgroundColor: `${context.theme.primaryColor}`,\n cursor: \"pointer\",\n }\n}\n\nexport const modalBodyStyle = () => {\n\n return {\n padding: \"24px\",\n height: \"100%\",\n width: \"100%\"\n }\n}\n\nexport const modalErrorStyle = (context) => {\n\n return {\n fontSize: \"12px\",\n\t\tcolor: `${context.theme.color.red}`,\n\t\ttextAlign: \"center\",\n\t\tmargin: \"8px 0\",\n\t\twidth: \"100%\",\n }\n}\n\nexport const modalTableStyle = context => {\n\n\treturn {\n\t\tborderCollapse: \"collapse\",\n\t\tmargin: \"0\",\n\t\tpadding: \"0\",\n\t\twidth: \"100%\",\n\t\theight: \"90%\",\n\t\ttr: {\n\t\t\tborderBottom: `1px solid ${context.theme.borderColor.primary}`,\n\t\t\tdisplay: \"table\",\n\t\t\twidth: \"100%\",\n\t\t\ttableLayout: \"fixed\",\n\t\t},\n\t};\n};\n\nexport const tableCaptionStyle = () => {\n\n return {\n fontSize: \"20px\",\n marginBottom: \"15px\",\n fontWeight: \"bold\",\n textAlign: \"left\",\n }\n}\n\nexport const tableBodyStyle = () => {\n\n return {\n height: \"calc(100% - 40px)\",\n overflowY: \"auto\",\n display: \"block\",\n \"tr\": {\n \"td\": {\n padding: \"8px 16px\",\n fontSize: \"14px\",\n \"input\": {\n width: \"100%\",\n border: \"none\",\n padding: \"8px 16px\",\n fontSize: \"14px\",\n \"&:focus\": {\n outline: \"none\"\n }\n },\n \"label\": {\n padding: \"8px 16px\", \n },\n \":first-of-type\": {\n width: \"120px\"\n }\n }\n }\n }\n}\n\n\nexport const tableFootStyle = (context, state, img) => {\n\n\tlet loadingState = {};\n\tlet textMargin = {};\n\n\tif (state.creatingPoll) {\n\t\tloadingState = {\n\t\t\tdisabled: \"true\",\n\t\t\tpointerEvents: \"none\",\n\t\t\tbackground: `url(${img}) no-repeat right 10px center ${context.theme.primaryColor}`,\n\t\t};\n\n\t\ttextMargin = {\n\t\t\tmarginRight: \"24px\",\n\t\t};\n\t}\n\n\treturn {\n\t\tdisplay: \"inline-block\",\n\t\ttr: {\n\t\t\tborder: \"none\",\n\t\t\ttd: {\n\t\t\t\ttextAlign: \"center\",\n\t\t\t\tbutton: {\n\t\t\t\t\tcursor: \"pointer\",\n\t\t\t\t\tpadding: \"8px 16px\",\n\t\t\t\t\tbackgroundColor: `${context.theme.primaryColor}`,\n\t\t\t\t\tborderRadius: \"5px\",\n\t\t\t\t\tcolor: `${context.theme.color.white}`,\n\t\t\t\t\tfontSize: \"14px\",\n\t\t\t\t\toutline: \"0\",\n\t\t\t\t\tborder: \"0\",\n\t\t\t\t\t...loadingState,\n\t\t\t\t\tspan: {\n\t\t\t\t\t\t...textMargin,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t};\n};\n\nexport const iconWrapperStyle = () => {\n\n return {\n width: \"50px\"\n }\n}\n\nexport const addOptionIconStyle = (img, context) => {\n\n return {\n backgroundSize: \"28px 28px\",\n cursor: \"pointer\",\n display: \"block\",\n height: \"24px\",\n width: \"24px\",\n\t\tmask: `url(${img}) center center no-repeat`,\n\t\tbackgroundColor: `${context.theme.secondaryTextColor}`,\n }\n}","export default __webpack_public_path__ + \"static/media/creating.446449d0.svg\";","export default __webpack_public_path__ + \"static/media/add-circle-filled.a7750fa2.svg\";","export default __webpack_public_path__ + \"static/media/close.0b0b6f95.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatBackdrop } from \"../../../Shared\";\nimport { CometChatCreatePollOptions } from \"../\";\n\nimport { CometChatContext } from \"../../../../util/CometChatContext\";\nimport * as enums from \"../../../../util/enums.js\"; \n\nimport { theme } from \"../../../../resources/theme\";\nimport Translator from \"../../../../resources/localization/translator\";\n\nimport {\n modalWrapperStyle,\n modalCloseStyle,\n modalBodyStyle,\n modalErrorStyle,\n modalTableStyle,\n tableCaptionStyle,\n tableBodyStyle,\n tableFootStyle,\n iconWrapperStyle,\n addOptionIconStyle\n} from \"./style\";\n\nimport creatingIcon from \"./resources/creating.svg\";\nimport addIcon from \"./resources/add-circle-filled.svg\";\nimport clearIcon from \"./resources/close.svg\";\n\nclass CometChatCreatePoll extends React.Component {\n\n loggedInUser = null;\n static contextType = CometChatContext;\n\n constructor(props) {\n\n super(props);\n this.state = {\n errorMessage: \"\",\n options: [],\n creatingPoll: false\n }\n\n this.questionRef = React.createRef();\n this.optionOneRef = React.createRef();\n this.optionTwoRef = React.createRef();\n this.optionRef = React.createRef();\n }\n\n addPollOption = () => {\n\n const options = [...this.state.options];\n options.push({ value: \"\", id: new Date().getTime() });\n this.setState({options: options});\n }\n\n removePollOption = (option) => {\n\n const options = [...this.state.options];\n const optionKey = options.findIndex(opt => opt.id === option.id);\n if (optionKey > -1) {\n\n options.splice(optionKey, 1);\n this.setState({ options: options});\n }\n }\n\n optionChangeHandler = (event, option) => {\n\n const options = [...this.state.options];\n const optionKey = options.findIndex(opt => opt.id === option.id); \n if (optionKey > -1) {\n\n const newOption = { ...option, value: event.target.value}\n options.splice(optionKey, 1, newOption);\n this.setState({ options: options });\n }\n }\n\n createPoll = () => {\n\n const question = this.questionRef.current.value.trim();\n const firstOption = this.optionOneRef.current.value.trim();\n const secondOption = this.optionTwoRef.current.value.trim();\n const optionItems = [firstOption, secondOption];\n\n if (question.length === 0) {\n\n this.setState({ errorMessage: Translator.translate(\"INVALID_POLL_QUESTION\", this.context.language) });\n return false;\n }\n\n if (firstOption.length === 0 || secondOption.length === 0) {\n\n this.setState({ errorMessage: Translator.translate(\"INVALID_POLL_OPTION\", this.context.language) });\n return false;\n }\n\n this.state.options.forEach(function (option) {\n optionItems.push(option.value)\n })\n\n let receiverId;\n let receiverType = this.context.type;\n if (this.context.type === CometChat.RECEIVER_TYPE.USER) {\n receiverId = this.context.item.uid;\n } else if (this.context.type === CometChat.RECEIVER_TYPE.GROUP) {\n receiverId = this.context.item.guid;\n }\n \n this.setState({ creatingPoll: true, errorMessage: \"\" });\n\n CometChat.callExtension('polls', 'POST', 'v2/create', {\n \"question\": question,\n \"options\": optionItems,\n \"receiver\": receiverId,\n \"receiverType\": receiverType\n }).then(response => {\n\n if (response && response.hasOwnProperty(\"success\") && response[\"success\"] === true) {\n\n this.setState({ creatingPoll: false });\n this.props.actionGenerated(enums.ACTIONS[\"POLL_CREATED\"]);\n\n } else {\n this.setState({ errorMessage: Translator.translate(\"SOMETHING_WRONG\", this.context.language) });\n }\n\n }).catch(error => {\n\n this.setState({ creatingPoll: false });\n this.setState({ errorMessage: Translator.translate(\"SOMETHING_WRONG\", this.context.language) });\n });\n }\n\n render() {\n\n const optionList = [...this.state.options];\n const pollOptionView = optionList.map((option, index) => {\n return (\n \n );\n });\n\n const createText = (this.state.creatingPoll) ? Translator.translate(\"CREATING\", this.context.language) : Translator.translate(\"CREATE\", this.context.language);\n return (\n \n \n
    \n \n
    \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {pollOptionView}\n \n \n \n \n \n \n \n \n \n \n \n
    {Translator.translate(\"CREATE_POLL\", this.context.language)}
    {this.state.errorMessage}
    \n \n
    \n \n \n \n
     \n \n
     \n \n \n \n
    \n \n
    \n
    \n
    \n
    \n );\n }\n}\n\n// Specifies the default values for props:\nCometChatCreatePoll.defaultProps = {\n\ttheme: theme,\n};\n\nCometChatCreatePoll.propTypes = {\n\ttheme: PropTypes.object,\n};\n\nexport { CometChatCreatePoll };\n","export const removeOptionIconStyle = (img, context) => {\n\n\treturn {\n\t\tmask: `url(${img}) center center no-repeat`,\n\t\tbackgroundColor: `${context.theme.color.red}`,\n\t\tcursor: \"pointer\",\n\t\tdisplay: \"block\",\n\t\theight: \"24px\",\n\t\twidth: \"24px\",\n\t};\n};\n\nexport const iconWrapperStyle = () => {\n return {\n width: \"50px\"\n }\n}","export default __webpack_public_path__ + \"static/media/remove.b83180e3.svg\";","import { useContext } from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\n\nimport { CometChatContext } from \"../../../../util/CometChatContext\";\n\nimport { iconWrapperStyle } from \"../CometChatCreatePoll/style\";\n\nimport Translator from \"../../../../resources/localization/translator\";\n\nimport { removeOptionIconStyle } from \"./style\";\nimport removeIcon from \"./resources/remove.svg\";\n\nconst CometChatCreatePollOptions = (props) => {\n\n const context = useContext(CometChatContext);\n\n return (\n \n  \n \n props.optionChangeHandler(event, props.option)} />\n \n \n props.removePollOption(props.option)}>\n \n \n );\n}\n\nexport { CometChatCreatePollOptions };","export const messageContainerStyle = () => {\n\n return {\n alignSelf: \"flex-start\",\n marginBottom: \"16px\",\n paddingLeft: \"16px\",\n paddingRight: \"16px\",\n maxWidth: \"305px\",\n clear: \"both\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageWrapperStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-start\",\n display: \"flex\",\n }\n}\n\nexport const messageThumbnailStyle = () => {\n\n return {\n width: \"36px\",\n height: \"36px\",\n margin: \"10px 5px\",\n float: \"left\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageDetailStyle = () => {\n\n return {\n flex: \"1 1\",\n display: \"flex\",\n flexDirection: \"column\",\n }\n}\n\nexport const nameWrapperStyle = (avatar) => {\n\n const paddingValue = (avatar) ? {\n padding: \"3px 5px\",\n } : {};\n\n return {\n alignSelf: \"flex-start\",\n ...paddingValue\n }\n}\n\nexport const nameStyle = context => {\n\n\treturn {\n\t\tfontSize: \"10px\",\n\t\tcolor: `${context.theme.color.helpText}`,\n\t};\n};\n\nexport const messageTxtContainerStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-start\",\n display: \"flex\",\n }\n}\n\nexport const messageTxtWrapperStyle = context => {\n\n\treturn {\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"column\",\n\t\tborderRadius: \"12px\",\n\t\tbackgroundColor: `${context.theme.backgroundColor.secondary}`,\n\t\tpadding: \"16px\",\n\t\talignSelf: \"flex-start\",\n\t\twidth: \"100%\",\n\t};\n};\n\nexport const messageTxtTitleStyle = context => {\n\n\treturn {\n\t\tdisplay: \"flex\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tcolor: `${context.theme.color.primary}`,\n\t};\n};\n\nexport const messageTxtStyle = () => {\n\n return {\n margin: \"0\",\n whiteSpace: \"pre-wrap\",\n wordWrap: \"break-word\",\n textAlign: \"left\",\n width: \"calc(100% - 24px)\",\n fontSize: \"14px\",\n marginLeft: \"8px\"\n }\n}\n\nexport const iconStyle = (img, context) => {\n\n\treturn {\n\t\twidth: \"24px\",\n\t\theight: \"24px\",\n\t\tdisplay: \"inline-block\",\n\t\tmask: `url(${img}) center center no-repeat`,\n\t\tbackgroundColor: `${context.theme.primaryColor}`,\n\t};\n};\n\nexport const messageBtnStyle = context => {\n\n\treturn {\n\t\tlistStyleType: \"none\",\n\t\tpadding: \"0\",\n\t\tmargin: \"0\",\n\t\tli: {\n\t\t\tbackgroundColor: `${context.theme.backgroundColor.white}`,\n\t\t\tborderRadius: \"8px\",\n\t\t\tdisplay: \"flex\",\n\t\t\tjustifyContent: \"center\",\n\t\t\talignItems: \"center\",\n\t\t\twidth: \"100%\",\n\t\t\tcursor: \"pointer\",\n\t\t\tposition: \"relative\",\n\t\t\tmargin: \"16px 0 0 0\",\n\t\t\tpadding: \"8px\",\n\t\t\t\"> p\": {\n\t\t\t\tbackground: \"0 0\",\n\t\t\t\ttextAlign: \"center\",\n\t\t\t\tcolor: `${context.theme.primaryColor}`,\n\t\t\t\twidth: \"100%\",\n\t\t\t\tdisplay: \"inline-block\",\n\t\t\t\tfontSize: \"14px\",\n\t\t\t\tfontWeight: \"600\",\n\t\t\t\tmargin: \"0\",\n\t\t\t},\n\t\t},\n\t};\n};\n\nexport const messageInfoWrapperStyle = () => {\n\n return {\n alignSelf: \"flex-start\",\n padding: \"4px 8px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n height: \"25px\"\n }\n}\n\nexport const messageReactionsWrapperStyle = () => {\n\n return {\n display: \"inline-flex\",\n alignSelf: \"flex-start\",\n width: \"100%\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-start\",\n }\n}","export default __webpack_public_path__ + \"static/media/collaborative-document.3c15f5d4.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatMessageActions, CometChatThreadedMessageReplyCount, CometChatReadReceipt } from \"../../\";\nimport { CometChatMessageReactions } from \"../\";\nimport { CometChatAvatar } from \"../../../Shared\";\n\nimport { CometChatContext } from \"../../../../util/CometChatContext\";\nimport { checkMessageForExtensionsData } from \"../../../../util/common\";\n\nimport { theme } from \"../../../../resources/theme\";\nimport Translator from \"../../../../resources/localization/translator\";\n\nimport {\n messageContainerStyle,\n messageWrapperStyle,\n messageThumbnailStyle,\n messageDetailStyle,\n nameWrapperStyle,\n nameStyle,\n messageTxtContainerStyle,\n messageTxtWrapperStyle,\n messageTxtTitleStyle,\n messageTxtStyle,\n messageBtnStyle,\n messageInfoWrapperStyle,\n messageReactionsWrapperStyle,\n iconStyle\n} from \"./style\";\n\n\nimport documentIcon from \"./resources/collaborative-document.svg\";\n\nclass CometChatReceiverDocumentBubble extends React.Component {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tisHovering: false,\n\t\t};\n\t}\n\n\tshouldComponentUpdate(nextProps, nextState) {\n\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\t\tconst nextMessageStr = JSON.stringify(nextProps.message);\n\n\t\tif (currentMessageStr !== nextMessageStr \n || this.state.isHovering !== nextState.isHovering) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\thandleMouseHover = () => {\n\t\tthis.setState(this.toggleHoverState);\n\t};\n\n\ttoggleHoverState = state => {\n\t\treturn {\n\t\t\tisHovering: !state.isHovering,\n\t\t};\n\t};\n\n\tlaunchCollaborativeDocument = () => {\n\t\tlet documentUrl = null;\n\t\tlet documentData = checkMessageForExtensionsData(this.props.message, \"document\");\n\t\tif (documentData && documentData.hasOwnProperty(\"document_url\") && documentData.document_url.length) {\n\t\t\tdocumentUrl = documentData.document_url;\n\t\t\twindow.open(documentUrl, \"\", \"fullscreen=yes, scrollbars=auto\");\n\t\t}\n\t};\n\n\trender() {\n\t\tlet avatar = null,\n\t\t\tname = null;\n\t\tif (this.props.message.receiverType === CometChat.RECEIVER_TYPE.GROUP) {\n\t\t\tavatar = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\n\t\t\tname = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{this.props.message.sender.name}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tlet messageReactions = null;\n\t\tconst reactionsData = checkMessageForExtensionsData(this.props.message, \"reactions\");\n\t\tif (reactionsData) {\n\t\t\tif (Object.keys(reactionsData).length) {\n\t\t\t\tmessageReactions = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet toolTipView = null;\n\t\tif (this.state.isHovering) {\n\t\t\ttoolTipView = ;\n\t\t}\n\n\t\tconst documentTitle = `${this.props.message.sender.name} ${Translator.translate(\"SHARED_COLLABORATIVE_DOCUMENT\", this.context.language)}`;\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{avatar}\n\t\t\t\t\t
    \n\t\t\t\t\t\t{name}\n\t\t\t\t\t\t{toolTipView}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t\t{documentTitle}\n\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t

      {Translator.translate(\"JOIN\", this.context.language)}

      \n\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t{messageReactions}\n\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatReceiverDocumentBubble.defaultProps = {\n\ttheme: theme,\n\tactionGenerated: () => {},\n};\n\nCometChatReceiverDocumentBubble.propTypes = {\n\ttheme: PropTypes.object,\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatReceiverDocumentBubble };\n","export const messageContainerStyle = () => {\n\n return {\n alignSelf: \"flex-start\",\n marginBottom: \"16px\",\n paddingLeft: \"16px\",\n paddingRight: \"16px\",\n maxWidth: \"65%\",\n clear: \"both\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageWrapperStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-start\",\n display: \"flex\",\n }\n}\n\nexport const messageThumbnailStyle = () => {\n\n return {\n width: \"36px\",\n height: \"36px\",\n margin: \"10px 5px\",\n float: \"left\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageDetailStyle = () => {\n\n return {\n flex: \"1 1\",\n display: \"flex\",\n flexDirection: \"column\",\n }\n}\n\nexport const nameWrapperStyle = (avatar) => {\n\n const paddingValue = (avatar) ? {\n padding: \"3px 5px\",\n } : {};\n\n return {\n alignSelf: \"flex-start\",\n ...paddingValue\n }\n}\n\nexport const nameStyle = context => {\n\n\treturn {\n\t\tfontSize: \"10px\",\n\t\tcolor: `${context.theme.color.helpText}`,\n\t};\n};\n\nexport const messageTxtContainerStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-start\",\n display: \"flex\",\n }\n}\n\nexport const messageTxtWrapperStyle = context => {\n\n\treturn {\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"column\",\n\t\tborderRadius: \"12px\",\n\t\tbackgroundColor: `${context.theme.backgroundColor.secondary}`,\n\t\tpadding: \"8px 16px\",\n\t\talignSelf: \"flex-start\",\n\t\twidth: \"100%\",\n\t};\n};\n\nexport const pollQuestionStyle = () => {\n\n return {\n margin: \"0\",\n whiteSpace: \"pre-wrap\",\n wordWrap: \"break-word\",\n textAlign: \"left\",\n width: \"100%\",\n fontSize: \"14px\",\n }\n}\n\nexport const pollAnswerStyle = context => {\n\n\treturn {\n\t\tlistStyleType: \"none\",\n\t\tpadding: \"0\",\n\t\tmargin: \"0\",\n\t\tli: {\n\t\t\tbackgroundColor: `${context.theme.backgroundColor.white}`,\n\t\t\tmargin: \"10px 0\",\n\t\t\tborderRadius: \"8px\",\n\t\t\tdisplay: \"flex\",\n\t\t\twidth: \"100%\",\n\t\t\tcursor: \"pointer\",\n\t\t\tposition: \"relative\",\n\t\t},\n\t};\n};\n\nexport const pollTotalStyle = () => {\n\n return {\n fontSize: \"13px\",\n margin: \"0\",\n alignSelf: \"flex-end\"\n }\n}\n\nexport const pollPercentStyle = (context, width) => {\n\n const curvedBorders = (width === \"100%\") ? { borderRadius: \"8px\" } : {\n borderRadius: \"8px 0 0 8px\"\n };\n\n return {\n maxWidth: \"100%\",\n width: width,\n ...curvedBorders,\n backgroundColor: `${context.theme.backgroundColor.primary}`,\n minHeight: \"35px\",\n height: \"100%\",\n position: \"absolute\",\n zIndex: \"1\",\n }\n}\n\nexport const answerWrapperStyle = (state, optionData, context) => {\n\n\tlet countPadding = \"0px 16px 0px 0px\";\n let widthProp = \"calc(100% - 40px)\";\n\tif (optionData.hasOwnProperty(\"voters\") && optionData.voters.hasOwnProperty(state?.loggedInUser?.uid)) {\n\t\t//countPadding = \"0px 8px\";\n\t\twidthProp = \"calc(100% - 40px)\";\n\t}\n\n\treturn {\n\t\twidth: \"100%\",\n\t\tcolor: `${context.theme.color.primary}`,\n\t\tdisplay: \"flex\",\n\t\talignItems: \"center\",\n\t\tminHeight: \"35px\",\n padding: \"0 16px\",\n\t\theight: \"100%\",\n\t\tzIndex: \"2\",\n\t\tp: {\n\t\t\tmargin: \"0\",\n\t\t\twidth: widthProp,\n\t\t\twhiteSpace: \"pre-wrap\",\n\t\t\twordWrap: \"break-word\",\n\t\t\tfontSize: \"14px\",\n\t\t},\n\t\tspan: {\n\t\t\tmaxWidth: \"40px\",\n\t\t\tpadding: countPadding,\n\t\t\tfontWeight: \"bold\",\n\t\t\tdisplay: \"inline-block\",\n\t\t\tfontSize: \"13px\",\n\t\t},\n\t};\n};\n\nexport const checkIconStyle = (img, context) => {\n\n\treturn {\n\t\twidth: \"24px\",\n\t\theight: \"24px\",\n\t\tmask: `url(${img}) center center no-repeat`,\n\t\tbackgroundColor: `${context.theme.secondaryTextColor}`,\n\t};\n};\n\nexport const messageInfoWrapperStyle = () => {\n\n return {\n alignSelf: \"flex-start\",\n padding: \"4px 8px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n height: \"25px\"\n }\n}\n\nexport const messageReactionsWrapperStyle = () => {\n\n return {\n display: \"inline-flex\",\n alignSelf: \"flex-start\",\n width: \"100%\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-start\",\n }\n}","export default __webpack_public_path__ + \"static/media/checkmark.2fca5711.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatMessageActions, CometChatThreadedMessageReplyCount, CometChatReadReceipt } from \"../../\";\nimport { CometChatMessageReactions } from \"../\";\nimport { CometChatAvatar } from \"../../../Shared\";\n\nimport { CometChatContext } from \"../../../../util/CometChatContext\";\nimport { checkMessageForExtensionsData } from \"../../../../util/common\";\nimport * as enums from \"../../../../util/enums.js\";\n\nimport { theme } from \"../../../../resources/theme\";\nimport Translator from \"../../../../resources/localization/translator\";\n\nimport {\n messageContainerStyle,\n messageWrapperStyle,\n messageThumbnailStyle,\n messageDetailStyle,\n nameWrapperStyle,\n nameStyle,\n messageTxtContainerStyle,\n messageTxtWrapperStyle,\n pollQuestionStyle,\n pollAnswerStyle,\n pollPercentStyle,\n answerWrapperStyle,\n checkIconStyle,\n pollTotalStyle,\n messageInfoWrapperStyle,\n messageReactionsWrapperStyle\n} from \"./style\";\n\n\nimport checkImg from \"./resources/checkmark.svg\";\n\nclass CometChatReceiverPollMessageBubble extends React.Component {\n\tpollId;\n\tstatic contextType = CometChatContext;\n\tloggedInUser;\n\n\tconstructor(props, context) {\n\t\tsuper(props, context);\n\n\t\tthis.state = {\n\t\t\tisHovering: false,\n\t\t\tloggedInUser: null\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\n\t\tthis.context.getLoggedinUser().then(user => {\n\t\t\tthis.setState({ loggedInUser: {...user} });\n\t\t});\n\t}\n\n\tshouldComponentUpdate(nextProps, nextState) {\n \n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\t\tconst nextMessageStr = JSON.stringify(nextProps.message);\n\n\t\tif (currentMessageStr !== nextMessageStr \n || this.state.isHovering !== nextState.isHovering) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tanswerPollQuestion = (event, selectedOption) => {\n\t\tCometChat.callExtension(\"polls\", \"POST\", \"v2/vote\", {\n\t\t\tvote: selectedOption,\n\t\t\tid: this.pollId,\n\t\t})\n\t\t\t.then(response => {\n\t\t\t\tif (response.hasOwnProperty(\"success\") === false || (response.hasOwnProperty(\"success\") && response[\"success\"] === false)) {\n\t\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"ERROR\"], [], \"SOMETHING_WRONG\");\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => this.props.actionGenerated(enums.ACTIONS[\"ERROR\"], [], \"SOMETHING_WRONG\"));\n\t};\n\n\thandleMouseHover = () => {\n\t\tthis.setState(this.toggleHoverState);\n\t};\n\n\ttoggleHoverState = state => {\n\t\treturn {\n\t\t\tisHovering: !state.isHovering,\n\t\t};\n\t};\n\n\trender() {\n\t\tconst pollExtensionData = checkMessageForExtensionsData(this.props.message, \"polls\");\n\t\tif (!pollExtensionData) {\n\t\t\treturn null;\n\t\t}\n\n\t\t// if (!this.props.message.hasOwnProperty(\"metadata\")) {\n\t\t// return null;\n\t\t// }\n\n\t\t// if (!this.props.message.metadata.hasOwnProperty(\"@injected\")) {\n\t\t// return null;\n\t\t// }\n\n\t\t// if (!this.props.message.metadata[\"@injected\"].hasOwnProperty(\"extensions\")) {\n\t\t// return null;\n\t\t// }\n\n\t\t// if (!this.props.message.metadata[\"@injected\"][\"extensions\"].hasOwnProperty(\"polls\")) {\n\t\t// return null;\n\t\t// }\n\n\t\tlet avatar = null,\n\t\t\tname = null;\n\t\tif (this.props.message.receiverType === CometChat.RECEIVER_TYPE.GROUP) {\n\t\t\tavatar = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\n\t\t\tname = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{this.props.message.sender.name}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tconst pollOptions = [];\n\t\t//const pollExtensionData = this.props.message.metadata[\"@injected\"][\"extensions\"][\"polls\"];\n\n\t\tthis.pollId = pollExtensionData.id;\n\t\tconst total = pollExtensionData.results.total;\n\t\tlet totalText = Translator.translate(\"NO_VOTE\", this.context.language);\n\n\t\tif (total === 1) {\n\t\t\ttotalText = `${total} ${Translator.translate(\"VOTE\", this.context.language)}`;\n\t\t} else if (total > 1) {\n\t\t\ttotalText = `${total} ${Translator.translate(\"VOTES\", this.context.language)}`;\n\t\t}\n\n\t\tfor (const option in pollExtensionData.options) {\n\t\t\tconst optionData = pollExtensionData.results.options[option];\n\t\t\tconst vote = optionData[\"count\"];\n\n\t\t\tlet width = \"0%\";\n\t\t\tif (total) {\n\t\t\t\tconst fraction = vote / total;\n\t\t\t\twidth = fraction.toLocaleString(\"en\", { style: \"percent\" });\n\t\t\t}\n\n\t\t\tlet checkIcon = null;\n\t\t\tif (optionData.hasOwnProperty(\"voters\") && optionData.voters.hasOwnProperty(this.loggedInUser?.uid)) {\n\t\t\t\tcheckIcon = ;\n\t\t\t}\n\n\t\t\tconst template = (\n\t\t\t\t
  • this.answerPollQuestion(event, option)}>\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{checkIcon}\n\t\t\t\t\t\t{width}\n\t\t\t\t\t\t

    {optionData.text}

    \n\t\t\t\t\t
    \n\t\t\t\t
  • \n\t\t\t);\n\t\t\tpollOptions.push(template);\n\t\t}\n\n\t\tlet messageReactions = null;\n\t\tconst reactionsData = checkMessageForExtensionsData(this.props.message, \"reactions\");\n\t\tif (reactionsData) {\n\t\t\tif (Object.keys(reactionsData).length) {\n\t\t\t\tmessageReactions = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet toolTipView = null;\n\t\tif (this.state.isHovering) {\n\t\t\ttoolTipView = ;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{avatar}\n\t\t\t\t\t
    \n\t\t\t\t\t\t{name}\n\t\t\t\t\t\t{toolTipView}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t{pollExtensionData.question}\n\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t{pollOptions}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t{totalText}\n\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t{messageReactions}\n\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatReceiverPollMessageBubble.defaultProps = {\n\ttheme: theme,\n\tactionGenerated: () => {},\n};\n\nCometChatReceiverPollMessageBubble.propTypes = {\n\ttheme: PropTypes.object,\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatReceiverPollMessageBubble };","export const messageContainerStyle = () => {\n\n return {\n alignSelf: \"flex-start\",\n marginBottom: \"16px\",\n paddingLeft: \"16px\",\n paddingRight: \"16px\",\n maxWidth: \"65%\",\n clear: \"both\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageWrapperStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-start\",\n display: \"flex\",\n }\n}\n\nexport const messageThumbnailStyle = () => {\n\n return {\n width: \"36px\",\n height: \"36px\",\n margin: \"10px 5px\",\n float: \"left\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageDetailStyle = () => {\n\n return {\n flex: \"1 1\",\n display: \"flex\",\n flexDirection: \"column\",\n }\n}\n\nexport const nameWrapperStyle = (avatar) => {\n\n const paddingValue = (avatar) ? {\n padding: \"3px 5px\",\n } : {};\n\n return {\n alignSelf: \"flex-start\",\n ...paddingValue\n }\n}\n\nexport const nameStyle = context => {\n\n\treturn {\n\t\tfontSize: \"10px\",\n\t\tcolor: `${context.theme.color.helpText}`,\n\t};\n};\n\nexport const messageImgContainerStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-start\",\n display: \"flex\",\n }\n}\n\nexport const messageImgWrapperStyle = context => {\n\n\tconst mq = [...context.theme.breakPoints];\n\n\treturn {\n\t\tdisplay: \"inline-block\",\n\t\talignSelf: \"flex-start\",\n\t\tmaxWidth: \"128px\",\n\t\theight: \"128px\",\n\t\tcursor: \"pointer\",\n\t\t[`@media ${mq[1]}, ${mq[2]}`]: {\n\t\t\tmaxWidth: \"128px\",\n\t\t\theight: \"128px\",\n\t\t\tpadding: \"2px 2px\",\n\t\t},\n\t};\n};\n\nexport const messageInfoWrapperStyle = () => {\n\n return {\n alignSelf: \"flex-start\",\n padding: \"4px 8px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n height: \"25px\"\n }\n}\n\nexport const messageReactionsWrapperStyle = () => {\n\n return {\n display: \"inline-flex\",\n alignSelf: \"flex-start\",\n width: \"100%\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-start\",\n }\n}","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatMessageActions, CometChatThreadedMessageReplyCount, CometChatReadReceipt } from \"../../\";\nimport { CometChatMessageReactions } from \"../\";\nimport { CometChatAvatar } from \"../../../Shared\";\n\nimport { CometChatContext } from \"../../../../util/CometChatContext\";\nimport { checkMessageForExtensionsData } from \"../../../../util/common\";\n\nimport { theme } from \"../../../../resources/theme\";\nimport Translator from \"../../../../resources/localization/translator\";\n\nimport {\n messageContainerStyle,\n messageWrapperStyle,\n messageThumbnailStyle,\n messageDetailStyle,\n nameWrapperStyle,\n nameStyle,\n messageImgContainerStyle,\n messageImgWrapperStyle,\n messageInfoWrapperStyle,\n messageReactionsWrapperStyle\n} from \"./style\";\n\nclass CometChatReceiverStickerMessageBubble extends React.Component {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tisHovering: false,\n\t\t};\n\t}\n\n\tshouldComponentUpdate(nextProps, nextState) {\n\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\t\tconst nextMessageStr = JSON.stringify(nextProps.message);\n\n\t\tif (currentMessageStr !== nextMessageStr \n || this.state.isHovering !== nextState.isHovering) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\thandleMouseHover = () => {\n\t\tthis.setState(this.toggleHoverState);\n\t};\n\n\ttoggleHoverState = state => {\n\t\treturn {\n\t\t\tisHovering: !state.isHovering,\n\t\t};\n\t};\n\n\trender() {\n\t\tlet avatar = null,\n\t\t\tname = null;\n\t\tif (this.props.message.receiverType === CometChat.RECEIVER_TYPE.GROUP) {\n\t\t\tavatar = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\n\t\t\tname = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{this.props.message.sender.name}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tlet stickerData = null;\n\t\tlet stickerImg = null;\n\t\tif (this.props.message.hasOwnProperty(\"data\") && this.props.message.data.hasOwnProperty(\"customData\")) {\n\t\t\tstickerData = this.props.message.data.customData;\n\n\t\t\tif (stickerData.hasOwnProperty(\"sticker_url\")) {\n\t\t\t\tconst stickerName = stickerData.hasOwnProperty(\"sticker_name\") ? stickerData.sticker_name : Translator.translate(\"STICKER\", this.context.language);\n\t\t\t\tstickerImg = {stickerName};\n\t\t\t}\n\t\t}\n\n\t\tlet messageReactions = null;\n\t\tconst reactionsData = checkMessageForExtensionsData(this.props.message, \"reactions\");\n\t\tif (reactionsData) {\n\t\t\tif (Object.keys(reactionsData).length) {\n\t\t\t\tmessageReactions = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet toolTipView = null;\n\t\tif (this.state.isHovering) {\n\t\t\ttoolTipView = ;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{avatar}\n\t\t\t\t\t
    \n\t\t\t\t\t\t{name}\n\t\t\t\t\t\t{toolTipView}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{stickerImg}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t{messageReactions}\n\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatReceiverStickerMessageBubble.defaultProps = {\n\ttheme: theme,\n\tactionGenerated: () => {},\n};\n\nCometChatReceiverStickerMessageBubble.propTypes = {\n\ttheme: PropTypes.object,\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatReceiverStickerMessageBubble };","export const messageContainerStyle = () => {\n\n return {\n alignSelf: \"flex-start\",\n marginBottom: \"16px\",\n paddingLeft: \"16px\",\n paddingRight: \"16px\",\n maxWidth: \"305px\",\n clear: \"both\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageWrapperStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-start\",\n display: \"flex\",\n }\n}\n\nexport const messageThumbnailStyle = () => {\n\n return {\n width: \"36px\",\n height: \"36px\",\n margin: \"10px 5px\",\n float: \"left\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageDetailStyle = () => {\n\n return {\n flex: \"1 1\",\n display: \"flex\",\n flexDirection: \"column\",\n }\n}\n\nexport const nameWrapperStyle = (avatar) => {\n\n const paddingValue = (avatar) ? {\n padding: \"3px 5px\",\n } : {};\n\n return {\n alignSelf: \"flex-start\",\n ...paddingValue\n }\n}\n\nexport const nameStyle = context => {\n\n\treturn {\n\t\tfontSize: \"10px\",\n\t\tcolor: `${context.theme.color.helpText}`,\n\t};\n};\n\nexport const messageTxtContainerStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-start\",\n display: \"flex\",\n }\n}\n\nexport const messageTxtWrapperStyle = context => {\n\n\treturn {\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"column\",\n\t\tborderRadius: \"12px\",\n\t\tbackgroundColor: `${context.theme.backgroundColor.secondary}`,\n\t\tpadding: \"16px\",\n\t\talignSelf: \"flex-start\",\n\t\twidth: \"100%\",\n\t};\n};\n\nexport const messageTxtTitleStyle = context => {\n\n\treturn {\n\t\tdisplay: \"flex\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tcolor: `${context.theme.color.primary}`,\n\t};\n};\n\nexport const messageTxtStyle = () => {\n\n return {\n margin: \"0\",\n whiteSpace: \"pre-wrap\",\n wordWrap: \"break-word\",\n textAlign: \"left\",\n width: \"calc(100% - 24px)\",\n fontSize: \"14px\",\n marginLeft: \"8px\"\n }\n}\n\nexport const iconStyle = (img, context) => {\n\treturn {\n\t\twidth: \"24px\",\n\t\theight: \"24px\",\n\t\tdisplay: \"inline-block\",\n\t\tmask: `url(${img}) center center no-repeat`,\n\t\tbackgroundColor: `${context.theme.primaryColor}`,\n\t};\n};\n\nexport const messageBtnStyle = context => {\n\n\treturn {\n\t\tlistStyleType: \"none\",\n\t\tpadding: \"0\",\n\t\tmargin: \"0\",\n\t\tli: {\n\t\t\tbackgroundColor: `${context.theme.backgroundColor.white}`,\n\t\t\tborderRadius: \"8px\",\n\t\t\tdisplay: \"flex\",\n\t\t\tjustifyContent: \"center\",\n\t\t\talignItems: \"center\",\n\t\t\twidth: \"100%\",\n\t\t\tcursor: \"pointer\",\n\t\t\tposition: \"relative\",\n\t\t\tmargin: \"16px 0 0 0\",\n\t\t\tpadding: \"8px\",\n\t\t\t\"> p\": {\n\t\t\t\tbackground: \"0 0\",\n\t\t\t\ttextAlign: \"center\",\n\t\t\t\tcolor: `${context.theme.primaryColor}`,\n\t\t\t\twidth: \"100%\",\n\t\t\t\tdisplay: \"inline-block\",\n\t\t\t\tfontSize: \"14px\",\n\t\t\t\tfontWeight: \"600\",\n\t\t\t\tmargin: \"0\",\n\t\t\t},\n\t\t},\n\t};\n};\n\n\nexport const messageInfoWrapperStyle = () => {\n\n return {\n alignSelf: \"flex-start\",\n padding: \"4px 8px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n height: \"25px\"\n }\n}\n\nexport const messageReactionsWrapperStyle = () => {\n\n return {\n display: \"inline-flex\",\n alignSelf: \"flex-start\",\n width: \"100%\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-start\",\n }\n}","export default __webpack_public_path__ + \"static/media/collaborative-whiteboard.78916c4e.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatMessageActions, CometChatThreadedMessageReplyCount, CometChatReadReceipt } from \"../../\";\nimport { CometChatMessageReactions } from \"../\";\nimport { CometChatAvatar } from \"../../../Shared\";\n\nimport { CometChatContext } from \"../../../../util/CometChatContext\";\nimport { checkMessageForExtensionsData } from \"../../../../util/common\";\n\nimport { theme } from \"../../../../resources/theme\";\nimport Translator from \"../../../../resources/localization/translator\";\n\nimport {\n\tmessageContainerStyle,\n\tmessageWrapperStyle,\n\tmessageThumbnailStyle,\n\tmessageDetailStyle,\n\tnameWrapperStyle,\n\tnameStyle,\n\tmessageTxtContainerStyle,\n\tmessageTxtWrapperStyle,\n\tmessageTxtTitleStyle,\n\tmessageTxtStyle,\n\tmessageBtnStyle,\n\tmessageInfoWrapperStyle,\n\tmessageReactionsWrapperStyle,\n\ticonStyle,\n} from \"./style\";\n\nimport whiteboardIcon from \"./resources/collaborative-whiteboard.svg\";\n\nclass CometChatReceiverWhiteboardBubble extends React.Component {\n\tstatic contextType = CometChatContext;\n\tloggedInUser;\n\n\tconstructor(props, context) {\n\t\tsuper(props, context);\n\n\t\tthis.state = {\n\t\t\tisHovering: false,\n\t\t};\n\n\t\tthis.context.getLoggedinUser().then(user => {\n\t\t\tthis.loggedInUser = { ...user };\n\t\t});\n\t}\n\n\tshouldComponentUpdate(nextProps, nextState) {\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\t\tconst nextMessageStr = JSON.stringify(nextProps.message);\n\n\t\tif (currentMessageStr !== nextMessageStr || this.state.isHovering !== nextState.isHovering) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tlaunchCollaborativeWhiteboard = () => {\n\t\tlet whiteboardUrl = null;\n\t\tlet whiteboardData = checkMessageForExtensionsData(this.props.message, \"whiteboard\");\n\t\tif (whiteboardData && whiteboardData.hasOwnProperty(\"board_url\") && whiteboardData.board_url.length) {\n\t\t\tlet username = this.loggedInUser?.name.split(\" \").join(\"_\");\n\t\t\t// Appending the username to the board_url\n\t\t\twhiteboardUrl = whiteboardData.board_url + \"&username=\" + username;\n\t\t\twindow.open(whiteboardUrl, \"\", \"fullscreen=yes, scrollbars=auto\");\n\t\t}\n\t};\n\n\thandleMouseHover = () => {\n\t\tthis.setState(this.toggleHoverState);\n\t};\n\n\ttoggleHoverState = state => {\n\t\treturn {\n\t\t\tisHovering: !state.isHovering,\n\t\t};\n\t};\n\n\trender() {\n\t\tlet avatar = null,\n\t\t\tname = null;\n\t\tif (this.props.message.receiverType === CometChat.RECEIVER_TYPE.GROUP) {\n\t\t\tavatar = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\n\t\t\tname = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{this.props.message.sender.name}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tlet messageReactions = null;\n\t\tconst reactionsData = checkMessageForExtensionsData(this.props.message, \"reactions\");\n\t\tif (reactionsData) {\n\t\t\tif (Object.keys(reactionsData).length) {\n\t\t\t\tmessageReactions = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet toolTipView = null;\n\t\tif (this.state.isHovering) {\n\t\t\ttoolTipView = ;\n\t\t}\n\n\t\tconst documentTitle = `${this.props.message.sender.name} ${Translator.translate(\"SHARED_COLLABORATIVE_WHITEBOARD\", this.context.language)}`;\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{avatar}\n\t\t\t\t\t
    \n\t\t\t\t\t\t{name}\n\t\t\t\t\t\t{toolTipView}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t\t{documentTitle}\n\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t\t\t

      {Translator.translate(\"JOIN\", this.context.language)}

      \n\t\t\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t{messageReactions}\n\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatReceiverWhiteboardBubble.defaultProps = {\n\ttheme: theme,\n\tactionGenerated: () => {},\n};\n\nCometChatReceiverWhiteboardBubble.propTypes = {\n\ttheme: PropTypes.object,\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatReceiverWhiteboardBubble };","export const messageContainerStyle = () => {\n\n return {\n alignSelf: \"flex-end\",\n marginBottom: \"16px\",\n paddingLeft: \"16px\",\n paddingRight: \"16px\",\n maxWidth: \"305px\",\n clear: \"both\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageWrapperStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-end\",\n display: \"flex\",\n }\n}\n\nexport const messageTxtWrapperStyle = context => {\n\n\treturn {\n\t\tdisplay: \"inline-block\",\n\t\tborderRadius: \"12px\",\n\t\tbackgroundColor: `${context.theme.primaryColor}`,\n\t\tcolor: `${context.theme.color.white}`,\n\t\tpadding: \"16px\",\n\t\talignSelf: \"flex-end\",\n\t\twidth: \"auto\",\n\t};\n};\n\nexport const messageTxtContainerStyle = () => {\n\n return {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n }\n}\n\nexport const messageTxtStyle = () => {\n\n return {\n margin: \"0\",\n whiteSpace: \"pre-wrap\",\n wordBreak: \"break-word\",\n textAlign: \"left\",\n width: \"calc(100% - 24px)\",\n fontSize: \"14px\",\n marginLeft: \"8px\"\n }\n}\n\nexport const iconStyle = (img, context) => {\n\treturn {\n\t\twidth: \"24px\",\n\t\theight: \"24px\",\n\t\tdisplay: \"inline-block\",\n\t\tmask: `url(${img}) center center no-repeat`,\n\t\tbackgroundColor: `${context.theme.color.white}`,\n\t};\n};\n\nexport const messageBtnStyle = context => {\n\n\treturn {\n\t\tlistStyleType: \"none\",\n\t\tpadding: \"0\",\n\t\tmargin: \"0\",\n\t\twidth: \"100%\",\n\t\tli: {\n\t\t\tbackgroundColor: `${context.theme.backgroundColor.white}`,\n\t\t\tborderRadius: \"8px\",\n\t\t\tdisplay: \"flex\",\n\t\t\tjustifyContent: \"center\",\n\t\t\talignItems: \"center\",\n\t\t\twidth: \"100%\",\n\t\t\tposition: \"relative\",\n\t\t\tmargin: \"16px 0 0 0\",\n\t\t\tpadding: \"8px\",\n\t\t\tcursor: \"pointer\",\n\t\t\t\"> p\": {\n\t\t\t\tbackground: \"0 0\",\n\t\t\t\ttextAlign: \"center\",\n\t\t\t\tcolor: `${context.theme.primaryColor}`,\n\t\t\t\twidth: \"100%\",\n\t\t\t\tfontWeight: \"600\",\n\t\t\t\tdisplay: \"inline-block\",\n\t\t\t\tfontSize: \"14px\",\n\t\t\t\tmargin: \"0\",\n\t\t\t},\n\t\t},\n\t};\n};\n\nexport const messageInfoWrapperStyle = () => {\n\n return {\n alignSelf: \"flex-end\",\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n padding: \"4px 8px\",\n height: \"25px\",\n }\n}\n\nexport const messageReactionsWrapperStyle = () => {\n\n return {\n display: \"inline-flex\",\n alignSelf: \"flex-end\",\n width: \"100%\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-end\",\n }\n}\n","export default __webpack_public_path__ + \"static/media/collaborative-document.3c15f5d4.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\n\nimport { CometChatMessageActions, CometChatThreadedMessageReplyCount, CometChatReadReceipt } from \"../../\";\nimport { CometChatMessageReactions } from \"../\";\n\nimport { CometChatContext } from \"../../../../util/CometChatContext\";\nimport { checkMessageForExtensionsData } from \"../../../../util/common\";\n\nimport { theme } from \"../../../../resources/theme\";\nimport Translator from \"../../../../resources/localization/translator\";\n\nimport {\n messageContainerStyle,\n messageWrapperStyle,\n messageTxtWrapperStyle,\n messageTxtContainerStyle,\n messageTxtStyle,\n messageBtnStyle,\n messageInfoWrapperStyle,\n messageReactionsWrapperStyle,\n iconStyle,\n} from \"./style\";\n\nimport documentIcon from \"./resources/collaborative-document.svg\";\n\nclass CometChatSenderDocumentBubble extends React.Component {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tisHovering: false,\n\t\t};\n\t}\n\n\tshouldComponentUpdate(nextProps, nextState) {\n\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\t\tconst nextMessageStr = JSON.stringify(nextProps.message);\n\n\t\tif (currentMessageStr !== nextMessageStr \n || this.state.isHovering !== nextState.isHovering) {\n \n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tlaunchCollaborativeDocument = () => {\n\t\tlet documentUrl = null;\n\t\tlet documentData = checkMessageForExtensionsData(this.props.message, \"document\");\n\t\tif (documentData && documentData.hasOwnProperty(\"document_url\") && documentData.document_url.length) {\n\t\t\tdocumentUrl = documentData.document_url;\n\t\t\twindow.open(documentUrl, \"\", \"fullscreen=yes, scrollbars=auto\");\n\t\t}\n\t};\n\n\thandleMouseHover = () => {\n\t\tthis.setState(this.toggleHoverState);\n\t};\n\n\ttoggleHoverState = state => {\n\t\treturn {\n\t\t\tisHovering: !state.isHovering,\n\t\t};\n\t};\n\n\trender() {\n\t\tlet messageReactions = null;\n\t\tconst reactionsData = checkMessageForExtensionsData(this.props.message, \"reactions\");\n\t\tif (reactionsData) {\n\t\t\tif (Object.keys(reactionsData).length) {\n\t\t\t\tmessageReactions = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet toolTipView = null;\n\t\tif (this.state.isHovering) {\n\t\t\ttoolTipView = ;\n\t\t}\n\n\t\tconst documentTitle = Translator.translate(\"CREATED_DOCUMENT\", this.context.language);\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{toolTipView}\n\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t{documentTitle}\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t

      {Translator.translate(\"LAUNCH\", this.context.language)}

      \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\n\t\t\t\t{messageReactions}\n\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatSenderDocumentBubble.defaultProps = {\n\ttheme: theme,\n\tactionGenerated: () => {},\n};\n\nCometChatSenderDocumentBubble.propTypes = {\n\ttheme: PropTypes.object,\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatSenderDocumentBubble };\n","export const messageContainerStyle = () => {\n\n return {\n alignSelf: \"flex-end\",\n marginBottom: \"16px\",\n paddingLeft: \"16px\",\n paddingRight: \"16px\",\n maxWidth: \"65%\",\n clear: \"both\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageWrapperStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-end\",\n display: \"flex\",\n }\n}\n\nexport const messageTxtWrapperStyle = context => {\n\n\treturn {\n\t\tdisplay: \"inline-block\",\n\t\tborderRadius: \"12px\",\n\t\tbackgroundColor: `${context.theme.primaryColor}`,\n\t\tcolor: `${context.theme.color.white}`,\n\t\tpadding: \"8px 16px\",\n\t\talignSelf: \"flex-end\",\n\t\twidth: \"auto\",\n\t};\n};\n\nexport const pollQuestionStyle = () => {\n\n return {\n margin: \"0\",\n whiteSpace: \"pre-wrap\",\n wordWrap: \"break-word\",\n textAlign: \"left\",\n width: \"100%\",\n fontSize: \"14px\",\n }\n}\n\nexport const pollAnswerStyle = context => {\n\n\treturn {\n\t\tlistStyleType: \"none\",\n\t\tpadding: \"0\",\n\t\tmargin: \"0\",\n\t\twidth: \"100%\",\n\t\tli: {\n\t\t\tbackgroundColor: `${context.theme.backgroundColor.white}`,\n\t\t\tmargin: \"10px 0\",\n\t\t\tborderRadius: \"8px\",\n\t\t\tdisplay: \"flex\",\n\t\t\twidth: \"100%\",\n\t\t\tposition: \"relative\",\n\t\t},\n\t};\n};\n\nexport const pollTotalStyle = () => {\n\n return {\n fontSize: \"13px\",\n margin: \"0\",\n alignSelf: \"flex-end\"\n }\n}\n\nexport const pollPercentStyle = (context, width) => {\n\n const curvedBorders = (width === \"100%\") ? { borderRadius: \"8px\" } : {\n borderRadius: \"8px 0 0 8px\"\n };\n\n return {\n maxWidth: \"100%\",\n width: width,\n ...curvedBorders,\n backgroundColor: `${context.theme.backgroundColor.primary}`,\n minHeight: \"35px\",\n height: \"100%\",\n position: \"absolute\",\n zIndex: \"1\",\n }\n}\n\nexport const answerWrapperStyle = (context, width) => {\n\n return {\n width: \"100%\",\n color: `${context.theme.color.primary}`,\n display: \"flex\",\n alignItems: \"center\",\n minHeight: \"35px\",\n padding: \"0 16px\",\n height: \"100%\",\n zIndex: \"2\",\n \"p\": {\n margin: \"0\",\n width: \"calc(100% - 40px)\",\n whiteSpace: \"pre-wrap\",\n wordWrap: \"break-word\",\n fontSize: \"14px\",\n },\n \"span\": {\n maxWidth: \"40px\",\n padding: \"0px 16px 0px 0px\",\n fontWeight: \"bold\",\n display: \"inline-block\",\n fontSize: \"13px\",\n }\n }\n}\n\nexport const messageInfoWrapperStyle = () => {\n\n return {\n alignSelf: \"flex-end\",\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n padding: \"4px 8px\",\n height: \"25px\",\n }\n}\n\nexport const messageReactionsWrapperStyle = () => {\n\n return {\n display: \"inline-flex\",\n alignSelf: \"flex-end\",\n width: \"100%\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-end\",\n }\n}\n","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\n\nimport { CometChatMessageActions, CometChatThreadedMessageReplyCount, CometChatReadReceipt } from \"../../\";\nimport { CometChatMessageReactions } from \"../\";\n\nimport { CometChatContext } from \"../../../../util/CometChatContext\";\nimport { checkMessageForExtensionsData } from \"../../../../util/common\";\n\nimport { theme } from \"../../../../resources/theme\";\nimport Translator from \"../../../../resources/localization/translator\";\n\nimport {\n messageContainerStyle,\n messageWrapperStyle,\n messageTxtWrapperStyle,\n pollQuestionStyle,\n pollAnswerStyle,\n pollTotalStyle,\n pollPercentStyle,\n answerWrapperStyle,\n messageInfoWrapperStyle,\n messageReactionsWrapperStyle,\n} from \"./style\";\n\nclass CometChatSenderPollMessageBubble extends React.Component {\n\tpollId;\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tisHovering: false,\n\t\t};\n\t}\n\n\tshouldComponentUpdate(nextProps, nextState) {\n\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\t\tconst nextMessageStr = JSON.stringify(nextProps.message);\n\n\t\tif (currentMessageStr !== nextMessageStr \n || this.state.isHovering !== nextState.isHovering) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\thandleMouseHover = () => {\n\t\tthis.setState(this.toggleHoverState);\n\t};\n\n\ttoggleHoverState = state => {\n\t\treturn {\n\t\t\tisHovering: !state.isHovering,\n\t\t};\n\t};\n\n\trender() {\n\t\tconst pollExtensionData = checkMessageForExtensionsData(this.props.message, \"polls\");\n\t\tif (!pollExtensionData) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst pollOptions = [];\n\n\t\tthis.pollId = pollExtensionData.id;\n\t\tconst total = pollExtensionData.results.total;\n\t\tlet totalText = Translator.translate(\"NO_VOTE\", this.context.language);\n\n\t\tif (total === 1) {\n\t\t\ttotalText = `${total} ${Translator.translate(\"VOTE\", this.context.language)}`;\n\t\t} else if (total > 1) {\n\t\t\ttotalText = `${total} ${Translator.translate(\"VOTES\", this.context.language)}`;\n\t\t}\n\n\t\tfor (const option in pollExtensionData.results.options) {\n\t\t\tconst optionData = pollExtensionData.results.options[option];\n\t\t\tconst vote = optionData[\"count\"];\n\n\t\t\tlet width = \"0%\";\n\t\t\tif (total) {\n\t\t\t\tconst fraction = vote / total;\n\t\t\t\twidth = fraction.toLocaleString(\"en\", { style: \"percent\" });\n\t\t\t}\n\n\t\t\tconst template = (\n\t\t\t\t
  • \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{width}\n\t\t\t\t\t\t

    {optionData.text}

    \n\t\t\t\t\t
    \n\t\t\t\t
  • \n\t\t\t);\n\t\t\tpollOptions.push(template);\n\t\t}\n\n\t\tlet messageReactions = null;\n\t\tconst reactionsData = checkMessageForExtensionsData(this.props.message, \"reactions\");\n\t\tif (reactionsData) {\n\t\t\tif (Object.keys(reactionsData).length) {\n\t\t\t\tmessageReactions = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet toolTipView = null;\n\t\tif (this.state.isHovering) {\n\t\t\ttoolTipView = ;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{toolTipView}\n\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t{pollExtensionData.question}\n\t\t\t\t\t\t

    \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t{pollOptions}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t{totalText}\n\t\t\t\t\t\t

    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\n\t\t\t\t{messageReactions}\n\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatSenderPollMessageBubble.defaultProps = {\n\ttheme: theme,\n\tactionGenerated: () => {},\n};\n\nCometChatSenderPollMessageBubble.propTypes = {\n\ttheme: PropTypes.object,\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatSenderPollMessageBubble };\n","export const messageContainerStyle = () => {\n\n return {\n alignSelf: \"flex-end\",\n marginBottom: \"16px\",\n paddingLeft: \"16px\",\n paddingRight: \"16px\",\n maxWidth: \"65%\",\n clear: \"both\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageWrapperStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-end\",\n display: \"flex\",\n }\n}\n\nexport const messageImgWrapper = context => {\n\n\tconst mq = [...context.theme.breakPoints];\n\n\treturn {\n\t\tdisplay: \"inline-block\",\n\t\talignSelf: \"flex-end\",\n\t\tmaxWidth: \"128px\",\n\t\theight: \"128px\",\n\t\tcursor: \"pointer\",\n\t\tflexShrink: \"0\",\n\t\t[`@media ${mq[1]}, ${mq[2]}`]: {\n\t\t\tmaxWidth: \"128px\",\n\t\t\theight: \"128px\",\n\t\t\tpadding: \"2px 2px\",\n\t\t},\n\t};\n};\n\nexport const messageInfoWrapperStyle = () => {\n\n return {\n alignSelf: \"flex-end\",\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n padding: \"4px 8px\",\n height: \"25px\",\n }\n}\n\nexport const messageReactionsWrapperStyle = () => {\n\n return {\n display: \"inline-flex\",\n alignSelf: \"flex-end\",\n width: \"100%\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-end\",\n }\n}\n","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\n\nimport { CometChatMessageActions, CometChatThreadedMessageReplyCount, CometChatReadReceipt } from \"../../\";\nimport { CometChatMessageReactions } from \"../\";\n\nimport { CometChatContext } from \"../../../../util/CometChatContext\";\nimport { checkMessageForExtensionsData } from \"../../../../util/common\";\n\nimport { theme } from \"../../../../resources/theme\";\nimport Translator from \"../../../../resources/localization/translator\";\n\nimport {\n messageContainerStyle,\n messageWrapperStyle,\n messageImgWrapper,\n messageInfoWrapperStyle,\n messageReactionsWrapperStyle,\n} from \"./style\";\n\nclass CometChatSenderStickerBubble extends React.Component {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tisHovering: false,\n\t\t};\n\t}\n\n\tshouldComponentUpdate(nextProps, nextState) {\n\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\t\tconst nextMessageStr = JSON.stringify(nextProps.message);\n\n\t\tif (currentMessageStr !== nextMessageStr \n\t\t|| this.state.isHovering !== nextState.isHovering) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\thandleMouseHover = () => {\n\t\tthis.setState(this.toggleHoverState);\n\t};\n\n\ttoggleHoverState = state => {\n\t\treturn {\n\t\t\tisHovering: !state.isHovering,\n\t\t};\n\t};\n\n\trender() {\n\t\tlet stickerData = null;\n\t\tlet stickerImg = null;\n\t\tif (this.props.message.hasOwnProperty(\"data\") && this.props.message.data.hasOwnProperty(\"customData\")) {\n\t\t\tstickerData = this.props.message.data.customData;\n\n\t\t\tif (stickerData.hasOwnProperty(\"sticker_url\")) {\n\t\t\t\tconst stickerName = stickerData.hasOwnProperty(\"sticker_name\") ? stickerData.sticker_name : Translator.translate(\"STICKER\", this.context.language);\n\t\t\t\tstickerImg = {stickerName};\n\t\t\t}\n\t\t}\n\n\t\tlet messageReactions = null;\n\t\tconst reactionsData = checkMessageForExtensionsData(this.props.message, \"reactions\");\n\t\tif (reactionsData) {\n\t\t\tif (Object.keys(reactionsData).length) {\n\t\t\t\tmessageReactions = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet toolTipView = null;\n\t\tif (this.state.isHovering) {\n\t\t\ttoolTipView = ;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{toolTipView}\n\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{stickerImg}{\" \"}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\n\t\t\t\t{messageReactions}\n\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatSenderStickerBubble.defaultProps = {\n\ttheme: theme,\n\tactionGenerated: () => {},\n};\n\nCometChatSenderStickerBubble.propTypes = {\n\ttheme: PropTypes.object,\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatSenderStickerBubble };","export const messageContainerStyle = () => {\n\n return {\n alignSelf: \"flex-end\",\n marginBottom: \"16px\",\n paddingLeft: \"16px\",\n paddingRight: \"16px\",\n maxWidth: \"305px\",\n clear: \"both\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageWrapperStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-end\",\n display: \"flex\",\n }\n}\n\nexport const messageTxtWrapperStyle = context => {\n\n\treturn {\n\t\tdisplay: \"inline-block\",\n\t\tborderRadius: \"12px\",\n\t\tbackgroundColor: `${context.theme.primaryColor}`,\n\t\tcolor: `${context.theme.color.white}`,\n\t\tpadding: \"16px\",\n\t\talignSelf: \"flex-end\",\n\t\twidth: \"auto\",\n\t};\n};\n\nexport const messageTxtContainerStyle = () => {\n\n return {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n \"> img\": {\n backgroundColor: \"white\"\n }\n }\n}\n\nexport const messageTxtStyle = () => {\n\n return {\n margin: \"0\",\n whiteSpace: \"pre-wrap\",\n wordBreak: \"break-word\",\n textAlign: \"left\",\n width: \"calc(100% - 24px)\",\n fontSize: \"14px\",\n paddingLeft: \"8px\"\n }\n}\n\nexport const messageTxtIconStyle = (img, context) => {\n\n return {\n mask: `url(${img}) no-repeat left center`,\n backgroundColor: `${context.theme.color.white}`,\n width: \"24px\",\n height: \"24px\"\n }\n}\n\nexport const messageBtnStyle = context => {\n\n\treturn {\n\t\tlistStyleType: \"none\",\n\t\tpadding: \"0\",\n\t\tmargin: \"0\",\n\t\twidth: \"100%\",\n\t\tli: {\n\t\t\tbackgroundColor: `${context.theme.backgroundColor.white}`,\n\t\t\tborderRadius: \"8px\",\n\t\t\tdisplay: \"flex\",\n\t\t\tjustifyContent: \"center\",\n\t\t\talignItems: \"center\",\n\t\t\twidth: \"100%\",\n\t\t\tposition: \"relative\",\n\t\t\tmargin: \"16px 0 0 0\",\n\t\t\tpadding: \"8px\",\n\t\t\tcursor: \"pointer\",\n\t\t\t\"> p\": {\n\t\t\t\tbackground: \"0 0\",\n\t\t\t\ttextAlign: \"center\",\n\t\t\t\tcolor: `${context.theme.primaryColor}`,\n\t\t\t\twidth: \"100%\",\n fontWeight: \"600\",\n\t\t\t\tdisplay: \"inline-block\",\n\t\t\t\tfontSize: \"14px\",\n\t\t\t\tmargin: \"0\",\n\t\t\t},\n\t\t},\n\t};\n};\n\nexport const messageInfoWrapperStyle = () => {\n\n return {\n alignSelf: \"flex-end\",\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n padding: \"4px 8px\",\n height: \"25px\",\n }\n}\n\nexport const messageReactionsWrapperStyle = () => {\n\n return {\n display: \"inline-flex\",\n alignSelf: \"flex-end\",\n width: \"100%\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-end\",\n }\n}\n","export default __webpack_public_path__ + \"static/media/collaborative-whiteboard.78916c4e.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\n\nimport { CometChatMessageActions, CometChatThreadedMessageReplyCount, CometChatReadReceipt } from \"../../\";\nimport { CometChatMessageReactions } from \"../\";\n\nimport { CometChatContext } from \"../../../../util/CometChatContext\";\nimport { checkMessageForExtensionsData } from \"../../../../util/common\";\n\nimport { theme } from \"../../../../resources/theme\";\nimport Translator from \"../../../../resources/localization/translator\";\n\nimport {\n messageContainerStyle,\n messageWrapperStyle,\n messageTxtWrapperStyle,\n messageTxtContainerStyle,\n messageTxtStyle,\n messageTxtIconStyle,\n messageBtnStyle,\n messageInfoWrapperStyle,\n messageReactionsWrapperStyle,\n} from \"./style\";\n\nimport whiteboardIcon from \"./resources/collaborative-whiteboard.svg\";\n\nclass CometChatSenderWhiteboardBubble extends React.Component {\n\tstatic contextType = CometChatContext;\n\tloggedInUser;\n\n\tconstructor(props, context) {\n\t\tsuper(props, context);\n\n\t\tthis.state = {\n\t\t\tisHovering: false,\n\t\t};\n\n\t\tthis.context.getLoggedinUser().then(user => {\n\t\t\tthis.loggedInUser = { ...user };\n\t\t});\n\t}\n\n\tshouldComponentUpdate(nextProps, nextState) {\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\t\tconst nextMessageStr = JSON.stringify(nextProps.message);\n\n\t\tif (currentMessageStr !== nextMessageStr || this.state.isHovering !== nextState.isHovering) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tlaunchCollaborativeWhiteboard = () => {\n\t\tlet whiteboardUrl = null;\n\t\tlet whiteboardData = checkMessageForExtensionsData(this.props.message, \"whiteboard\");\n\t\tif (whiteboardData && whiteboardData.hasOwnProperty(\"board_url\") && whiteboardData.board_url.length) {\n\t\t\tlet username = this.loggedInUser?.name.split(\" \").join(\"_\");\n\t\t\t// Appending the username to the board_url\n\t\t\twhiteboardUrl = whiteboardData.board_url + \"&username=\" + username;\n\t\t\twindow.open(whiteboardUrl, \"\", \"fullscreen=yes, scrollbars=auto\");\n\t\t}\n\t};\n\n\thandleMouseHover = () => {\n\t\tthis.setState(this.toggleHoverState);\n\t};\n\n\ttoggleHoverState = state => {\n\t\treturn {\n\t\t\tisHovering: !state.isHovering,\n\t\t};\n\t};\n\n\trender() {\n\t\tlet messageReactions = null;\n\t\tconst reactionsData = checkMessageForExtensionsData(this.props.message, \"reactions\");\n\t\tif (reactionsData) {\n\t\t\tif (Object.keys(reactionsData).length) {\n\t\t\t\tmessageReactions = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet toolTipView = null;\n\t\tif (this.state.isHovering) {\n\t\t\ttoolTipView = ;\n\t\t}\n\n\t\tconst documentTitle = Translator.translate(\"CREATED_WHITEBOARD\", this.context.language);\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{toolTipView}\n\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t{documentTitle}\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\t

      {Translator.translate(\"LAUNCH\", this.context.language)}

      \n\t\t\t\t\t\t\t
    • \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\n\t\t\t\t{messageReactions}\n\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatSenderWhiteboardBubble.defaultProps = {\n\ttheme: theme,\n\tactionGenerated: () => {},\n};\n\nCometChatSenderWhiteboardBubble.propTypes = {\n\ttheme: PropTypes.object,\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatSenderWhiteboardBubble };","export const actionMessageStyle = () => {\n\n return {\n padding: \"8px 16px\",\n marginBottom: \"16px\",\n textAlign: \"center\",\n }\n}\n\nexport const actionMessageTxtStyle = () => {\n\n return {\n fontSize: \"13.5px\",\n margin: \"0\",\n lineHeight: \"20px\",\n }\n}","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport { actionMessageStyle, actionMessageTxtStyle } from \"./style\"\n\nclass CometChatActionMessageBubble extends React.Component {\n\tstatic contextType = CometChatContext;\n\tloggedInUser;\n\n\tconstructor(props, context) {\n\t\tsuper(props, context);\n\n\t\tthis.context.getLoggedinUser().then(user => {\n\t\t\tthis.loggedInUser = { ...user };\n\t\t});\n\t}\n\n\tgetCallActionMessage = message => {\n\t\tconst call = message;\n\t\tlet actionMessage = null;\n\n\t\tswitch (call.status) {\n\t\t\tcase CometChat.CALL_STATUS.INITIATED: {\n\t\t\t\tactionMessage = Translator.translate(\"CALL_INITIATED\", this.context.language);\n\t\t\t\tif (call.type === CometChat.CALL_TYPE.AUDIO) {\n\t\t\t\t\tif (call.receiverType === CometChat.RECEIVER_TYPE.USER) {\n\t\t\t\t\t\tactionMessage = call.callInitiator.uid === this.loggedInUser?.uid ? Translator.translate(\"OUTGOING_AUDIO_CALL\", this.context.language) : Translator.translate(\"INCOMING_AUDIO_CALL\", this.context.language);\n\t\t\t\t\t} else if (call.receiverType === CometChat.RECEIVER_TYPE.GROUP) {\n\t\t\t\t\t\tif (call.action === CometChat.CALL_STATUS.INITIATED) {\n\t\t\t\t\t\t\tactionMessage = call.callInitiator.uid === this.loggedInUser?.uid ? Translator.translate(\"OUTGOING_AUDIO_CALL\", this.context.language) : Translator.translate(\"INCOMING_AUDIO_CALL\", this.context.language);\n\t\t\t\t\t\t} else if (call.action === CometChat.CALL_STATUS.REJECTED) {\n\t\t\t\t\t\t\tactionMessage = call.sender.uid === this.loggedInUser?.uid ? Translator.translate(\"CALL_REJECTED\", this.context.language) : `${call.sender.name} ${Translator.translate(\"REJECTED_CALL\", this.context.language)}`;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else if (call.type === CometChat.CALL_TYPE.VIDEO) {\n\t\t\t\t\tif (call.receiverType === CometChat.RECEIVER_TYPE.USER) {\n\t\t\t\t\t\tactionMessage = call.callInitiator.uid === this.loggedInUser?.uid ? Translator.translate(\"OUTGOING_VIDEO_CALL\", this.context.language) : Translator.translate(\"INCOMING_VIDEO_CALL\", this.context.language);\n\t\t\t\t\t} else if (call.receiverType === CometChat.RECEIVER_TYPE.GROUP) {\n\t\t\t\t\t\tif (call.action === CometChat.CALL_STATUS.INITIATED) {\n\t\t\t\t\t\t\tactionMessage = call.callInitiator.uid === this.loggedInUser?.uid ? Translator.translate(\"OUTGOING_VIDEO_CALL\", this.context.language) : Translator.translate(\"INCOMING_VIDEO_CALL\", this.context.language);\n\t\t\t\t\t\t} else if (call.action === CometChat.CALL_STATUS.REJECTED) {\n\t\t\t\t\t\t\tactionMessage = call.sender.uid === this.loggedInUser?.uid ? Translator.translate(\"CALL_REJECTED\", this.context.language) : `${call.sender.name} ${Translator.translate(\"REJECTED_CALL\", this.context.language)}`;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase CometChat.CALL_STATUS.ONGOING: {\n\t\t\t\tif (call.receiverType === CometChat.RECEIVER_TYPE.USER) {\n\t\t\t\t\tactionMessage = Translator.translate(\"CALL_ACCEPTED\", this.context.language);\n\t\t\t\t} else if (call.receiverType === CometChat.RECEIVER_TYPE.GROUP) {\n\t\t\t\t\tif (call.action === CometChat.CALL_STATUS.ONGOING) {\n\t\t\t\t\t\tactionMessage = call.sender.uid === this.loggedInUser?.uid ? Translator.translate(\"CALL_ACCEPTED\", this.context.language) : `${call.sender.name} ${Translator.translate(\"JOINED\", this.context.language)}`;\n\t\t\t\t\t} else if (call.action === CometChat.CALL_STATUS.REJECTED) {\n\t\t\t\t\t\tactionMessage = call.sender.uid === this.loggedInUser?.uid ? Translator.translate(\"CALL_REJECTED\", this.context.language) : `${call.sender.name} ${Translator.translate(\"REJECTED_CALL\", this.context.language)}`;\n\t\t\t\t\t} else if (call.action === \"left\") {\n\t\t\t\t\t\tif (call.sender.uid === this.loggedInUser?.uid) {\n\t\t\t\t\t\t\tactionMessage = `${Translator.translate(\"YOU\", this.context.language)} ${Translator.translate(\"LEFT_THE_CALL\", this.context.language)}`;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tactionMessage = `${call.sender.name} ${Translator.translate(\"LEFT_THE_CALL\", this.context.language)}`;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase CometChat.CALL_STATUS.UNANSWERED: {\n\t\t\t\tactionMessage = Translator.translate(\"CALL_UNANSWERED\", this.context.language);\n\n\t\t\t\tif (call.type === CometChat.CALL_TYPE.AUDIO && (call.receiverType === CometChat.RECEIVER_TYPE.USER || call.receiverType === CometChat.RECEIVER_TYPE.GROUP)) {\n\t\t\t\t\tactionMessage = call.callInitiator.uid === this.loggedInUser?.uid ? Translator.translate(\"UNANSWERED_AUDIO_CALL\", this.context.language) : Translator.translate(\"MISSED_AUDIO_CALL\", this.context.language);\n\t\t\t\t} else if (call.type === CometChat.CALL_TYPE.VIDEO && (call.receiverType === CometChat.RECEIVER_TYPE.USER || call.receiverType === CometChat.RECEIVER_TYPE.GROUP)) {\n\t\t\t\t\tactionMessage = call.callInitiator.uid === this.loggedInUser?.uid ? Translator.translate(\"UNANSWERED_VIDEO_CALL\", this.context.language) : Translator.translate(\"MISSED_VIDEO_CALL\", this.context.language);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase CometChat.CALL_STATUS.REJECTED:\n\t\t\t\tactionMessage = Translator.translate(\"CALL_REJECTED\", this.context.language);\n\t\t\t\tbreak;\n\t\t\tcase CometChat.CALL_STATUS.ENDED:\n\t\t\t\tactionMessage = Translator.translate(\"CALL_ENDED\", this.context.language);\n\t\t\t\tbreak;\n\t\t\tcase CometChat.CALL_STATUS.CANCELLED:\n\t\t\t\tactionMessage = Translator.translate(\"CALL_CANCELLED\", this.context.language);\n\t\t\t\tbreak;\n\t\t\tcase CometChat.CALL_STATUS.BUSY:\n\t\t\t\tactionMessage = Translator.translate(\"CALL_BUSY\", this.context.language);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn actionMessage;\n\t};\n\n\tgetActionMessage = message => {\n\t\tlet actionMessage = null;\n\n\t\tconst byUser = message?.actionBy?.name;\n\t\tconst onUser = message?.actionOn?.name;\n\n\t\tswitch (message.action) {\n\t\t\tcase CometChat.ACTION_TYPE.MEMBER_JOINED:\n\t\t\t\tactionMessage = `${byUser} ${Translator.translate(\"JOINED\", this.context.language)}`;\n\t\t\t\tbreak;\n\t\t\tcase CometChat.ACTION_TYPE.MEMBER_LEFT:\n\t\t\t\tactionMessage = `${byUser} ${Translator.translate(\"LEFT\", this.context.language)}`;\n\t\t\t\tbreak;\n\t\t\tcase CometChat.ACTION_TYPE.MEMBER_ADDED:\n\t\t\t\tactionMessage = `${byUser} ${Translator.translate(\"ADDED\", this.context.language)} ${onUser}`;\n\t\t\t\tbreak;\n\t\t\tcase CometChat.ACTION_TYPE.MEMBER_KICKED:\n\t\t\t\tactionMessage = `${byUser} ${Translator.translate(\"KICKED\", this.context.language)} ${onUser}`;\n\t\t\t\tbreak;\n\t\t\tcase CometChat.ACTION_TYPE.MEMBER_BANNED:\n\t\t\t\tactionMessage = `${byUser} ${Translator.translate(\"BANNED\", this.context.language)} ${onUser}`;\n\t\t\t\tbreak;\n\t\t\tcase CometChat.ACTION_TYPE.MEMBER_UNBANNED:\n\t\t\t\tactionMessage = `${byUser} ${Translator.translate(\"UNBANNED\", this.context.language)} ${onUser}`;\n\t\t\t\tbreak;\n\t\t\tcase CometChat.ACTION_TYPE.MEMBER_SCOPE_CHANGED: {\n\t\t\t\tconst newScope = message?.newScope;\n\t\t\t\tactionMessage = `${byUser} ${Translator.translate(\"MADE\", this.context.language)} ${onUser} ${Translator.translate(newScope, this.context.language)}`;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn actionMessage;\n\t};\n\n\tgetMessage = message => {\n\t\tlet actionMessage = null;\n\n\t\tif (message.category === CometChat.CATEGORY_CALL) {\n\t\t\tactionMessage = this.getCallActionMessage(message);\n\t\t} else if (message.category === CometChat.CATEGORY_ACTION) {\n\t\t\tactionMessage = this.getActionMessage(message);\n\t\t}\n\n\t\treturn actionMessage;\n\t};\n\n\trender() {\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t

    {this.getMessage(this.props.message)}

    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatActionMessageBubble.defaultProps = {\n theme: theme,\n};\n\nCometChatActionMessageBubble.propTypes = {\n\ttheme: PropTypes.object,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatActionMessageBubble };","import { CometChat } from \"@cometchat-pro/chat\";\n\nexport const messageContainerStyle = (props, loggedInUser) => {\n\n const alignment = (props.message?.sender?.uid === loggedInUser?.uid) ? {\n alignSelf: \"flex-end\"\n } : {\n alignSelf: \"flex-start\"\n };\n\n return {\n marginBottom: \"16px\",\n paddingLeft: \"16px\",\n paddingRight: \"16px\",\n maxWidth: \"65%\",\n clear: \"both\",\n flexShrink: \"0\",\n ...alignment\n }\n}\n\nexport const messageWrapperStyle = (props, loggedInUser) => {\n\n const alignment = (props.message?.sender?.uid === loggedInUser?.uid) ? {\n display: \"flex\",\n flexDirection : \"column\",\n } : {};\n\n return {\n flex: \"1 1\",\n position: \"relative\",\n width: \"100%\",\n ...alignment\n }\n}\n\nexport const messageTxtWrapperStyle = (props, context, loggedInUser) => {\n\n\n const alignment = (props.message?.sender?.uid === loggedInUser?.uid) ? {\n alignSelf: \"flex-end\",\n } : {\n alignSelf: \"flex-start\",\n };\n\n return {\n display: \"inline-block\",\n borderRadius: \"12px\",\n padding: \"8px 12px\",\n alignSelf: \"flex-end\",\n Width: \"100%\",\n backgroundColor: `${context.theme.backgroundColor.secondary}`,\n fontStyle: \"italic\",\n ...alignment\n }\n}\n\nexport const messageTxtStyle = context => {\n\n\treturn {\n\t\tfontSize: \"14px!important\",\n\t\tmargin: \"0\",\n\t\tlineHeight: \"20px!important\",\n\t\tcolor: `${context.theme.color.helpText}`,\n\t};\n};\n\nexport const messageInfoWrapperStyle = (props, loggedInUser) => {\n\n const alignment = (props.message?.sender?.uid === loggedInUser?.uid) ? {\n alignSelf : \"flex-end\",\n } : {\n alignSelf: \"flex-start\",\n };\n\n return {\n ...alignment,\n }\n}\n\nexport const messageTimeStampStyle = context => {\n\n\treturn {\n\t\tdisplay: \"inline-block\",\n\t\tfontSize: \"11px\",\n\t\tfontWeight: 500,\n\t\tlineHeight: \"12px\",\n\t\ttextTransform: \"uppercase\",\n\t\tcolor: `${context.theme.color.helpText}`,\n\t};\n};\n\nexport const messageThumbnailStyle = () => {\n\n return {\n width: \"36px\",\n height: \"36px\",\n margin: \"12px 0\",\n float: \"left\",\n }\n}\n\nexport const messageDetailStyle = (props, loggedInUser) => {\n\n\tlet paddingSpace = {};\n\tif (props.message?.sender?.uid !== loggedInUser?.uid && props.message.receiverType === CometChat.RECEIVER_TYPE.GROUP) {\n\t\tpaddingSpace = {\n\t\t\tpaddingLeft: \"5px\",\n\t\t};\n\t}\n\n\treturn {\n\t\tflex: \"1 1\",\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"column\",\n\t\tposition: \"relative\",\n\t\t...paddingSpace,\n\t};\n};\n\nexport const nameWrapperStyle = (props, loggedInUser) => {\n\n\tlet paddingSpace = {};\n\tif (props.message?.sender?.uid !== loggedInUser?.uid && props.message.receiverType === CometChat.RECEIVER_TYPE.GROUP) {\n\t\tpaddingSpace = {\n\t\t\tpadding: \"3px 5px\",\n\t\t};\n\t}\n\n\treturn {\n\t\talignSelf: \"flex-start\",\n\t\t...paddingSpace,\n\t};\n};\n\nexport const nameStyle = context => {\n\treturn {\n\t\tfontSize: \"10px\",\n\t\tcolor: `${context.theme.color.helpText}`,\n\t};\n};","import React, { useContext, useState, useEffect } from \"react\";\nimport dateFormat from \"dateformat\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatAvatar } from \"../../Shared\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n messageContainerStyle,\n messageWrapperStyle,\n messageTxtWrapperStyle,\n messageTxtStyle,\n messageInfoWrapperStyle,\n messageTimeStampStyle,\n messageThumbnailStyle,\n messageDetailStyle,\n nameWrapperStyle,\n nameStyle\n} from \"./style\";\n\nconst CometChatDeleteMessageBubble = (props) => {\n\n const context = useContext(CometChatContext);\n\n\tconst [loggedInUser, setLoggedInUser] = useState(null);\n\n\tuseEffect(() => {\n\t\tcontext.getLoggedinUser().then(user => {\n\t\t\tsetLoggedInUser({ ...user });\n\t\t});\n\t}, [context]);\n\n let message = null;\n const messageDate = (props.message.sentAt * 1000);\n if (props.message?.sender?.uid === loggedInUser?.uid) {\n\n\t\t\tmessage = (\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t{Translator.translate(\"YOU_DELETED_THIS_MESSAGE\", context.language)}\n\t\t\t\t\t\t

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{dateFormat(messageDate, \"shortTime\")}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t);\n\n\t\t} else {\n\n\t\t\tlet avatar = null,\n\t\t\t\tname = null;\n\t\t\tif (props.message.receiverType === CometChat.RECEIVER_TYPE.GROUP) {\n\t\t\t\tavatar = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t\tname = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{props.message.sender.name}\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\n\t\t\tmessage = (\n\t\t\t\t\n\t\t\t\t\t{avatar}\n\t\t\t\t\t
    \n\t\t\t\t\t\t{name}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t{Translator.translate(\"THIS_MESSAGE_DELETED\", context.language)}\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{dateFormat(messageDate, \"shortTime\")}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n return (\n
    \n
    {message}
    \n
    \n )\n}\n\n// Specifies the default values for props:\nCometChatDeleteMessageBubble.defaultProps = {\n theme: theme\n};\n\nCometChatDeleteMessageBubble.propTypes = {\n\ttheme: PropTypes.object,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatDeleteMessageBubble };","export const pickerStyle = () => {\n\n return {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n \".emoji-mart\": {\n borderRadius: \"5px 5px 0 0\",\n borderBottom: \"0px\",\n \".emoji-mart-category-list\": {\n \" > li\": {\n width: \"50px\",\n height: \"30px\",\n margin: \"8px\",\n \".emoji-mart-emoji\": {\n width: \"50px\",\n height: \"30px\",\n padding: \"0px\",\n \" > span\": {\n width: \"50px!important\",\n height: \"30px!important\",\n cursor: \"pointer\",\n }\n }\n }\n },\n },\n \".emoji-mart-scroll\": {\n height: \"200px\"\n },\n \".emoji-mart-preview, .emoji-mart-search\": {\n display: \"none\"\n },\n \".emoji-mart-category\": {\n \".emoji-mart-emoji:hover:before\": {\n background: \"none\",\n borderRadius: \"0px\",\n }\n }\n }\n}","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { Picker } from \"emoji-mart\";\n\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n pickerStyle\n} from \"./style\";\n\nclass CometChatEmojiKeyboard extends React.Component {\n\n categories = {};\n title = \"\";\n\n constructor(props) {\n\n super(props);\n\n const categories = {\n people: Translator.translate(\"SMILEY_PEOPLE\", props.lang),\n nature: Translator.translate(\"ANIMALES_NATURE\", props.lang),\n foods: Translator.translate(\"FOOD_DRINK\", props.lang),\n activity: Translator.translate(\"ACTIVITY\", props.lang),\n places: Translator.translate(\"TRAVEL_PLACES\", props.lang),\n objects: Translator.translate(\"OBJECTS\", props.lang),\n symbols: Translator.translate(\"SYMBOLS\", props.lang),\n flags: Translator.translate(\"FLAGS\", props.lang)\n }\n\n const title = Translator.translate(\"PICK_YOUR_EMOJI\", props.lang);\n\n this.state = {\n categories: categories, \n title: title\n }\n }\n\n componentDidUpdate(prevProps) {\n\n if(prevProps.lang !== this.props.lang) {\n\n const categories = {\n search: Translator.translate(\"SEARCH\", this.props.lang),\n people: Translator.translate(\"SMILEY_PEOPLE\", this.props.lang),\n nature: Translator.translate(\"ANIMALES_NATURE\", this.props.lang),\n foods: Translator.translate(\"FOOD_DRINK\", this.props.lang),\n activity: Translator.translate(\"ACTIVITY\", this.props.lang),\n places: Translator.translate(\"TRAVEL_PLACES\", this.props.lang),\n objects: Translator.translate(\"OBJECTS\", this.props.lang),\n symbols: Translator.translate(\"SYMBOLS\", this.props.lang),\n flags: Translator.translate(\"FLAGS\", this.props.lang)\n }\n\n const title = Translator.translate(\"PICK_YOUR_EMOJI\", this.props.lang);\n\n this.setState({ categories: { ...categories}, title: title });\n }\n }\n\n render() {\n\n const exclude = [\"search\", \"recent\"];\n return(\n
    \n \n
    \n );\n }\n}\n\n// Specifies the default values for props:\nCometChatEmojiKeyboard.defaultProps = {\n lang: Translator.getDefaultLanguage(),\n};\n\nCometChatEmojiKeyboard.propTypes = {\n lang: PropTypes.string,\n}\n\nexport { CometChatEmojiKeyboard };","export const imageWrapperStyle = (context, closeIcon, img) => {\n\n const heightProps = (img) ? {\n height: \"auto\",\n } : {\n height: \"100%\",\n };\n\n\tconst mq = [...context.theme.breakPoints];\n\n return {\n\t\tposition: \"absolute\",\n\t\ttop: \"0\",\n\t\tleft: \"0\",\n\t\tbottom: \"0\",\n\t\tright: \"0\",\n\t\twidth: \"100%\",\n\t\tpadding: \"1.8% 2.3%\",\n\t\tzIndex: \"9999\",\n\t\tdisplay: \"flex\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tbackground: `url(${closeIcon}) no-repeat 99% 0.8% #fff`,\n\t\tcursor: \"pointer\",\n\t\t...heightProps,\n\t\t[`@media ${mq[1]}, ${mq[2]}`]: {\n\t\t\theight: \"100%\",\n\t\t},\n\t};\n}\n\nexport const imgStyle = image => {\n\n const sizeProps = (!image) ? {\n width: \"24px\",\n height: \"24px\",\n } : {\n\t\tmaxHeight: \"100%\",\n\t};\n\n\treturn {\n\t\tobjectFit: \"contain\",\n\t\t...sizeProps,\n\t};\n};","export default __webpack_public_path__ + \"static/media/ring.f2985674.svg\";","export default __webpack_public_path__ + \"static/media/close.0b0b6f95.svg\";","import React, { useContext } from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\n\nimport { CometChatBackdrop } from \"../../Shared\";\nimport { CometChatContext } from \"../../../util/CometChatContext\";\n\nimport {\n imageWrapperStyle,\n imgStyle,\n} from \"./style\";\n\nimport loadingIcon from \"./resources/ring.svg\";\nimport closeIcon from \"./resources/close.svg\";\n\nconst CometChatImageViewer = (props) => {\n\n const context = useContext(CometChatContext);\n const [image, setImage] = React.useState(null);\n\n let img = new Image();\n img.src = props.message.data.url;\n\n img.onload = () => {\n setImage(img.src);\n };\n\n let imageIcon = null;\n if (image) {\n imageIcon = image;\n } else {\n imageIcon = loadingIcon;\n }\n\n return (\n \n \n
    \n {imageIcon}\n
    \n
    \n );\n}\n\n\n// Specifies the default values for props:\nCometChatImageViewer.defaultProps = {\n\tcount: 0,\n\tclose: () => {},\n};\n\nCometChatImageViewer.propTypes = {\n\tshow: PropTypes.bool,\n\tclose: PropTypes.func,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatImageViewer };","export const messagePreviewContainerStyle = context => {\n\n\treturn {\n\t\tdisplay: \"inline-block\",\n\t\tborderRadius: \"12px\",\n\t\tbackgroundColor: `${context.theme.backgroundColor.white}`,\n\t\tboxShadow: \"0px 1px 2px 1px rgba(0,0,0,0.18)\",\n\t\talignSelf: \"flex-start\",\n\t\twidth: \"auto\",\n\t};\n};\n\nexport const messagePreviewWrapperStyle = () => {\n\n return {\n display: \"flex\",\n flexDirection: \"column\"\n }\n}\n\nexport const previewImageStyle = (img) => {\n\n return {\n background: `url(${img}) no-repeat center center`,\n backgroundSize: \"contain\",\n height: \"150px\",\n margin: \"12px 0\",\n }\n}\n\nexport const previewDataStyle = context => {\n\n\treturn {\n\t\tborderTop: `1px solid ${context.theme.borderColor.primary}`,\n\t\tborderBottom: `1px solid ${context.theme.borderColor.primary}`,\n\t\tpadding: \"16px\",\n\t};\n};\n\nexport const previewTitleStyle = context => {\n\n\treturn {\n\t\twhiteSpace: \"pre-wrap\",\n\t\twordBreak: \"break-word\",\n\t\ttextAlign: \"left\",\n\t\twidth: \"auto\",\n\t\tcolor: `${context.theme.color.helpText}`,\n\t\tfontWeight: \"700\",\n\t\tmarginBottom: \"8px\",\n\t};\n};\n\nexport const previewDescStyle = context => {\n\n\treturn {\n\t\twhiteSpace: \"pre-wrap\",\n\t\twordBreak: \"break-word\",\n\t\ttextAlign: \"left\",\n\t\twidth: \"auto\",\n\t\tcolor: `${context.theme.color.helpText}`,\n\t\tfontStyle: \"italic\",\n\t\tfontSize: \"13px\",\n\t};\n};\n\nexport const previewTextStyle = context => {\n\n\treturn {\n\t\twhiteSpace: \"pre-wrap\",\n\t\twordBreak: \"break-word\",\n\t\ttextAlign: \"left\",\n\t\twidth: \"auto\",\n\t\t\".message__txt__wrapper\": {\n\t\t\tbackgroundColor: \"transparent\",\n\t\t\tcolor: `${context.theme.color.helpText}`,\n\t\t\tfontStyle: \"normal\",\n\t\t\tpadding: \"8px 0\",\n\t\t},\n\t};\n};\n\nexport const previewLinkStyle = context => {\n\n\treturn {\n\t\tdisplay: \"flex\",\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"center\",\n\t\tpadding: \"12px\",\n\t\t\"> a\": {\n\t\t\tdisplay: \"inline-block\",\n\t\t\tcolor: `${context.theme.color.blue}`,\n\t\t\tfontWeight: \"700\",\n\t\t},\n\t};\n};\n","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\n\nimport { checkMessageForExtensionsData } from \"../../../util/common\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n messagePreviewContainerStyle,\n messagePreviewWrapperStyle,\n previewImageStyle,\n previewDataStyle,\n previewTitleStyle,\n previewDescStyle,\n previewLinkStyle,\n previewTextStyle,\n} from \"./style\";\n\nclass CometChatLinkPreview extends React.PureComponent {\n\n static contextType = CometChatContext;\n\n render() {\n\n const linkPreviewData = checkMessageForExtensionsData(this.props.message, \"link-preview\");\n const linkObject = linkPreviewData[\"links\"][0];\n\n const pattern = /(http:|https:)?\\/\\/(www\\.)?(youtube.com|youtu.be)(\\S+)?/;\n const linkText = (linkObject[\"url\"].match(pattern)) ? Translator.translate(\"VIEW_ON_YOUTUBE\", this.context.language) : Translator.translate(\"VISIT\", this.context.language);\n\n return (\n
    \n
    \n
    \n
    \n
    {linkObject[\"title\"]}
    \n
    {linkObject[\"description\"]}
    \n
    {this.props.messageText}
    \n
    \n \n
    \n
    \n );\n }\n}\n\n// Specifies the default values for props:\nCometChatLinkPreview.defaultProps = {\n theme: theme\n};\n\nCometChatLinkPreview.propTypes = {\n\ttheme: PropTypes.object,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatLinkPreview };","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport {\n reactionContainerStyle,\n reactionEmojiStyle\n} from \"./style\";\n\nimport heartIcon from \"./resources/heart.png\";\n\nclass CometChatLiveReactions extends React.PureComponent {\n\n static contextType = CometChatContext;\n \n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.parentElement = React.createRef();\n\n\t\tthis.counter = 0;\n\t\tthis.verticalSpeed = 5;\n\t\tthis.horizontalSpeed = 2;\n\t\tthis.items = [];\n\n\t\tthis.before = Date.now();\n\n\t\tconst reaction = props.reaction ? enums.CONSTANTS[\"LIVE_REACTIONS\"][props.reaction] : enums.CONSTANTS[\"LIVE_REACTIONS\"][\"heart\"];\n\t\tconst reactionImg = {reaction};\n\t\tthis.emojis = Array(6).fill(reactionImg);\n\t}\n\n\tcomponentDidMount() {\n\n\t\tthis.sendMessage();\n\t\tthis.setItems();\n\t\tthis.requestAnimation();\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.timer = null;\n\t}\n\n\tsendMessage = () => {\n\n //fetching the metadata type from constants\n\t\tconst metadata = { type: enums.CONSTANTS[\"METADATA_TYPE_LIVEREACTION\"], reaction: this.props.reaction };\n\n const receiverType = this?.context?.type === CometChat.ACTION_TYPE.TYPE_USER ? CometChat.ACTION_TYPE.TYPE_USER : CometChat.ACTION_TYPE.TYPE_GROUP;\n const receiverId = (this?.context?.type === CometChat.ACTION_TYPE.TYPE_USER) ? this?.context?.item?.uid : this?.context?.item?.guid;\n\n\t\tlet transientMessage = new CometChat.TransientMessage(receiverId, receiverType, metadata);\n\t\tCometChat.sendTransientMessage(transientMessage);\n\t};\n\n\tsetItems = () => {\n\t\tconst width = this.parentElement.offsetWidth;\n\t\tconst height = this.parentElement.offsetHeight;\n\n\t\tconst elements = this.parentElement.querySelectorAll(\".emoji\");\n\n\t\tfor (let i = 0; i < elements.length; i++) {\n\t\t\tconst element = elements[i],\n\t\t\t\telementWidth = element.offsetWidth,\n\t\t\t\telementHeight = element.offsetHeight;\n\n\t\t\tconst item = {\n\t\t\t\telement: element,\n\t\t\t\telementHeight: elementHeight,\n\t\t\t\telementWidth: elementWidth,\n\t\t\t\tySpeed: -this.verticalSpeed,\n\t\t\t\tomega: (2 * Math.PI * this.horizontalSpeed) / (width * 60), //omega= 2Pi*frequency\n\t\t\t\trandom: (Math.random() / 2 + 0.5) * i * 10000, //random time offset\n\t\t\t\tx: function (time) {\n\t\t\t\t\treturn ((Math.sin(this.omega * (time + this.random)) + 1) / 2) * (width - elementWidth);\n\t\t\t\t},\n\t\t\t\ty: height + (Math.random() + 1) * i * elementHeight,\n\t\t\t};\n\n\t\t\tthis.items.push(item);\n\t\t}\n\t};\n\n\trequestAnimation = () => {\n\t\tthis.timer = setTimeout(this.animate, 1000 / 60);\n\t};\n\n\tanimate = () => {\n\t\tif (!this.parentElement) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst height = this.parentElement.offsetHeight;\n\t\tconst time = +new Date(); //little trick, gives unix time in ms\n\n\t\tfor (let i = 0; i < this.items.length; i++) {\n\t\t\tconst item = this.items[i];\n\n\t\t\tconst transformString = \"translate3d(\" + item.x(time) + \"px, \" + item.y + \"px, 0px)\";\n\t\t\titem.element.style.transform = transformString;\n\n\t\t\titem.element.style.visibility = \"visible\";\n\n\t\t\tif (item.y <= height) {\n\t\t\t\titem.element.classList.add(\"fade\");\n\t\t\t}\n\n\t\t\titem.y += item.ySpeed;\n\t\t}\n\n\t\tthis.requestAnimation();\n\t};\n\n\trender() {\n\t\tconst emojis = this.emojis.map((emoji, index) => (\n\t\t\t\n\t\t\t\t{emoji}\n\t\t\t\n\t\t));\n\t\treturn (\n\t\t\t
    (this.parentElement = el)} css={reactionContainerStyle()}>\n\t\t\t\t{emojis}\n\t\t\t
    \n\t\t);\n\t}\n}\n\nexport { CometChatLiveReactions };","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAUCAYAAACXtf2DAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAGKADAAQAAAABAAAAFAAAAAAnxZisAAACpElEQVQ4Ea1VzUsVURQ/5868UrEg/AMy0NTMRQRBJfIQszKxgh5ByzbVIooiiDbZBwUtXAWJtGgRJW0MQsxnxfhRIbgpsqcQtajoA8uITGfu3Hs6Z+zJU3pq+n4wc+fee87vd+bcM2cQ5mB0Z+0WMuERQNiNgO+UgtYAgs7K7uffM01fVlevyc9391iAo5bsOkT1gPdvlvd4Q5l2mJ68bahdG2rTwvMmB9HV1gKP0WWA3oSWzlc86rsj9qm6mkOuwgsKsMQSgeErxpEYS5oQOpSLp0u7vA9iGwmkdsWLlaGuPKXKJw3TyU4GYizEYG+OFglXAt7gOWomzoRY5TsO+Na+8pEaqpJ97/FeIuFUjX++X+C4jb+ZPBsUi3C0Wvb5OSaRZ0MBi0xY01GxvfYApuprtjkE/ZZAZXeZpkrnczF2Ek9oaKtCi2c4ogXJRUKIFyJP2zmolHLUSZeAGjWXQq4RcpHwMTVxIeCwVEuuIWfGSPGIl/9OcqohnA7QVWUCeMg1PyJ1nCsIl7ZmVIcqqSo97xen6aK8UC4SleZB5VwS7ijs8p7e9sDQLflIlos8R4FPdLs9Gb8rXJEAq5K7YurEpLHeckTEd8rYp77G483QHNXmTOJLuwZ/ukof9I0dWIqI+PjWDFqHEps870c6EzMCslCSfPYVQtzvG9MpDos5E7GZJrc9gfX3buju/5Qml3GWgCyUed7YtwmdYJHrLqqom8r6vyDfT0whsG3bqrzV+6oeD36ZazdvkCN1NYe5nq8xSRHndpYvd14Igca5dZxdn+xtm7WZMZlXQOxe18c3ukQtLLJDc0cUSPsOiJ6AMqfKugdeRItZbgsKiN/Q5s2xwqLCYw7hOWl3/FO5oj+OtVYODwdZeJe2LD+mVDxe/D/efwCuAQs2cnkFkQAAAABJRU5ErkJggg==\"","export const reactionContainerStyle = () => {\n\n return {\n width: \"100px\",\n height: \"calc(100% - 120px)\",\n overflow: \"hidden\",\n position: \"absolute\",\n top: \"70px\",\n right: \"0\",\n }\n}\n\nexport const reactionEmojiStyle = () => {\n\n return {\n position: \"absolute\",\n color: \"#DD4144\",\n visibility: \"hidden\",\n width: \"20px\",\n height: \"20px\",\n opacity: \"1\",\n transition: \"opacity 3s\",\n \"&.fade\": {\n opacity: \"0\"\n }\n }\n}","import { CometChat } from \"@cometchat-pro/chat\";\n\nexport const messageActionStyle = (props, context, loggedInUser) => {\n\n const topPos = (props.message.sender?.uid !== loggedInUser?.uid && props.message.receiverType === CometChat.RECEIVER_TYPE.GROUP) ? { top: \"-4px\" } : { top: \"-30px\" };\n\n const alignment = (props.message?.sender?.uid === loggedInUser?.uid) ? { alignSelf: \"flex-end\" } : { alignSelf: \"flex-start\" };\n const direction = (props.message?.sender?.uid === loggedInUser?.uid) ? { \n \"li:not(:last-of-type)\": {\n marginRight: \"8px\",\n }\n\n } : {\n flexDirection: \"row-reverse\",\n \"li:not(:first-of-type)\": {\n marginRight: \"8px\",\n }\n\n };\n\n return {\n position: \"absolute\",\n zIndex: \"1\",\n display: \"flex\",\n listStyleType: \"none\",\n padding: \"8px\",\n margin: \"0\",\n height: \"35px\",\n border: `1px solid ${context.theme.borderColor.primary}`,\n backgroundColor: `${context.theme.backgroundColor.white}`,\n borderRadius: \"4px\",\n alignItems: \"center\",\n justifyContent: \"center\",\n ...alignment,\n ...topPos,\n ...direction,\n }\n}\n\nexport const actionGroupStyle = (props) => {\n\n return {\n display: \"flex\",\n position: \"relative\",\n }\n}\n\nexport const groupButtonStyle = (img, context, deleteOption) => {\n\n const backgroundProp = (deleteOption) ? {\n backgroundColor: `${context.theme.color.red}!important`\n } : {\n backgroundColor: `${context.theme.secondaryTextColor}!important`\n };\n\n return {\n outline: \"0\",\n border: \"0\",\n height: \"24px\",\n width: \"24px\",\n borderRadius: \"4px\",\n alignItems: \"center\",\n display: \"inline-flex\",\n justifyContent: \"center\",\n position: \"relative\",\n mask: `url(${img}) center center no-repeat`,\n ...backgroundProp\n }\n}","export default __webpack_public_path__ + \"static/media/threaded-message.d845cc3f.svg\";","export default __webpack_public_path__ + \"static/media/delete.9436ff08.svg\";","export default __webpack_public_path__ + \"static/media/edit.35ebcb35.svg\";","export default __webpack_public_path__ + \"static/media/reactions.db072cb2.svg\";","export default __webpack_public_path__ + \"static/media/message-translate.80731563.svg\";","export default __webpack_public_path__ + \"static/media/send-message-in-private.293d36b5.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport * as enums from \"../../../util/enums.js\";\nimport { CometChatContext } from \"../../../util/CometChatContext\";\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n\tmessageActionStyle,\n\tactionGroupStyle,\n\tgroupButtonStyle\n} from \"./style\";\n\nimport startThreadIcon from \"./resources/threaded-message.svg\";\nimport deleteIcon from \"./resources/delete.svg\";\nimport editIcon from \"./resources/edit.svg\";\nimport reactIcon from \"./resources/reactions.svg\";\nimport translateIcon from \"./resources/message-translate.svg\";\nimport sendMessageInPrivateIcon from \"./resources/send-message-in-private.svg\";\n\n\nclass CometChatMessageActions extends React.PureComponent {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props, context) {\n\t\tsuper(props, context);\n\n\t\tthis.state = {\n\t\t\tloggedInUser: null,\n\t\t\tenableMessageReaction: false,\n\t\t\tenableThreadedChats: false,\n\t\t\tenableDeleteMessage: false,\n\t\t\tenableEditMessage: false,\n\t\t\tenableTranslateMessage: false,\n\t\t\tenableMessageInPrivate: false,\n\t\t\tenableDeleteMessageForModerator: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\n\t\tthis.context.getLoggedinUser().then(user => {\n\n\t\t\tthis.setState({loggedInUser: { ...user }});\n\n\t\t}).then(() => {\n\n\t\t\tthis.enableMessageReaction();\n\t\t\tthis.enableThreadedChats();\n\t\t\tthis.enableDeleteMessage();\n\t\t\tthis.enableDeleteMessageForModerator();\n\t\t\tthis.enableEditMessage();\n\t\t\tthis.enableTranslateMessage();\n\t\t\tthis.enableMessageInPrivate();\n\t\t});\n\t}\n\n\ttoggleTooltip = (event, flag) => {\n\t\tconst elem = event.target;\n\n\t\tif (flag) {\n\t\t\telem.setAttribute(\"title\", elem.dataset.title);\n\t\t} else {\n\t\t\telem.removeAttribute(\"title\");\n\t\t}\n\t};\n\n\tenableMessageReaction = () => {\n\t\t/**\n\t\t * If reacting to messages feature is disabled\n\t\t */\n\t\tthis.context.FeatureRestriction.isReactionsEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response === true) {\n\t\t\t\t\tthis.setState({ enableMessageReaction: true });\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState({ enableMessageReaction: false });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tthis.setState({ enableMessageReaction: false });\n\t\t\t});\n\t};\n\n\tenableThreadedChats = () => {\n\t\t/**\n\t\t * If threaded chats are open, return false\n\t\t */\n\t\tif (this.props.message.hasOwnProperty(\"parentMessageId\") === true) {\n\t\t\treturn false;\n\t\t}\n\n\t\t/**\n\t\t * If threaded replies feature is disabled\n\t\t */\n\t\tthis.context.FeatureRestriction.isThreadedMessagesEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response === true) {\n\t\t\t\t\tthis.setState({ enableThreadedChats: true });\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState({ enableThreadedChats: false });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tthis.setState({ enableThreadedChats: false });\n\t\t\t});\n\t};\n\n\tenableDeleteMessage = () => {\n\t\tthis.context.FeatureRestriction.isDeleteMessageEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response === true) {\n\t\t\t\t\tthis.setState({ enableDeleteMessage: true });\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState({ enableDeleteMessage: false });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tthis.setState({ enableDeleteMessage: false });\n\t\t\t});\n\t};\n\n\tenableDeleteMessageForModerator = () => {\n\t\tthis.context.FeatureRestriction.isDeleteMemberMessageEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response === true) {\n\t\t\t\t\tthis.setState({ enableDeleteMessageForModerator: true });\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState({ enableDeleteMessageForModerator: false });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tthis.setState({ enableDeleteMessageForModerator: false });\n\t\t\t});\n\t};\n\n\tenableEditMessage = () => {\n\t\t/**\n\t\t * If the message is not sent by the logged in user or the message type is not text\n\t\t */\n\t\tif (this.props.message.sender?.uid !== this.state.loggedInUser?.uid || this.props.message.type !== CometChat.MESSAGE_TYPE.TEXT) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.context.FeatureRestriction.isEditMessageEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response === true) {\n\t\t\t\t\tthis.setState({ enableEditMessage: true });\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState({ enableEditMessage: false });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tthis.setState({ enableEditMessage: false });\n\t\t\t});\n\t};\n\n\tenableTranslateMessage = () => {\n\t\t/**\n\t\t * message type is not text\n\t\t */\n\t\tif (this.props.message.type !== CometChat.MESSAGE_TYPE.TEXT) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.context.FeatureRestriction.isMessageTranslationEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response === true) {\n\t\t\t\t\tthis.setState({ enableTranslateMessage: true });\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState({ enableTranslateMessage: false });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tthis.setState({ enableTranslateMessage: false });\n\t\t\t});\n\t};\n\n\t/**\n\t * If message in private feature is enabled\n\t */\n\tenableMessageInPrivate = () => {\n\t\tthis.context.FeatureRestriction.isMessageInPrivateEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response === true) {\n\t\t\t\t\tthis.setState({ enableMessageInPrivate: true });\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState({ enableMessageInPrivate: false });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tthis.setState({ enableMessageInPrivate: false });\n\t\t\t});\n\t};\n\n\tsendMessageInPrivate = () => {\n\t\t\n\t\tconst item = this.props.message?.sender;\n\t\tconst type = CometChat.ACTION_TYPE.TYPE_USER;\n\n\t\tthis.context.setTypeAndItem(type, item);\n\t};\n\n\treactToMessage = () => {\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"REACT_TO_MESSAGE\"], this.props.message);\n\t};\n\n\tviewThread = () => {\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"VIEW_THREADED_MESSAGE\"], this.props.message);\n\t};\n\n\tdeleteMessage = () => {\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"DELETE_MESSAGE\"], this.props.message);\n\t};\n\n\teditMessage = () => {\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"EDIT_MESSAGE\"], this.props.message);\n\t};\n\n\ttranslateMessage = () => {\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"TRANSLATE_MESSAGE\"], this.props.message);\n\t};\n\n\trender() {\n\t\t//don't show the tooltip while the message is being sent\n\t\tif (this.props.message.hasOwnProperty(\"sentAt\") === false) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet reactToMessage = null;\n\t\tif (this.state.enableMessageReaction) {\n\t\t\treactToMessage = (\n\t\t\t\t
  • \n\t\t\t\t\t this.toggleTooltip(event, true)}\n\t\t\t\t\t\tonMouseLeave={event => this.toggleTooltip(event, false)}\n\t\t\t\t\t\tcss={groupButtonStyle(reactIcon, this.context)}\n\t\t\t\t\t\tclassName=\"group__button button__reacttomessage\"\n\t\t\t\t\t\tdata-title={Translator.translate(\"ADD_REACTION\", this.context.language)}\n\t\t\t\t\t\tonClick={this.reactToMessage}>\n\t\t\t\t
  • \n\t\t\t);\n\t\t}\n\n\t\tlet threadedChats = null;\n\t\tif (this.state.enableThreadedChats) {\n\t\t\tthreadedChats = (\n\t\t\t\t
  • \n\t\t\t\t\t this.toggleTooltip(event, true)}\n\t\t\t\t\t\tonMouseLeave={event => this.toggleTooltip(event, false)}\n\t\t\t\t\t\tcss={groupButtonStyle(startThreadIcon, this.context)}\n\t\t\t\t\t\tclassName=\"group__button button__threadedchats\"\n\t\t\t\t\t\tdata-title={this.props.message.replyCount ? Translator.translate(\"REPLY_TO_THREAD\", this.context.language) : Translator.translate(\"REPLY_IN_THREAD\", this.context.language)}\n\t\t\t\t\t\tonClick={this.viewThread}>\n\t\t\t\t
  • \n\t\t\t);\n\t\t}\n\n\t\t/**\n\t\t * in one-on-one chat, allow deleting self messages if delete feature is enabled\n\t\t * in group chat, allow deleting other's messages for moderators and admins if moderator delete feature && delete feature is enabled\n\t\t */\n\t\tlet deleteMessage = null;\n\t\tif (\n\t\t\t(this.props.message.sender?.uid === this.state.loggedInUser?.uid && this.state.enableDeleteMessage) ||\n\t\t\t(this.context.type === CometChat.ACTION_TYPE.TYPE_GROUP &&\n\t\t\t\tthis.props.message.sender?.uid !== this.state.loggedInUser?.uid &&\n\t\t\t\tthis.context.item.hasOwnProperty(\"scope\") &&\n\t\t\t\tthis.context.item.scope !== CometChat.GROUP_MEMBER_SCOPE.PARTICIPANT &&\n\t\t\t\tthis.state.enableDeleteMessageForModerator &&\n\t\t\t\tthis.state.enableDeleteMessage)\n\t\t) {\n\t\t\tdeleteMessage = (\n\t\t\t\t
  • \n\t\t\t\t\t this.toggleTooltip(event, true)}\n\t\t\t\t\t\tonMouseLeave={event => this.toggleTooltip(event, false)}\n\t\t\t\t\t\tcss={groupButtonStyle(deleteIcon, this.context, 1)}\n\t\t\t\t\t\tclassName=\"group__button button__delete\"\n\t\t\t\t\t\tdata-title={Translator.translate(\"DELETE_MESSAGE\", this.context.language)}\n\t\t\t\t\t\tonClick={this.deleteMessage}>\n\t\t\t\t
  • \n\t\t\t);\n\t\t}\n\n\t\tlet editMessage = null;\n\t\tif (this.state.enableEditMessage) {\n\t\t\teditMessage = (\n\t\t\t\t
  • \n\t\t\t\t\t this.toggleTooltip(event, true)}\n\t\t\t\t\t\tonMouseLeave={event => this.toggleTooltip(event, false)}\n\t\t\t\t\t\tcss={groupButtonStyle(editIcon, this.context)}\n\t\t\t\t\t\tclassName=\"group__button button__edit\"\n\t\t\t\t\t\tdata-title={Translator.translate(\"EDIT_MESSAGE\", this.context.language)}\n\t\t\t\t\t\tonClick={this.editMessage}>\n\t\t\t\t
  • \n\t\t\t);\n\t\t}\n\n\t\tlet translateMessage = null;\n\t\tif (this.state.enableTranslateMessage) {\n\t\t\ttranslateMessage = (\n\t\t\t\t
  • \n\t\t\t\t\t this.toggleTooltip(event, true)}\n\t\t\t\t\tonMouseLeave={event => this.toggleTooltip(event, false)}\n\t\t\t\t\tcss={groupButtonStyle(translateIcon, this.context)}\n\t\t\t\t\tclassName=\"group__button button__translate\"\n\t\t\t\t\tdata-title={Translator.translate(\"TRANSLATE_MESSAGE\", this.context.language)}\n\t\t\t\t\tonClick={this.translateMessage}>\n\t\t\t\t
  • \n\t\t\t);\n\t\t}\n\n\t\t/**\n\t\t * if send message in private feature is enabled, if group chat window is open, and messages are not sent by the loggedin user...\n\t\t */\n\t\tlet messageInPrivate = null;\n\t\tif (this.state.enableMessageInPrivate === true && this.context.type === CometChat.ACTION_TYPE.TYPE_GROUP && this.props.message?.sender?.uid !== this.state.loggedInUser?.uid) {\n\t\t\tmessageInPrivate = (\n\t\t\t\t
  • \n\t\t\t\t\t this.toggleTooltip(event, true)}\n\t\t\t\t\t\tonMouseLeave={event => this.toggleTooltip(event, false)}\n\t\t\t\t\t\tcss={groupButtonStyle(sendMessageInPrivateIcon, this.context)}\n\t\t\t\t\t\tclassName=\"group__button button__translate\"\n\t\t\t\t\t\tdata-title={Translator.translate(\"SEND_MESSAGE_IN_PRIVATE\", this.context.language)}\n\t\t\t\t\t\tonClick={this.sendMessageInPrivate}>\n\t\t\t\t
  • \n\t\t\t);\n\t\t}\n\n\t\tlet tooltip = (\n\t\t\t
      \n\t\t\t\t{reactToMessage}\n\t\t\t\t{threadedChats}\n\t\t\t\t{editMessage}\n\t\t\t\t{deleteMessage}\n\t\t\t\t{messageInPrivate}\n\t\t\t\t{translateMessage}\n\t\t\t
    \n\t\t);\n\n\t\tif (threadedChats === null && deleteMessage === null && editMessage === null && reactToMessage === null && translateMessage === null && messageInPrivate === null) {\n\t\t\ttooltip = null;\n\t\t}\n\n\t\treturn tooltip;\n\t}\n}\n\n// Specifies the default values for props:\nCometChatMessageActions.defaultProps = {\n\ttheme: theme,\n\tactionGenerated: {},\n};\n\nCometChatMessageActions.propTypes = {\n\ttheme: PropTypes.object.isRequired,\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatMessageActions };","export const chatComposerStyle = context => {\n\n\treturn {\n\t\tpadding: \"16px\",\n\t\tbackgroundColor: `${context.theme.backgroundColor.white}`,\n\t\tzIndex: \"1\",\n\t\torder: \"3\",\n\t\tposition: \"relative\",\n\t\tflex: \"none\",\n\t\tminHeight: \"105px\",\n\t};\n};\n\nexport const editPreviewContainerStyle = (context, keyframes) => {\n\n\tconst slideAnimation = keyframes`\n from {\n bottom: -60px\n }\n to {\n bottom: 0px\n }`;\n\n\treturn {\n\t\tpadding: \"7px\",\n\t\tbackgroundColor: `${context.theme.backgroundColor.white}`,\n\t\tborderColor: `${context.theme.borderColor.primary}`,\n\t\tborderWidth: \"1px 1px 1px 5px\",\n\t\tborderStyle: \"solid\",\n\t\tcolor: `${context.theme.color.helpText}`,\n\t\tfontSize: \"13px\",\n\t\tanimation: `${slideAnimation} 0.5s ease-out`,\n\t\tposition: \"relative\",\n\t};\n};\n\nexport const previewHeadingStyle = () => {\n\n return {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\"\n }\n}\n\nexport const previewTextStyle = () => {\n\n return {\n padding: \"5px 0\",\n }\n}\n\nexport const previewCloseStyle = (img, context) => {\n\n return {\n width: \"24px\",\n height: \"24px\",\n borderRadius: \"50%\",\n cursor: \"pointer\",\n mask: `url(${img}) center center no-repeat`,\n backgroundColor: `${context.theme.primaryColor}`\n }\n}\n\nexport const composerInputStyle = () => {\n\n return {\n display: \"flex\",\n width: \"100%\",\n flexDirection: \"row\",\n alignItems: \"flex-end\",\n position: \"relative\",\n zIndex: \"2\",\n padding: \"0\",\n minHeight: \"85px\",\n }\n}\n\nexport const inputInnerStyle = (props, state, context) => {\n\n const borderRadiusVal = (state.emojiViewer || state.stickerViewer) ? {\n borderRadius: \"0 0 8px 8px\",\n } : {\n borderRadius: \"8px\",\n };\n\n return {\n flex: \"1 1 auto\",\n position: \"relative\",\n outline: \"none\",\n border: `1px solid ${context.theme.borderColor.primary}`,\n backgroundColor: `${context.theme.backgroundColor.white}`,\n display: \"flex\",\n flexDirection: \"column\",\n width: \"100%\",\n minHeight: \"85px\",\n ...borderRadiusVal\n }\n}\n\nexport const messageInputStyle = (disabled) => {\n\n const disabledState = (disabled) ? {\n pointerEvents : \"none\",\n opacity: \"0.4\"\n } : {};\n\n return {\n width: \"100%\",\n fontSize: \"15px\",\n lineHeight: \"20px\",\n fontWeight: \"400\",\n padding: \"16px\",\n outline: \"none\",\n overflowX: \"hidden\",\n overflowY: \"auto\",\n position: \"relative\",\n whiteSpace: \"pre-wrap\",\n wordWrap: \"break-word\",\n zIndex: \"1\",\n minHeight: \"50px\",\n maxHeight: \"100px\",\n userSelect: \"text\",\n ...disabledState,\n '&:empty:before': {\n content: \"attr(placeholder)\",\n color: \"rgb(153, 153, 153)\",\n pointerEvents: \"none\",\n display: \"block\", /* For Firefox */\n }\n }\n}\n\nexport const inputStickyStyle = (disabled, attachments, context) => {\n\n const disabledState = (disabled) ? {\n pointerEvents: \"none\",\n } : {};\n\n const flexDirectionProp = (attachments === null) ? {\n flexDirection: \"row-reverse\",\n } : {};\n\n return {\n padding: \"8px 16px\",\n // height: \"40px\",\n borderTop: `1px solid ${context.theme.borderColor.primary}`,\n backgroundColor: `${context.theme.backgroundColor.grey}`,\n display: \"flex\",\n justifyContent: \"space-between\",\n ...flexDirectionProp,\n ...disabledState,\n '&:empty:before': {\n pointerEvents: \"none\",\n }\n }\n}\n\nexport const stickyAttachmentStyle = () => {\n\n return {\n display: \"flex\",\n width: \"auto\"\n }\n}\n\nexport const attachmentIconStyle = () => {\n\n return {\n margin: \"auto 0\",\n width: \"24px\",\n height: \"20px\",\n cursor: \"pointer\",\n }\n}\n\nexport const filePickerStyle = (state) => {\n\n const active = (state.showFilePicker) ? {\n width: \"calc(100% - 20px)\",\n opacity: \"1\",\n } : {};\n\n return {\n width: \"0\",\n borderRadius: \"8px\",\n overflow: \"hidden\",\n zIndex: \"1\",\n opacity: \"0\",\n transition: \"width 0.5s linear\",\n ...active,\n }\n}\n\nexport const fileListStyle = () => {\n\n return {\n width: \"100%\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n padding: \"0 0 0 16px\",\n }\n}\n\nexport const fileItemStyle = (img, context) => {\n\n return {\n height: \"24px\",\n cursor: \"pointer\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n margin: \"0 16px 0 0\",\n \" > i\": {\n width: \"24px\",\n height: \"24px\",\n display: \"inline-block\",\n mask: `url(${img}) center center no-repeat`,\n backgroundColor: `${context.theme.secondaryTextColor}`\n },\n ' > input': {\n display: \"none\",\n },\n }\n}\n\nexport const stickyAttachButtonStyle = (img, context) => {\n\n return {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n cursor: \"pointer\",\n width: \"24px\",\n \"i\": {\n width: \"24px\",\n height: \"24px\",\n display: \"inline-block\",\n mask: `url(${img}) center center no-repeat`,\n backgroundColor: `${context.theme.secondaryTextColor}`\n }\n }\n}\n\nexport const stickyButtonStyle = (state) => {\n\n const active = (state.showFilePicker) ? {\n display: \"none\",\n } : {\n display: \"flex\",\n };\n\n return {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n cursor: \"pointer\",\n width: \"auto\",\n ...active\n }\n}\n\nexport const emojiButtonStyle = (img, context) => {\n\n return {\n height: \"24px\",\n cursor: \"pointer\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n margin: \"0 0 0 16px\",\n \"i\": {\n width: \"24px\",\n height: \"24px\",\n display: \"inline-block\",\n mask: `url(${img}) center center no-repeat`,\n backgroundColor: `${context.theme.secondaryTextColor}`\n }\n }\n}\n\nexport const sendButtonStyle = (img, context) => {\n\n return {\n height: \"24px\",\n cursor: \"pointer\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n margin: \"0 0 0 16px\",\n \"i\": {\n width: \"24px\",\n height: \"24px\",\n display: \"inline-block\",\n mask: `url(${img}) center center no-repeat`,\n backgroundColor: `${context.theme.primaryColor}`\n }\n }\n}\n\nexport const reactionBtnStyle = () => {\n\n return {\n cursor: \"pointer\",\n height: \"24px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n margin: \"0 0 0 16px\",\n }\n}\n\nexport const stickerBtnStyle = (img, context) => {\n\n return {\n cursor: \"pointer\",\n height: \"24px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n margin: \"0 0 0 16px\",\n \"i\": {\n width: \"24px\",\n height: \"24px\",\n display: \"inline-block\",\n mask: `url(${img}) center center no-repeat`,\n backgroundColor: `${context.theme.secondaryTextColor}`\n }\n }\n}","export default __webpack_public_path__ + \"static/media/add-circle-filled.a7750fa2.svg\";","export default __webpack_public_path__ + \"static/media/video.2493964e.svg\";","export default __webpack_public_path__ + \"static/media/audio-file.5e5200f5.svg\";","export default __webpack_public_path__ + \"static/media/file-upload.a68d497b.svg\";","export default __webpack_public_path__ + \"static/media/image.74b5a891.svg\";","export default __webpack_public_path__ + \"static/media/emoji.c7a39969.svg\";","export default __webpack_public_path__ + \"static/media/send-message.1fcc4bdc.svg\";","export default __webpack_public_path__ + \"static/media/polls.30ae277d.svg\";","export default __webpack_public_path__ + \"static/media/stickers.d5d3db8f.svg\";","export default __webpack_public_path__ + \"static/media/close.0b0b6f95.svg\";","export default __webpack_public_path__ + \"static/media/collaborative-document.3c15f5d4.svg\";","export default __webpack_public_path__ + \"static/media/collaborative-whiteboard.78916c4e.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx, keyframes } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport \"emoji-mart/css/emoji-mart.css\";\n\nimport { CometChatSmartReplyPreview, CometChatCreatePoll, CometChatStickerKeyboard } from \"../Extensions\";\nimport { CometChatEmojiKeyboard } from \"../\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport { checkMessageForExtensionsData, ID, getUnixTimestamp } from \"../../../util/common\";\nimport * as enums from \"../../../util/enums.js\";\nimport { SoundManager } from \"../../../util/SoundManager\";\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n\tchatComposerStyle,\n\teditPreviewContainerStyle,\n\tpreviewHeadingStyle,\n\tpreviewCloseStyle,\n\tpreviewTextStyle,\n\tcomposerInputStyle,\n\tinputInnerStyle,\n\tmessageInputStyle,\n\tinputStickyStyle,\n\tstickyAttachmentStyle,\n\tfilePickerStyle,\n\tfileListStyle,\n\tfileItemStyle,\n\tstickyAttachButtonStyle,\n\tstickyButtonStyle,\n\temojiButtonStyle,\n\tsendButtonStyle,\n\treactionBtnStyle,\n\tstickerBtnStyle\n} from \"./style\";\n\nimport roundedPlus from \"./resources/add-circle-filled.svg\";\nimport videoIcon from \"./resources/video.svg\";\nimport audioIcon from \"./resources/audio-file.svg\";\nimport docIcon from \"./resources/file-upload.svg\";\nimport imageIcon from \"./resources/image.svg\";\nimport insertEmoticon from \"./resources/emoji.svg\";\nimport sendBlue from \"./resources/send-message.svg\";\nimport pollIcon from \"./resources/polls.svg\";\nimport stickerIcon from \"./resources/stickers.svg\";\nimport closeIcon from \"./resources/close.svg\";\nimport documentIcon from \"./resources/collaborative-document.svg\";\nimport whiteboardIcon from \"./resources/collaborative-whiteboard.svg\";\nimport heartIcon from \"./resources/heart.png\";\n\nclass CometChatMessageComposer extends React.PureComponent {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.imageUploaderRef = React.createRef();\n\t\tthis.fileUploaderRef = React.createRef();\n\t\tthis.audioUploaderRef = React.createRef();\n\t\tthis.videoUploaderRef = React.createRef();\n\t\tthis.messageInputRef = React.createRef();\n\t\tthis.liveReactionInProgress = false;\n\t\tthis.isTyping = false;\n\n\t\tthis.state = {\n\t\t\tshowFilePicker: false,\n\t\t\tmessageInput: \"\",\n\t\t\tmessageType: \"\",\n\t\t\temojiViewer: false,\n\t\t\tcreatePoll: false,\n\t\t\tmessageToBeEdited: \"\",\n\t\t\treplyPreview: null,\n\t\t\tstickerViewer: false,\n\t\t\tmessageToReact: \"\",\n\t\t\tshareDocument: false,\n\t\t\tshareWhiteboard: false,\n\t\t\tenableLiveReaction: false,\n\t\t\tenablePolls: false,\n\t\t\tenableTypingIndicator: false,\n\t\t\tenableStickers: false,\n\t\t\tenablePhotosVideos: false,\n\t\t\tenableFiles: false,\n\t\t\tenableEmojis: false,\n\t\t\tenableCollaborativeDocument: false,\n\t\t\tenableCollaborativeWhiteboard: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\tCometChat.getLoggedinUser()\n\t\t\t.then(user => (this.loggedInUser = user))\n\t\t\t.catch(error => this.props.actionGenerated(enums.ACTIONS[\"ERROR\"], [], \"SOMETHING_WRONG\"));\n\n\t\tthis.item = this.context.type === CometChat.ACTION_TYPE.TYPE_USER || this.context.type === CometChat.ACTION_TYPE.TYPE_GROUP ? this.context.item : null;\n\t\tthis.enableLiveReaction();\n\t\tthis.enablePolls();\n\t\tthis.enableTypingIndicator();\n\t\tthis.enableStickers();\n\t\tthis.enablePhotosVideos();\n\t\tthis.enableFiles();\n\t\tthis.enableEmojis();\n\t\tthis.enableCollaborativeDocument();\n\t\tthis.enableCollaborativeWhiteboard();\n\t}\n\n\tcomponentDidUpdate(prevProps, prevState) {\n\t\tif (prevProps.messageToBeEdited !== this.props.messageToBeEdited) {\n\t\t\tconst messageToBeEdited = this.props.messageToBeEdited;\n\n\t\t\tthis.setState({ messageInput: messageToBeEdited, messageToBeEdited: messageToBeEdited });\n\n\t\t\tconst element = this.messageInputRef.current;\n\t\t\tif (messageToBeEdited) {\n\t\t\t\tlet messageText = messageToBeEdited.text;\n\n\t\t\t\t//xss extensions data\n\t\t\t\tconst xssData = checkMessageForExtensionsData(messageToBeEdited, \"xss-filter\");\n\t\t\t\tif (xssData && xssData.hasOwnProperty(\"sanitized_text\") && xssData.hasOwnProperty(\"hasXSS\") && xssData.hasXSS === \"yes\") {\n\t\t\t\t\tmessageText = xssData.sanitized_text;\n\t\t\t\t}\n\n\t\t\t\telement.focus();\n\t\t\t\telement.textContent = \"\";\n\t\t\t\tthis.pasteHtmlAtCaret(messageText, false);\n\t\t\t} else {\n\t\t\t\telement.textContent = \"\";\n\t\t\t}\n\t\t}\n\n\t\tif (prevProps.replyPreview !== this.props.replyPreview) {\n\t\t\tthis.setState({ replyPreview: this.props.replyPreview });\n\t\t}\n\n\t\tconst previousMessageStr = JSON.stringify(prevProps.messageToReact);\n\t\tconst currentMessageStr = JSON.stringify(this.props.messageToReact);\n\n\t\tif (previousMessageStr !== currentMessageStr) {\n\t\t\tthis.setState({ messageToReact: this.props.messageToReact });\n\t\t}\n\n\t\tif (this.context.item !== this.item) {\n\t\t\tthis.messageInputRef.current.textContent = \"\";\n\t\t\tthis.setState({ stickerViewer: false, emojiViewer: false, replyPreview: null, messageToBeEdited: \"\", messageInput: \"\" });\n\n\t\t\tthis.focusOnMessageComposer();\n\t\t}\n\n\t\tif (prevState.messageInput !== this.state.messageInput) {\n\t\t\tthis.focusOnMessageComposer();\n\t\t}\n\n\t\tthis.item = this.context.type === CometChat.ACTION_TYPE.TYPE_USER || this.context.type === CometChat.ACTION_TYPE.TYPE_GROUP ? this.context.item : null;\n\t\tthis.enableLiveReaction();\n\t\tthis.enablePolls();\n\t\tthis.enableTypingIndicator();\n\t\tthis.enableStickers();\n\t\tthis.enablePhotosVideos();\n\t\tthis.enableFiles();\n\t\tthis.enableEmojis();\n\t\tthis.enableCollaborativeDocument();\n\t\tthis.enableCollaborativeWhiteboard();\n\t}\n\n\t/**\n\t * if live reactions feature is disabled\n\t */\n\tenableLiveReaction = () => {\n\t\tthis.context.FeatureRestriction.isLiveReactionsEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enableLiveReaction) {\n\t\t\t\t\tthis.setState({ enableLiveReaction: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableLiveReaction !== false) {\n\t\t\t\t\tthis.setState({ enableLiveReaction: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\t/**\n\t * if polls feature is disabled\n\t */\n\tenablePolls = () => {\n\t\tthis.context.FeatureRestriction.isPollsEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enablePolls) {\n\t\t\t\t\tthis.setState({ enablePolls: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enablePolls !== false) {\n\t\t\t\t\tthis.setState({ enablePolls: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\t/**\n\t * if typing indicator feature is disabled\n\t */\n\tenableTypingIndicator = () => {\n\t\tthis.context.FeatureRestriction.isTypingIndicatorsEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enableTypingIndicator) {\n\t\t\t\t\tthis.setState({ enableTypingIndicator: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableTypingIndicator !== false) {\n\t\t\t\t\tthis.setState({ enableTypingIndicator: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\t/**\n\t * if stickers feature is disabled\n\t */\n\tenableStickers = () => {\n\t\tthis.context.FeatureRestriction.isStickersEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enableStickers) {\n\t\t\t\t\tthis.setState({ enableStickers: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableStickers !== false) {\n\t\t\t\t\tthis.setState({ enableStickers: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\t/**\n\t * if uploding photos, videos feature is disabled\n\t */\n\tenablePhotosVideos = () => {\n\t\tthis.context.FeatureRestriction.isPhotosVideosEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enablePhotosVideos) {\n\t\t\t\t\tthis.setState({ enablePhotosVideos: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enablePhotosVideos !== false) {\n\t\t\t\t\tthis.setState({ enablePhotosVideos: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\t/**\n\t * if uploding files feature is disabled\n\t */\n\tenableFiles = () => {\n\t\tthis.context.FeatureRestriction.isFilesEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enableFiles) {\n\t\t\t\t\tthis.setState({ enableFiles: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableFiles !== false) {\n\t\t\t\t\tthis.setState({ enableFiles: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\t/**\n\t * if sending emojis feature is disabled\n\t */\n\tenableEmojis = () => {\n\t\tthis.context.FeatureRestriction.isEmojisEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enableEmojis) {\n\t\t\t\t\tthis.setState({ enableEmojis: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableEmojis !== false) {\n\t\t\t\t\tthis.setState({ enableEmojis: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\t/**\n\t * if sharing collborative document feature is disabled\n\t */\n\tenableCollaborativeDocument = () => {\n\t\tthis.context.FeatureRestriction.isCollaborativeDocumentEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enableCollaborativeDocument) {\n\t\t\t\t\tthis.setState({ enableCollaborativeDocument: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableCollaborativeDocument !== false) {\n\t\t\t\t\tthis.setState({ enableCollaborativeDocument: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\t/**\n\t * if sharing collborative whiteboard feature is disabled\n\t */\n\tenableCollaborativeWhiteboard = () => {\n\t\tthis.context.FeatureRestriction.isCollaborativeWhiteBoardEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enableCollaborativeWhiteboard) {\n\t\t\t\t\tthis.setState({ enableCollaborativeWhiteboard: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableCollaborativeWhiteboard !== false) {\n\t\t\t\t\tthis.setState({ enableCollaborativeWhiteboard: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tfocusOnMessageComposer = () => {\n\t\tif (this.messageInputRef && this.messageInputRef.current) {\n\t\t\tthis.messageInputRef.current.focus();\n\t\t}\n\t};\n\n\tpasteHtmlAtCaret(html, selectPastedContent) {\n\t\tvar sel, range;\n\t\tconst chatWindow = this.context.UIKitSettings.chatWindow;\n\t\tif (chatWindow.getSelection) {\n\t\t\t// IE9 and non-IE\n\t\t\tsel = chatWindow.getSelection();\n\t\t\tif (sel.getRangeAt && sel.rangeCount) {\n\t\t\t\trange = sel.getRangeAt(0);\n\t\t\t\trange.deleteContents();\n\n\t\t\t\t// Range.createContextualFragment() would be useful here but is\n\t\t\t\t// only relatively recently standardized and is not supported in\n\t\t\t\t// some browsers (IE9, for one)\n\t\t\t\tvar el = document.createElement(\"div\");\n\t\t\t\tel.innerText = html;\n\t\t\t\tvar frag = document.createDocumentFragment(),\n\t\t\t\t\tnode,\n\t\t\t\t\tlastNode;\n\t\t\t\twhile ((node = el.firstChild)) {\n\t\t\t\t\tlastNode = frag.appendChild(node);\n\t\t\t\t}\n\t\t\t\tvar firstNode = frag.firstChild;\n\t\t\t\trange.insertNode(frag);\n\n\t\t\t\t// Preserve the selection\n\t\t\t\tif (lastNode) {\n\t\t\t\t\trange = range.cloneRange();\n\t\t\t\t\trange.setStartAfter(lastNode);\n\t\t\t\t\tif (selectPastedContent) {\n\t\t\t\t\t\trange.setStartBefore(firstNode);\n\t\t\t\t\t} else {\n\t\t\t\t\t\trange.collapse(true);\n\t\t\t\t\t}\n\t\t\t\t\tsel.removeAllRanges();\n\t\t\t\t\tsel.addRange(range);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if ((sel = document.selection) && sel.type !== \"Control\") {\n\t\t\t// IE < 9\n\t\t\tvar originalRange = sel.createRange();\n\t\t\toriginalRange.collapse(true);\n\t\t\tsel.createRange().pasteHTML(html);\n\t\t\tif (selectPastedContent) {\n\t\t\t\trange = sel.createRange();\n\t\t\t\trange.setEndPoint(\"StartToStart\", originalRange);\n\t\t\t\trange.select();\n\t\t\t}\n\t\t}\n\t}\n\n\temojiClicked = (emoji, event) => {\n\t\tif (this.state.messageToReact) {\n\t\t\tthis.reactToMessages(emoji);\n\t\t\treturn;\n\t\t}\n\n\t\tconst element = this.messageInputRef.current;\n\t\telement.focus();\n\t\tthis.pasteHtmlAtCaret(emoji.native, false);\n\t\tthis.setState({ messageInput: element.innerText, messageType: \"text\" });\n\t};\n\n\tchangeHandler = event => {\n\t\tthis.startTyping();\n\n\t\tconst elem = event.currentTarget;\n\t\tlet messageInput = elem.textContent.trim();\n\n\t\tif (!messageInput.length) {\n\t\t\tevent.currentTarget.textContent = messageInput;\n\t\t\t//return false;\n\t\t}\n\n\t\tthis.setState({ messageInput: elem.innerText, messageType: \"text\" });\n\t};\n\n\ttoggleFilePicker = () => {\n\t\tconst currentState = !this.state.showFilePicker;\n\t\tthis.setState({ showFilePicker: currentState });\n\t};\n\n\topenFileDialogue = fileType => {\n\t\tswitch (fileType) {\n\t\t\tcase \"image\":\n\t\t\t\tthis.imageUploaderRef.current.click();\n\t\t\t\tbreak;\n\t\t\tcase \"file\":\n\t\t\t\tthis.fileUploaderRef.current.click();\n\t\t\t\tbreak;\n\t\t\tcase \"audio\":\n\t\t\t\tthis.audioUploaderRef.current.click();\n\t\t\t\tbreak;\n\t\t\tcase \"video\":\n\t\t\t\tthis.videoUploaderRef.current.click();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tonImageChange = e => {\n\t\tif (!this.imageUploaderRef.current.files[\"0\"]) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst uploadedFile = this.imageUploaderRef.current.files[\"0\"];\n\n\t\tvar reader = new FileReader(); // Creating reader instance from FileReader() API\n\t\treader.addEventListener(\n\t\t\t\"load\",\n\t\t\tevent => {\n\t\t\t\t// Setting up base64 URL on image\n\n\t\t\t\tconst newFile = new File([reader.result], uploadedFile.name, uploadedFile);\n\t\t\t\tthis.sendMediaMessage(newFile, CometChat.MESSAGE_TYPE.IMAGE);\n\t\t\t},\n\t\t\tfalse,\n\t\t);\n\n\t\treader.readAsArrayBuffer(uploadedFile);\n\t};\n\n\tonFileChange = e => {\n\t\tif (!this.fileUploaderRef.current.files[\"0\"]) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst uploadedFile = this.fileUploaderRef.current.files[\"0\"];\n\n\t\tvar reader = new FileReader(); // Creating reader instance from FileReader() API\n\t\treader.addEventListener(\n\t\t\t\"load\",\n\t\t\tevent => {\n\t\t\t\t// Setting up base64 URL on image\n\n\t\t\t\tconst newFile = new File([reader.result], uploadedFile.name, uploadedFile);\n\t\t\t\tthis.sendMediaMessage(newFile, CometChat.MESSAGE_TYPE.FILE);\n\t\t\t},\n\t\t\tfalse,\n\t\t);\n\n\t\treader.readAsArrayBuffer(uploadedFile);\n\t};\n\n\tonAudioChange = e => {\n\t\tif (!this.audioUploaderRef.current.files[\"0\"]) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst uploadedFile = this.audioUploaderRef.current.files[\"0\"];\n\n\t\tvar reader = new FileReader(); // Creating reader instance from FileReader() API\n\t\treader.addEventListener(\n\t\t\t\"load\",\n\t\t\t() => {\n\t\t\t\t// Setting up base64 URL on image\n\n\t\t\t\tconst newFile = new File([reader.result], uploadedFile.name, uploadedFile);\n\t\t\t\tthis.sendMediaMessage(newFile, CometChat.MESSAGE_TYPE.AUDIO);\n\t\t\t},\n\t\t\tfalse,\n\t\t);\n\n\t\treader.readAsArrayBuffer(uploadedFile);\n\t};\n\n\tonVideoChange = e => {\n\t\tif (!this.videoUploaderRef.current.files[\"0\"]) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst uploadedFile = this.videoUploaderRef.current.files[\"0\"];\n\n\t\tvar reader = new FileReader(); // Creating reader instance from FileReader() API\n\t\treader.addEventListener(\n\t\t\t\"load\",\n\t\t\t() => {\n\t\t\t\t// Setting up base64 URL on image\n\n\t\t\t\tconst newFile = new File([reader.result], uploadedFile.name, uploadedFile);\n\t\t\t\tthis.sendMediaMessage(newFile, CometChat.MESSAGE_TYPE.VIDEO);\n\t\t\t},\n\t\t\tfalse,\n\t\t);\n\n\t\treader.readAsArrayBuffer(uploadedFile);\n\t};\n\n\tgetReceiverDetails = () => {\n\t\tlet receiverId;\n\t\tlet receiverType;\n\n\t\tif (this.context.type === CometChat.ACTION_TYPE.TYPE_USER) {\n\t\t\treceiverId = this.context.item.uid;\n\t\t\treceiverType = CometChat.RECEIVER_TYPE.USER;\n\t\t} else if (this.context.type === CometChat.ACTION_TYPE.TYPE_GROUP) {\n\t\t\treceiverId = this.context.item.guid;\n\t\t\treceiverType = CometChat.RECEIVER_TYPE.GROUP;\n\t\t}\n\n\t\treturn { receiverId: receiverId, receiverType: receiverType };\n\t};\n\n\tsendMediaMessage = (messageInput, messageType) => {\n\t\tthis.toggleFilePicker();\n\t\tthis.endTyping(null, null);\n\n\t\tconst { receiverId, receiverType } = this.getReceiverDetails();\n\n\t\tlet mediaMessage = new CometChat.MediaMessage(receiverId, messageInput, messageType, receiverType);\n\t\tif (this.props.parentMessageId) {\n\t\t\tmediaMessage.setParentMessageId(this.props.parentMessageId);\n\t\t}\n\n\t\tmediaMessage.setSender(this.loggedInUser);\n\t\tmediaMessage.setReceiver(this.context.type);\n\t\tmediaMessage.setType(messageType);\n\t\tmediaMessage.setMetadata({\n\t\t\t[enums.CONSTANTS[\"FILE_METADATA\"]]: messageInput,\n\t\t});\n\t\tmediaMessage._composedAt = getUnixTimestamp();\n\t\tmediaMessage._id = ID();\n\n\t\tSoundManager.play(enums.CONSTANTS.AUDIO[\"OUTGOING_MESSAGE\"], this.context);\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"MESSAGE_COMPOSED\"], [mediaMessage]);\n\n\t\tCometChat.sendMessage(mediaMessage)\n\t\t\t.then(message => {\n\t\t\t\tconst newMessageObj = { ...message, _id: mediaMessage._id };\n\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"MESSAGE_SENT\"], [newMessageObj]);\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tconst newMessageObj = { ...mediaMessage, error: error };\n\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"ERROR_IN_SENDING_MESSAGE\"], [newMessageObj]);\n\t\t\t});\n\t};\n\n\tsendMessageOnEnter = event => {\n\t\tif (event.keyCode === 13 && !event.shiftKey) {\n\t\t\tevent.preventDefault();\n\t\t\tthis.sendTextMessage();\n\t\t\treturn true;\n\t\t}\n\t};\n\n\tsendTextMessage = () => {\n\t\tif (this.state.emojiViewer) {\n\t\t\tthis.setState({ emojiViewer: false });\n\t\t}\n\n\t\tif (!this.state.messageInput.trim().length) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.state.messageToBeEdited) {\n\t\t\tthis.editMessage();\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.endTyping(null, null);\n\n\t\tlet { receiverId, receiverType } = this.getReceiverDetails();\n\t\tlet messageInput = this.state.messageInput.trim();\n\n\t\tlet textMessage = new CometChat.TextMessage(receiverId, messageInput, receiverType);\n\t\tif (this.props.parentMessageId) {\n\t\t\ttextMessage.setParentMessageId(this.props.parentMessageId);\n\t\t}\n\t\ttextMessage.setSender(this.loggedInUser);\n\t\ttextMessage.setReceiver(this.context.type);\n\t\ttextMessage.setText(messageInput);\n\t\ttextMessage._composedAt = getUnixTimestamp();\n\t\ttextMessage._id = ID();\n\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"MESSAGE_COMPOSED\"], [textMessage]);\n\t\tthis.setState({ messageInput: \"\", replyPreview: false });\n\n\t\tthis.messageInputRef.current.textContent = \"\";\n\t\tSoundManager.play(enums.CONSTANTS.AUDIO[\"OUTGOING_MESSAGE\"], this.context);\n\n\t\tCometChat.sendMessage(textMessage)\n\t\t\t.then(message => {\n\t\t\t\tconst newMessageObj = { ...message, _id: textMessage._id };\n\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"MESSAGE_SENT\"], [newMessageObj]);\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tconst newMessageObj = { ...textMessage, error: error };\n\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"ERROR_IN_SENDING_MESSAGE\"], [newMessageObj]);\n\n\t\t\t\tif (error && error.hasOwnProperty(\"code\") && error.code === \"ERR_GUID_NOT_FOUND\") {\n\t\t\t\t\t//this.context.setDeletedGroupId(this.context.item.guid);\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\teditMessage = () => {\n\t\tthis.endTyping(null, null);\n\n\t\tconst messageToBeEdited = this.props.messageToBeEdited;\n\n\t\tlet { receiverId, receiverType } = this.getReceiverDetails();\n\t\tlet messageText = this.state.messageInput.trim();\n\t\tlet textMessage = new CometChat.TextMessage(receiverId, messageText, receiverType);\n\t\ttextMessage.setId(messageToBeEdited.id);\n\n\t\tconst newMessage = Object.assign({}, textMessage, { messageFrom: messageToBeEdited.messageFrom });\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"MESSAGE_EDITED\"], newMessage);\n\n\t\tthis.setState({ messageInput: \"\" });\n\t\tthis.messageInputRef.current.textContent = \"\";\n\t\tSoundManager.play(enums.CONSTANTS.AUDIO[\"OUTGOING_MESSAGE\"], this.context);\n\n\t\tthis.closeEditPreview();\n\n\t\tCometChat.editMessage(textMessage)\n\t\t\t.then(message => {\n\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"MESSAGE_EDITED\"], { ...message });\n\t\t\t})\n\t\t\t.catch(error => this.props.actionGenerated(enums.ACTIONS[\"ERROR\"], [], \"SOMETHING_WRONG\"));\n\t};\n\n\tcloseEditPreview = () => {\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"CLEAR_EDIT_PREVIEW\"]);\n\t};\n\n\tstartTyping = (timer, metadata) => {\n\t\tlet typingInterval = timer || 5000;\n\n\t\t//if typing indicator feature is disabled\n\t\tif (this.state.enableTypingIndicator === false) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.isTyping) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet { receiverId, receiverType } = this.getReceiverDetails();\n\t\tlet typingMetadata = metadata || undefined;\n\n\t\tlet typingNotification = new CometChat.TypingIndicator(receiverId, receiverType, typingMetadata);\n\t\tCometChat.startTyping(typingNotification);\n\n\t\tthis.isTyping = setTimeout(() => {\n\t\t\tthis.endTyping(null, typingMetadata);\n\t\t}, typingInterval);\n\t};\n\n\tendTyping = (event, metadata) => {\n\t\t//fixing synthetic issue\n\t\tif (event) {\n\t\t\tevent.persist();\n\t\t}\n\n\t\t//if typing indicator is disabled for chat wigdet in dashboard\n\t\tif (this.state.enableTypingIndicator === false) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet { receiverId, receiverType } = this.getReceiverDetails();\n\n\t\tlet typingMetadata = metadata || undefined;\n\n\t\tlet typingNotification = new CometChat.TypingIndicator(receiverId, receiverType, typingMetadata);\n\t\tCometChat.endTyping(typingNotification);\n\n\t\tclearTimeout(this.isTyping);\n\t\tthis.isTyping = null;\n\t};\n\n\ttoggleStickerPicker = () => {\n\t\tconst stickerViewer = this.state.stickerViewer;\n\t\tthis.setState({ stickerViewer: !stickerViewer, emojiViewer: false });\n\t};\n\n\ttoggleEmojiPicker = () => {\n\t\tconst emojiViewer = this.state.emojiViewer;\n\t\tthis.setState({ emojiViewer: !emojiViewer, stickerViewer: false });\n\t};\n\n\ttoggleCreatePoll = () => {\n\t\tconst createPoll = this.state.createPoll;\n\t\tthis.setState({ createPoll: !createPoll });\n\t};\n\n\ttoggleCollaborativeDocument = () => {\n\t\tconst { receiverId, receiverType } = this.getReceiverDetails();\n\t\tCometChat.callExtension(\"document\", \"POST\", \"v1/create\", {\n\t\t\treceiver: receiverId,\n\t\t\treceiverType: receiverType,\n\t\t})\n\t\t\t.then(response => {\n\t\t\t\t// Response with document url\n\t\t\t\tif (response && response.hasOwnProperty(\"document_url\")) {\n\t\t\t\t\tthis.context.setToastMessage(\"success\", \"DOCUMENT_SUCCESS\");\n\t\t\t\t} else {\n\t\t\t\t\tthis.context.setToastMessage(\"error\", \"DOCUMENT_FAIL\");\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => this.props.actionGenerated(enums.ACTIONS[\"ERROR\"], [], \"SOMETHING_WRONG\"));\n\t};\n\n\ttoggleCollaborativeBoard = () => {\n\t\tconst { receiverId, receiverType } = this.getReceiverDetails();\n\t\tCometChat.callExtension(\"whiteboard\", \"POST\", \"v1/create\", {\n\t\t\treceiver: receiverId,\n\t\t\treceiverType: receiverType,\n\t\t})\n\t\t\t.then(response => {\n\t\t\t\t// Response with board_url\n\t\t\t\tif (response && response.hasOwnProperty(\"board_url\")) {\n\t\t\t\t\tthis.context.setToastMessage(\"success\", \"WHITEBOARD_SUCCESS\");\n\t\t\t\t} else {\n\t\t\t\t\tthis.context.setToastMessage(\"error\", \"WHITEBOARD_FAIL\");\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => this.props.actionGenerated(enums.ACTIONS[\"ERROR\"], [], \"SOMETHING_WRONG\"));\n\t};\n\n\tcloseCreatePoll = () => {\n\t\tthis.toggleCreatePoll();\n\t\tthis.toggleFilePicker();\n\t};\n\n\tactionHandler = (action, message) => {\n\t\tswitch (action) {\n\t\t\tcase enums.ACTIONS[\"POLL_CREATED\"]:\n\t\t\t\tthis.toggleCreatePoll();\n\t\t\t\tthis.toggleFilePicker();\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"SEND_STICKER\"]:\n\t\t\t\tthis.sendSticker(message);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"CLOSE_STICKER_KEYBOARD\"]:\n\t\t\t\tthis.toggleStickerPicker();\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tsendSticker = stickerMessage => {\n\t\tconst { receiverId, receiverType } = this.getReceiverDetails();\n\n\t\tconst customData = { sticker_url: stickerMessage.stickerUrl, sticker_name: stickerMessage.stickerName };\n\t\tconst customType = enums.CUSTOM_TYPE_STICKER;\n\n\t\tconst customMessage = new CometChat.CustomMessage(receiverId, receiverType, customType, customData);\n\t\tif (this.props.parentMessageId) {\n\t\t\tcustomMessage.setParentMessageId(this.props.parentMessageId);\n\t\t}\n\t\tcustomMessage.setSender(this.loggedInUser);\n\t\tcustomMessage.setReceiver(this.context.type);\n\t\tcustomMessage.setMetadata({ incrementUnreadCount: true });\n\t\tcustomMessage._composedAt = getUnixTimestamp();\n\t\tcustomMessage._id = ID();\n\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"MESSAGE_COMPOSED\"], [customMessage]);\n\t\tSoundManager.play(enums.CONSTANTS.AUDIO[\"OUTGOING_MESSAGE\"], this.context);\n\n\t\tCometChat.sendCustomMessage(customMessage)\n\t\t\t.then(message => {\n\t\t\t\tconst newMessageObj = { ...message, _id: customMessage._id };\n\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"MESSAGE_SENT\"], [newMessageObj]);\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tconst newMessageObj = { ...customMessage, error: error };\n\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"ERROR_IN_SENDING_MESSAGE\"], [newMessageObj]);\n\t\t\t});\n\t};\n\n\tsendReplyMessage = messageInput => {\n\t\tlet { receiverId, receiverType } = this.getReceiverDetails();\n\n\t\tlet textMessage = new CometChat.TextMessage(receiverId, messageInput, receiverType);\n\t\tif (this.props.parentMessageId) {\n\t\t\ttextMessage.setParentMessageId(this.props.parentMessageId);\n\t\t}\n\t\ttextMessage.setSender(this.loggedInUser);\n\t\ttextMessage.setReceiver(this.context.type);\n\t\ttextMessage._composedAt = getUnixTimestamp();\n\t\ttextMessage._id = ID();\n\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"MESSAGE_COMPOSED\"], [textMessage]);\n\n\t\tSoundManager.play(enums.CONSTANTS.AUDIO[\"OUTGOING_MESSAGE\"], this.context);\n\t\tthis.setState({ replyPreview: null });\n\n\t\tCometChat.sendMessage(textMessage)\n\t\t\t.then(message => {\n\t\t\t\tconst newMessageObj = { ...message, _id: textMessage._id };\n\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"MESSAGE_SENT\"], [newMessageObj]);\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tconst newMessageObj = { ...textMessage, error: error };\n\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"ERROR_IN_SENDING_MESSAGE\"], [newMessageObj]);\n\t\t\t});\n\t};\n\n\tclearReplyPreview = () => {\n\t\tthis.setState({ replyPreview: null });\n\t};\n\n\tstartLiveReaction = event => {\n\t\t//if a live reaction is already in progress, return\n\t\tif (this.animationInProgress === true) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (this.timeout) {\n\t\t\tclearTimeout(this.timeout);\n\t\t}\n\n\t\t//fetch the interval from the constants\n\t\tconst liveReactionInterval = enums.CONSTANTS[\"LIVE_REACTION_INTERVAL\"];\n\n\t\t//mount the live reaction component\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"SEND_LIVE_REACTION\"]);\n\n\t\t//set the timer to stop the live reaction\n\t\tthis.timeout = setTimeout(this.stopLiveReaction, liveReactionInterval);\n\t};\n\n\tstopLiveReaction = () => {\n\t\t\n\t\t//unmount the live reaction component\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"STOP_LIVE_REACTION\"]);\n\n\t\t//set the animation flag to false\n\t\tthis.animationInProgress = false;\n\t};\n\n\treactToMessages = emoji => {\n\t\tCometChat.callExtension(\"reactions\", \"POST\", \"v1/react\", {\n\t\t\tmsgId: this.state.messageToReact.id,\n\t\t\temoji: emoji.colons,\n\t\t})\n\t\t\t.then(response => {\n\t\t\t\tif (response.hasOwnProperty(\"success\") && response[\"success\"] === true) {\n\t\t\t\t\tthis.toggleEmojiPicker();\n\t\t\t\t} else {\n\t\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"ERROR\"], [], \"SOMETHING_WRONG\");\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => this.props.actionGenerated(enums.ACTIONS[\"ERROR\"], [], \"SOMETHING_WRONG\"));\n\t};\n\n\trender() {\n\t\tlet liveReactionBtn = null;\n\t\tconst liveReactionText = Translator.translate(\"LIVE_REACTION\", this.context.language);\n\t\tif (enums.CONSTANTS[\"LIVE_REACTIONS\"].hasOwnProperty(this.props.reaction)) {\n\t\t\tconst reactionName = this.props.reaction;\n\t\t\tliveReactionBtn = (\n\t\t\t\t
    \n\t\t\t\t\t{reactionName}\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tlet disabledState = false;\n\t\tif (this.context.item.blockedByMe) {\n\t\t\tdisabledState = true;\n\t\t}\n\n\t\tconst docText = Translator.translate(\"ATTACH_FILE\", this.context.language);\n\t\tlet docs = (\n\t\t\t {\n\t\t\t\t\tthis.openFileDialogue(\"file\");\n\t\t\t\t}}>\n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\n\t\tconst videoText = Translator.translate(\"ATTACH_VIDEO\", this.context.language);\n\t\tconst audioText = Translator.translate(\"ATTACH_AUDIO\", this.context.language);\n\t\tconst imageText = Translator.translate(\"ATTACH_IMAGE\", this.context.language);\n\t\tlet avp = (\n\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tthis.openFileDialogue(\"video\");\n\t\t\t\t\t}}>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tthis.openFileDialogue(\"audio\");\n\t\t\t\t\t}}>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t {\n\t\t\t\t\t\tthis.openFileDialogue(\"image\");\n\t\t\t\t\t}}>\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\n\t\tconst pollText = Translator.translate(\"CREATE_POLL\", this.context.language);\n\t\tlet createPollBtn = (\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t);\n\n\t\tconst collaborativeDocText = Translator.translate(\"COLLABORATE_USING_DOCUMENT\", this.context.language);\n\t\tlet collaborativeDocBtn = (\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t);\n\n\t\tconst collaborativeBoardText = Translator.translate(\"COLLABORATE_USING_WHITEBOARD\", this.context.language);\n\t\tlet collaborativeBoardBtn = (\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t);\n\n\t\tconst emojiText = Translator.translate(\"EMOJI\", this.context.language);\n\t\tlet emojiBtn = (\n\t\t\t {\n\t\t\t\t\tthis.toggleEmojiPicker();\n\t\t\t\t\tthis.setState({ messageToReact: \"\" });\n\t\t\t\t}}>\n\t\t\t\t\n\t\t\t\n\t\t);\n\n\t\tconst StickerText = Translator.translate(\"STICKER\", this.context.language);\n\t\tlet stickerBtn = (\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t);\n\n\t\tconst sendMessageText = Translator.translate(\"SEND_MESSAGE\", this.context.language);\n\t\tlet sendBtn = (\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t);\n\n\t\t//if uploading photos, videos feature is disabled\n\t\tif (this.state.enablePhotosVideos === false) {\n\t\t\tavp = null;\n\t\t}\n\n\t\t//if files upload are disabled for chat widget in dashboard\n\t\tif (this.state.enableFiles === false) {\n\t\t\tdocs = null;\n\t\t}\n\n\t\t//if polls feature is disabled\n\t\tif (this.state.enablePolls === false || this.props.parentMessageId) {\n\t\t\tcreatePollBtn = null;\n\t\t}\n\n\t\t//if collaborative_document are disabled for chat widget in dashboard\n\t\tif (this.state.enableCollaborativeDocument === false || this.props.parentMessageId) {\n\t\t\tcollaborativeDocBtn = null;\n\t\t}\n\n\t\t//if collaborative_document are disabled for chat widget in dashboard\n\t\tif (this.state.enableCollaborativeWhiteboard === false || this.props.parentMessageId) {\n\t\t\tcollaborativeBoardBtn = null;\n\t\t}\n\n\t\t//if emojis are disabled for chat widget in dashboard\n\t\tif (this.state.enableEmojis === false) {\n\t\t\temojiBtn = null;\n\t\t}\n\n\t\t//if live reactions is disabled for chat widget in dashboard\n\t\tif (this.state.enableLiveReaction === false || this.state.messageInput.length || this.props.parentMessageId) {\n\t\t\tliveReactionBtn = null;\n\t\t}\n\n\t\t//if stickers is disabled for chat widget in dashboard\n\t\tif (this.state.enableStickers === false) {\n\t\t\tstickerBtn = null;\n\t\t}\n\n\t\tif (!this.state.messageInput.length) {\n\t\t\tsendBtn = null;\n\t\t}\n\n\t\tconst attachText = Translator.translate(\"ATTACH\", this.context.language);\n\t\tlet attach = (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{avp}\n\t\t\t\t\t\t{docs}\n\t\t\t\t\t\t{createPollBtn}\n\t\t\t\t\t\t{collaborativeDocBtn}\n\t\t\t\t\t\t{collaborativeBoardBtn}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\n\t\tif (avp === null && docs === null && createPollBtn === null && collaborativeDocBtn === null && collaborativeBoardBtn === null) {\n\t\t\tattach = null;\n\t\t}\n\n\t\tlet createPoll = null;\n\t\tif (this.state.createPoll) {\n\t\t\tcreatePoll = ;\n\t\t}\n\n\t\tlet editPreview = null;\n\t\tif (this.state.messageToBeEdited) {\n\t\t\tlet messageText = this.state.messageToBeEdited.text;\n\n\t\t\t//xss extensions data\n\t\t\tconst xssData = checkMessageForExtensionsData(this.state.messageToBeEdited, \"xss-filter\");\n\t\t\tif (xssData && xssData.hasOwnProperty(\"sanitized_text\") && xssData.hasOwnProperty(\"hasXSS\") && xssData.hasXSS === \"yes\") {\n\t\t\t\tmessageText = xssData.sanitized_text;\n\t\t\t}\n\n\t\t\t//datamasking extensions data\n\t\t\tconst maskedData = checkMessageForExtensionsData(this.state.messageToBeEdited, \"data-masking\");\n\t\t\tif (maskedData && maskedData.hasOwnProperty(\"data\") && maskedData.data.hasOwnProperty(\"sensitive_data\") && maskedData.data.hasOwnProperty(\"message_masked\") && maskedData.data.sensitive_data === \"yes\") {\n\t\t\t\tmessageText = maskedData.data.message_masked;\n\t\t\t}\n\n\t\t\t//profanity extensions data\n\t\t\tconst profaneData = checkMessageForExtensionsData(this.state.messageToBeEdited, \"profanity-filter\");\n\t\t\tif (profaneData && profaneData.hasOwnProperty(\"profanity\") && profaneData.hasOwnProperty(\"message_clean\") && profaneData.profanity === \"yes\") {\n\t\t\t\tmessageText = profaneData.message_clean;\n\t\t\t}\n\n\t\t\teditPreview = (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    {Translator.translate(\"EDIT_MESSAGE\", this.context.language)}
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    {messageText}
    \n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tlet smartReplyPreview = null;\n\t\tif (this.state.replyPreview) {\n\t\t\tconst message = this.state.replyPreview;\n\n\t\t\tconst smartReplyData = checkMessageForExtensionsData(message, \"smart-reply\");\n\t\t\tif (smartReplyData && smartReplyData.hasOwnProperty(\"error\") === false) {\n\t\t\t\tconst options = [smartReplyData[\"reply_positive\"], smartReplyData[\"reply_neutral\"], smartReplyData[\"reply_negative\"]];\n\t\t\t\tsmartReplyPreview = ;\n\t\t\t}\n\t\t}\n\n\t\tlet stickerViewer = null;\n\t\tif (this.state.stickerViewer) {\n\t\t\tstickerViewer = ;\n\t\t}\n\n\t\tlet emojiViewer = null;\n\t\tif (this.state.emojiViewer) {\n\t\t\temojiViewer = ;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{editPreview}\n\t\t\t\t{smartReplyPreview}\n\t\t\t\t{stickerViewer}\n\t\t\t\t{emojiViewer}\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t this.endTyping(event)}\n\t\t\t\t\t\t\tonKeyDown={this.sendMessageOnEnter}\n\t\t\t\t\t\t\tref={this.messageInputRef}>
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{attach}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{stickerBtn}\n\t\t\t\t\t\t\t\t{emojiBtn}\n\t\t\t\t\t\t\t\t{sendBtn}\n\t\t\t\t\t\t\t\t{liveReactionBtn}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t{createPoll}\n\t\t\t\n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatMessageComposer.defaultProps = {\n theme: theme,\n reaction: \"heart\"\n};\n\nCometChatMessageComposer.propTypes = {\n theme: PropTypes.object,\n reaction: PropTypes.string\n}\n\nexport { CometChatMessageComposer };","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAUCAYAAACXtf2DAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAGKADAAQAAAABAAAAFAAAAAAnxZisAAACpElEQVQ4Ea1VzUsVURQ/5868UrEg/AMy0NTMRQRBJfIQszKxgh5ByzbVIooiiDbZBwUtXAWJtGgRJW0MQsxnxfhRIbgpsqcQtajoA8uITGfu3Hs6Z+zJU3pq+n4wc+fee87vd+bcM2cQ5mB0Z+0WMuERQNiNgO+UgtYAgs7K7uffM01fVlevyc9391iAo5bsOkT1gPdvlvd4Q5l2mJ68bahdG2rTwvMmB9HV1gKP0WWA3oSWzlc86rsj9qm6mkOuwgsKsMQSgeErxpEYS5oQOpSLp0u7vA9iGwmkdsWLlaGuPKXKJw3TyU4GYizEYG+OFglXAt7gOWomzoRY5TsO+Na+8pEaqpJ97/FeIuFUjX++X+C4jb+ZPBsUi3C0Wvb5OSaRZ0MBi0xY01GxvfYApuprtjkE/ZZAZXeZpkrnczF2Ek9oaKtCi2c4ogXJRUKIFyJP2zmolHLUSZeAGjWXQq4RcpHwMTVxIeCwVEuuIWfGSPGIl/9OcqohnA7QVWUCeMg1PyJ1nCsIl7ZmVIcqqSo97xen6aK8UC4SleZB5VwS7ijs8p7e9sDQLflIlos8R4FPdLs9Gb8rXJEAq5K7YurEpLHeckTEd8rYp77G483QHNXmTOJLuwZ/ukof9I0dWIqI+PjWDFqHEps870c6EzMCslCSfPYVQtzvG9MpDos5E7GZJrc9gfX3buju/5Qml3GWgCyUed7YtwmdYJHrLqqom8r6vyDfT0whsG3bqrzV+6oeD36ZazdvkCN1NYe5nq8xSRHndpYvd14Igca5dZxdn+xtm7WZMZlXQOxe18c3ukQtLLJDc0cUSPsOiJ6AMqfKugdeRItZbgsKiN/Q5s2xwqLCYw7hOWl3/FO5oj+OtVYODwdZeJe2LD+mVDxe/D/efwCuAQs2cnkFkQAAAABJRU5ErkJggg==\"","import { CometChat } from \"@cometchat-pro/chat\";\n\nimport * as enums from \"../../../util/enums.js\";\n\nexport class MessageHeaderManager {\n\n userListenerId = \"head_user_\" + new Date().getTime();\n msgListenerId = \"head_message_\" + new Date().getTime();\n groupListenerId = \"head_group_\" + new Date().getTime();\n\n attachListeners(callback) {\n \n CometChat.addUserListener(\n this.userListenerId,\n new CometChat.UserListener({\n onUserOnline: onlineUser => {\n /* when someuser/friend comes online, user will be received here */\n callback(enums.USER_ONLINE, onlineUser);\n },\n onUserOffline: offlineUser => {\n /* when someuser/friend went offline, user will be received here */\n callback(enums.USER_OFFLINE, offlineUser);\n }\n })\n );\n\n CometChat.addMessageListener(\n this.msgListenerId,\n new CometChat.MessageListener({\n onTypingStarted: typingIndicator => {\n callback(enums.TYPING_STARTED, typingIndicator);\n },\n onTypingEnded: typingIndicator => {\n callback(enums.TYPING_ENDED, typingIndicator);\n }\n })\n );\n\n CometChat.addGroupListener(\n this.groupListenerId,\n new CometChat.GroupListener({\n onGroupMemberKicked: (message, kickedUser, kickedBy, kickedFrom) => {\n callback(enums.GROUP_MEMBER_KICKED, kickedFrom, kickedUser);\n }, \n onGroupMemberBanned: (message, bannedUser, bannedBy, bannedFrom) => {\n callback(enums.GROUP_MEMBER_BANNED, bannedFrom, bannedUser);\n }, \n onMemberAddedToGroup: (message, userAdded, userAddedBy, userAddedIn) => {\n callback(enums.GROUP_MEMBER_ADDED, userAddedIn);\n }, \n onGroupMemberLeft: (message, leavingUser, group) => {\n callback(enums.GROUP_MEMBER_LEFT, group, leavingUser);\n }, \n onGroupMemberJoined: (message, joinedUser, joinedGroup) => {\n callback(enums.GROUP_MEMBER_JOINED, joinedGroup);\n }\n })\n );\n\n }\n\n removeListeners() {\n\n CometChat.removeUserListener(this.userListenerId);\n CometChat.removeMessageListener(this.msgListenerId);\n CometChat.removeGroupListener(this.groupListenerId);\n }\n}","import { CometChat } from \"@cometchat-pro/chat\";\n\nexport const chatHeaderStyle = context => {\n\n\treturn {\n\t\tpadding: \"16px\",\n\t\twidth: \"100%\",\n\t\tbackgroundColor: `${context.theme.backgroundColor.white}`,\n\t\tzIndex: \"1\",\n\t\tborderBottom: `1px solid ${context.theme.borderColor.primary}`,\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"space-between\",\n\t};\n};\n\nexport const chatDetailStyle = () => {\n\n return {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n width: \"calc(100% - 116px)\",\n }\n}\n\nexport const chatSideBarBtnStyle = (img, props, context) => {\n\n const displayValue = (props.hasOwnProperty(\"sidebar\") && props.sidebar === 0) ? { display: \"none!important\"} : {};\n\n const mq = [...context.theme.breakPoints];\n\n return {\n cursor: \"pointer\",\n display: \"none\",\n mask: `url(${img}) center center no-repeat`,\n backgroundColor: `${context.theme.primaryColor}`,\n width: \"24px\",\n height: \"24px\",\n float: \"left\",\n [`@media ${mq[1]}, ${mq[2]}`]: {\n\t\t\tdisplay: \"block\"\n\t\t},\n ...displayValue\n }\n}\n\nexport const chatThumbnailStyle = () => {\n\n return {\n display: \"inline-block\",\n width: \"36px\",\n height: \"36px\",\n flexShrink: \"0\",\n margin: \"0 16px\",\n }\n}\n\nexport const chatUserStyle = context => {\n\n const mq = [...context.theme.breakPoints];\n\n\treturn {\n\t\twidth: \"calc(100% - 50px)\",\n\t\tpadding: \"0\",\n\t\tflexGrow: \"1\",\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"column\",\n\t\t[`@media ${mq[1]}, ${mq[2]}`]: {\n\t\t\twidth: \"calc(100% - 80px)!important\",\n\t\t},\n\t};\n};\n\nexport const chatNameStyle = () => {\n\n return {\n margin: \"0\",\n fontSize: \"15px\",\n fontWeight: \"600\",\n width: \"100%\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n }\n}\n\nexport const chatStatusStyle = (state, context) => {\n\n let status = {};\n if (context.type === CometChat.ACTION_TYPE.TYPE_USER) {\n\n status = {\n color: `${context.theme.color.blue}`,\n textTransform: \"capitalize\",\n };\n\n if (state.presence === \"offline\") {\n status = {\n color: `${context.theme.color.helpText}`,\n textTransform: \"capitalize\",\n }\n } \n\n if (state.typing) {\n status = {\n color: `${context.theme.color.helpText}`,\n textTransform: \"none\",\n fontStyle: \"italic\",\n };\n }\n \n } else if (context.type === CometChat.ACTION_TYPE.TYPE_GROUP) {\n\n status = {\n color: `${context.theme.color.helpText}`,\n }\n\n if (state.typing) {\n status = {\n color: `${context.theme.color.helpText}`,\n fontStyle: \"italic\",\n };\n }\n }\n\n return {\n fontSize: \"13px\",\n width: \"100%\",\n ...status\n }\n}\n\nexport const chatOptionWrapStyle = () => {\n\n return {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n width: \"auto\",\n }\n}\n\nexport const chatOptionStyle = (img, context, ongoingCall) => {\n\n const bgColor = (ongoingCall) ? {\n backgroundColor: `${context.theme.secondaryTextColor}`\n } : {\n backgroundColor: `${context.theme.primaryColor}`\n };\n \n return {\n width: \"24px\",\n height: \"24px\",\n cursor: \"pointer\",\n display: \"flex\",\n alignItems: \"center\",\n margin: \"0 0 0 16px\",\n \"i\": {\n width: \"24px\",\n height: \"24px\",\n display: \"inline-block\",\n mask: `url(${img}) center center no-repeat`,\n ...bgColor\n }\n }\n}","export default __webpack_public_path__ + \"static/media/menu.0c8d2d60.svg\";","export default __webpack_public_path__ + \"static/media/audio-call.05d2b303.svg\";","export default __webpack_public_path__ + \"static/media/video-call.0e4e774d.svg\";","export default __webpack_public_path__ + \"static/media/info.aadd7d93.svg\";","import React from \"react\";\nimport dateFormat from \"dateformat\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { MessageHeaderManager } from \"./controller\";\n\nimport { CometChatAvatar, CometChatUserPresence } from \"../../Shared\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport { \n chatHeaderStyle, \n chatDetailStyle, \n chatSideBarBtnStyle, \n chatThumbnailStyle,\n chatUserStyle,\n chatNameStyle,\n chatStatusStyle,\n chatOptionWrapStyle,\n chatOptionStyle\n} from \"./style\";\n\nimport menuIcon from \"./resources/menu.svg\";\nimport audioCallIcon from \"./resources/audio-call.svg\";\nimport videoCallIcon from \"./resources/video-call.svg\";\nimport detailPaneIcon from \"./resources/info.svg\";\n\nclass CometChatMessageHeader extends React.Component {\n\titem;\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tstatus: \"\",\n\t\t\tpresence: \"offline\",\n\t\t\ttyping: null,\n\t\t\tenableGroupVoiceCall: false,\n\t\t\tenableGroupVideoCall: false,\n\t\t\tenableOneOnOneVoiceCall: false,\n\t\t\tenableOneOnOneVideoCall: false,\n\t\t\tenableUserPresence: false,\n\t\t\tenableAddGroupMembers: false,\n\t\t\tenableChangeScope: false,\n\t\t\tenableKickGroupMembers: false,\n\t\t\tenableBanGroupMembers: false,\n\t\t\tenableDeleteGroup: false,\n\t\t\tenableViewGroupMembers: false,\n\t\t\tenableLeaveGroup: false,\n\t\t\tenableSharedMedia: false,\n\t\t\tenableBlockUser: false,\n\t\t\tenableTypingIndicator: false,\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\n\t\tCometChat.getLoggedinUser()\n\t\t\t.then(user => (this.loggedInUser = user))\n\t\t\t.catch(error => this.props.actionGenerated(enums.ACTIONS[\"ERROR\"], [], \"SOMETHING_WRONG\"));\n\n\t\tthis.MessageHeaderManager = new MessageHeaderManager();\n\t\tthis.MessageHeaderManager.attachListeners(this.updateHeader);\n\n\t\tif (this.context.type === CometChat.ACTION_TYPE.TYPE_USER) {\n\t\t\tthis.setStatusForUser();\n\t\t} else if (this.context.type === CometChat.ACTION_TYPE.TYPE_GROUP) {\n\t\t\tthis.setStatusForGroup();\n\t\t}\n\n\t\tthis.item = this.context.item;\n\n\t\tthis.enableGroupVoiceCall();\n\t\tthis.enableGroupVideoCall();\n\t\tthis.enableOneOnOneVoiceCall();\n\t\tthis.enableOneOnOneVideoCall();\n\t\tthis.enableUserPresence();\n\t\tthis.enableAddGroupMembers();\n\t\tthis.enableChangeScope();\n\t\tthis.enableKickGroupMembers();\n\t\tthis.enableBanGroupMembers();\n\t\tthis.enableViewGroupMembers();\n\t\tthis.enableDeleteGroup();\n\t\tthis.enableLeaveGroup();\n\t\tthis.enableSharedMedia();\n\t\tthis.enableBlockUser();\n\t\tthis.enableTypingIndicator();\n\t}\n\n\tcomponentDidUpdate(prevProps, prevState) {\n\n\t\tif (this.context.type === CometChat.ACTION_TYPE.TYPE_USER && (this.item !== this.context.item)) {\n\t\t\tthis.setStatusForUser();\n\t\t} else if (this.context.type === CometChat.ACTION_TYPE.TYPE_GROUP && (this.item !== this.context.item)) {\n\t\t\tthis.setStatusForGroup();\n\t\t}\n\n\t\tthis.item = this.context.item;\n\n\t\tthis.enableGroupVoiceCall();\n\t\tthis.enableGroupVideoCall();\n\t\tthis.enableOneOnOneVoiceCall();\n\t\tthis.enableOneOnOneVideoCall();\n\t\tthis.enableUserPresence();\n\t\tthis.enableAddGroupMembers();\n\t\tthis.enableChangeScope();\n\t\tthis.enableKickGroupMembers();\n\t\tthis.enableBanGroupMembers();\n\t\tthis.enableViewGroupMembers();\n\t\tthis.enableDeleteGroup();\n\t\tthis.enableLeaveGroup();\n\t\tthis.enableSharedMedia();\n\t\tthis.enableBlockUser();\n\t\tthis.enableTypingIndicator();\n\t}\n\n\tsetStatusForUser = () => {\n\t\tlet status = \"\";\n\t\tconst presence = this.context.item.status === CometChat.USER_STATUS.ONLINE ? CometChat.USER_STATUS.ONLINE : CometChat.USER_STATUS.OFFLINE;\n\n\t\tif (this.context.item.status === CometChat.USER_STATUS.OFFLINE && this.context.item.lastActiveAt) {\n\t\t\tconst lastActive = this.context.item.lastActiveAt * 1000;\n\t\t\tconst messageDate = dateFormat(lastActive, \"dS mmm yyyy, h:MM TT\");\n\n\t\t\tstatus = `${Translator.translate(\"LAST_ACTIVE_AT\", this.context.language)}: ${messageDate}`;\n\t\t} else if (this.context.item.status === CometChat.USER_STATUS.OFFLINE) {\n\t\t\tstatus = Translator.translate(\"OFFLINE\", this.context.language);\n\t\t} else if (this.context.item.status === CometChat.USER_STATUS.ONLINE) {\n\t\t\tstatus = Translator.translate(\"ONLINE\", this.context.language);\n\t\t}\n\t\t\n\t\tthis.setState({status: status, presence: presence});\n\t};\n\n\tsetStatusForGroup = () => {\n\t\tlet membersText = Translator.translate(\"MEMBERS\", this.context.language);\n\t\tconst status = `${this.context.item.membersCount} ${membersText}`;\n\t\tthis.setState({status: status});\n\t};\n\n\tcomponentWillUnmount() {\n\t\tthis.MessageHeaderManager.removeListeners();\n\t\tthis.MessageHeaderManager = null;\n\t}\n\n\tupdateHeader = (key, item, groupUser) => {\n\t\tswitch (key) {\n\t\t\tcase enums.USER_ONLINE:\n\t\t\tcase enums.USER_OFFLINE: {\n\t\t\t\tif (this.context.type === CometChat.ACTION_TYPE.TYPE_USER && this.context.item.uid === item.uid) {\n\t\t\t\t\t\n\t\t\t\t\t//if user presence feature is disabled\n\t\t\t\t\tif (this.state.enableUserPresence === false) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet status = \"\";\n\t\t\t\t\tif (item.status === CometChat.USER_STATUS.OFFLINE) {\n\t\t\t\t\t\tstatus = Translator.translate(\"OFFLINE\", this.context.language);\n\t\t\t\t\t} else if (item.status === CometChat.USER_STATUS.ONLINE) {\n\t\t\t\t\t\tstatus = Translator.translate(\"ONLINE\", this.context.language);\n\t\t\t\t\t}\n\t\t\t\t\tthis.setState({status: status, presence: item.status});\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase enums.GROUP_MEMBER_KICKED:\n\t\t\tcase enums.GROUP_MEMBER_BANNED:\n\t\t\tcase enums.GROUP_MEMBER_LEFT:\n\t\t\t\tif (this.context.type === CometChat.ACTION_TYPE.TYPE_GROUP && this.context.item.guid === item.guid && this.loggedInUser?.uid !== groupUser?.uid) {\n\t\t\t\t\tlet membersCount = parseInt(item.membersCount);\n\t\t\t\t\tconst status = `${membersCount} ${Translator.translate(\"MEMBERS\", this.context.language)}`;\n\t\t\t\t\tthis.setState({status: status});\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase enums.GROUP_MEMBER_JOINED:\n\t\t\t\tif (this.context.type === CometChat.ACTION_TYPE.TYPE_GROUP && this.context.item.guid === item.guid) {\n\t\t\t\t\tlet membersCount = parseInt(item.membersCount);\n\t\t\t\t\tconst status = `${membersCount} ${Translator.translate(\"MEMBERS\", this.context.language)}`;\n\t\t\t\t\tthis.setState({status: status});\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase enums.GROUP_MEMBER_ADDED:\n\t\t\t\tif (this.context.type === CometChat.ACTION_TYPE.TYPE_GROUP && this.context.item.guid === item.guid) {\n\t\t\t\t\tlet membersCount = parseInt(item.membersCount);\n\t\t\t\t\tconst status = `${membersCount} ${Translator.translate(\"MEMBERS\", this.context.language)}`;\n\t\t\t\t\tthis.setState({status: status});\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase enums.TYPING_STARTED:\n\t\t\t\tthis.onTypingStarted(item);\n\t\t\t\tbreak;\n\t\t\tcase enums.TYPING_ENDED: \n\t\t\t\tthis.onTypingEnded(item);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tonTypingStarted = item => {\n\n\t\tconst showTyping = typingText => {\n\t\t\t\n\t\t\t/**\n\t\t\t * if metadata is available, show live reactions else show typing\n\t\t\t */\n\t\t\t// if (item.hasOwnProperty(\"metadata\") && item.metadata && item.metadata.hasOwnProperty(\"type\") && item.metadata.type === enums.CONSTANTS[\"METADATA_TYPE_LIVEREACTION\"]) {\n\t\t\t// \tthis.props.actionGenerated(enums.ACTIONS[\"SHOW_LIVE_REACTION\"], item);\n\t\t\t// } else {\n\n\t\t\t\tif (this.state.enableTypingIndicator === true) {\n\t\t\t\t\tthis.setState({typing: typingText});\n\t\t\t\t} \n\t\t\t//}\n\t\t};\n\n\t\tif (this.context.type === CometChat.ACTION_TYPE.TYPE_GROUP && this.context.type === item.receiverType && this.context.item.guid === item.receiverId) {\n\t\t\tconst typingText = `${item.sender.name} ${Translator.translate(\"IS_TYPING\", this.context.language)}`;\n\t\t\tshowTyping(typingText);\n\t\t} else if (this.context.type === CometChat.ACTION_TYPE.TYPE_USER && this.context.type === item.receiverType && this.context.item.uid === item.sender.uid) {\n\t\t\tconst typingText = `${Translator.translate(\"TYPING\", this.context.language)}`;\n\t\t\tshowTyping(typingText);\n\t\t}\n\t};\n\n\tonTypingEnded = item => {\n\n\t\tconst endTyping = () => {\n\t\t\t/**\n\t\t\t * if metadata is available, end live reactions else end typing\n\t\t\t */\n\t\t\t// if (item.hasOwnProperty(\"metadata\") && item.metadata && item.metadata.hasOwnProperty(\"type\") && item.metadata.type === enums.CONSTANTS[\"METADATA_TYPE_LIVEREACTION\"]) {\n\t\t\t// \tthis.props.actionGenerated(enums.ACTIONS[\"STOP_LIVE_REACTION\"], item);\n\t\t\t// } else {\n\n\t\t\t\tif (this.state.enableTypingIndicator === true) {\n\t\t\t\t\tthis.setState({typing: null});\n\t\t\t\t} \n\t\t\t//}\n\t\t}\n\n\t\tif (this.context.type === CometChat.ACTION_TYPE.TYPE_GROUP && this.context.type === item.receiverType && this.context.item.guid === item.receiverId) {\n\t\t\t\n\t\t\tthis.setStatusForGroup();\n\t\t\tendTyping();\n\n\t\t} else if (this.context.type === CometChat.ACTION_TYPE.TYPE_USER && this.context.type === item.receiverType && this.context.item.uid === item.sender.uid) {\n\n\t\t\tif (this.state.presence === CometChat.USER_STATUS.ONLINE) {\n\t\t\t\tthis.setState({status: Translator.translate(\"ONLINE\", this.context.language), presence: CometChat.USER_STATUS.ONLINE});\n\t\t\t} else {\n\t\t\t\tthis.setStatusForUser();\n\t\t\t}\n\n\t\t\tendTyping();\n\t\t}\n\t};\n\n\ttoggleTooltip = (event, flag) => {\n\t\tconst elem = event.target;\n\t\tconst scrollWidth = elem.scrollWidth;\n\t\tconst clientWidth = elem.clientWidth;\n\n\t\tif (scrollWidth <= clientWidth) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (flag) {\n\t\t\telem.setAttribute(\"title\", elem.textContent);\n\t\t} else {\n\t\t\telem.removeAttribute(\"title\");\n\t\t}\n\t};\n\n\tresetChat = () => {\n\t\tthis.context.setItem({});\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"TOGGLE_SIDEBAR\"]);\n\t};\n\n\t/**\n\t * if typing indicator feature is disabled\n\t */\n\tenableTypingIndicator = () => {\n\t\tthis.context.FeatureRestriction.isTypingIndicatorsEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enableTypingIndicator) {\n\t\t\t\t\tthis.setState({enableTypingIndicator: response});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableTypingIndicator !== false) {\n\t\t\t\t\tthis.setState({enableTypingIndicator: false});\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableGroupVoiceCall = () => {};\n\n\tenableGroupVideoCall = () => {\n\t\tthis.context.FeatureRestriction.isGroupVideoCallEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableGroupVideoCall) {\n\t\t\t\t\tthis.setState({enableGroupVideoCall: response});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableGroupVideoCall !== false) {\n\t\t\t\t\tthis.setState({enableGroupVideoCall: false});\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableOneOnOneVoiceCall = () => {\n\t\tthis.context.FeatureRestriction.isOneOnOneAudioCallEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tconst combinedResponse = response && !this.context.item.blockedByMe;\n\t\t\t\tif (combinedResponse !== this.state.enableOneOnOneVoiceCall) {\n\t\t\t\t\tthis.setState({enableOneOnOneVoiceCall: combinedResponse});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableOneOnOneVoiceCall !== false) {\n\t\t\t\t\tthis.setState({enableOneOnOneVoiceCall: false});\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableOneOnOneVideoCall = () => {\n\t\tthis.context.FeatureRestriction.isOneOnOneVideoCallEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tconst combinedResponse = response && !this.context.item.blockedByMe;\n\t\t\t\tif (combinedResponse !== this.state.enableOneOnOneVideoCall) {\n\t\t\t\t\tthis.setState({enableOneOnOneVideoCall: combinedResponse});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableOneOnOneVideoCall !== false) {\n\t\t\t\t\tthis.setState({enableOneOnOneVideoCall: false});\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableUserPresence = () => {\n\t\tthis.context.FeatureRestriction.isUserPresenceEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enableUserPresence) {\n\t\t\t\t\tthis.setState({enableUserPresence: response});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableUserPresence !== false) {\n\t\t\t\t\tthis.setState({enableUserPresence: false});\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableAddGroupMembers = () => {\n\t\tthis.context.FeatureRestriction.isAddingGroupMembersEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableAddGroupMembers) {\n\t\t\t\t\tthis.setState({enableAddGroupMembers: response});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableAddGroupMembers !== false) {\n\t\t\t\t\tthis.setState({enableAddGroupMembers: false});\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableChangeScope = () => {\n\t\tthis.context.FeatureRestriction.isChangingGroupMemberScopeEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableChangeScope) {\n\t\t\t\t\tthis.setState({enableChangeScope: response});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableChangeScope !== false) {\n\t\t\t\t\tthis.setState({enableChangeScope: false});\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableKickGroupMembers = () => {\n\t\tthis.context.FeatureRestriction.isKickingGroupMembersEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableKickGroupMembers) {\n\t\t\t\t\tthis.setState({enableKickGroupMembers: response});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableKickGroupMembers !== false) {\n\t\t\t\t\tthis.setState({enableKickGroupMembers: false});\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableBanGroupMembers = () => {\n\t\tthis.context.FeatureRestriction.isBanningGroupMembersEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableBanGroupMembers) {\n\t\t\t\t\tthis.setState({enableBanGroupMembers: response});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableBanGroupMembers !== false) {\n\t\t\t\t\tthis.setState({enableBanGroupMembers: false});\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableDeleteGroup = () => {\n\t\tthis.context.FeatureRestriction.isGroupDeletionEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableDeleteGroup) {\n\t\t\t\t\tthis.setState({enableDeleteGroup: response});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableDeleteGroup !== false) {\n\t\t\t\t\tthis.setState({enableDeleteGroup: false});\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableViewGroupMembers = () => {\n\t\tthis.context.FeatureRestriction.isViewingGroupMembersEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableViewGroupMembers) {\n\t\t\t\t\tthis.setState({enableViewGroupMembers: response});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableViewGroupMembers !== false) {\n\t\t\t\t\tthis.setState({enableViewGroupMembers: false});\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableLeaveGroup = () => {\n\t\tthis.context.FeatureRestriction.isJoinLeaveGroupsEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableLeaveGroup) {\n\t\t\t\t\tthis.setState({enableLeaveGroup: response});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableLeaveGroup !== false) {\n\t\t\t\t\tthis.setState({enableLeaveGroup: false});\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableSharedMedia = () => {\n\t\tthis.context.FeatureRestriction.isSharedMediaEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableSharedMedia) {\n\t\t\t\t\tthis.setState({enableSharedMedia: response});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableSharedMedia !== false) {\n\t\t\t\t\tthis.setState({enableSharedMedia: false});\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableBlockUser = () => {\n\t\tthis.context.FeatureRestriction.isBlockUserEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableBlockUser) {\n\t\t\t\t\tthis.setState({enableBlockUser: response});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableBlockUser !== false) {\n\t\t\t\t\tthis.setState({enableBlockUser: false});\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tinitiateAudioCall = () => {\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"INITIATE_AUDIO_CALL\"]);\n\t}\n\n\tinitiateVideoCall = () => {\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"INITIATE_VIDEO_CALL\"]);\n\t}\n\n\tviewDetail = () => {\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"VIEW_DETAIL\"]);\n\t}\n\n\trender() {\n\n\t\tlet avatar, presence;\n\t\tlet videoCallClassName = \"option__videocall-user\";\n\t\tlet audioCallClassName = \"option__audiocall-user\";\n\t\tlet viewDetailClassName = \"option__viewdetail-user\";\n\t\tlet chatWithClassName = \"chat__user\";\n\t\tlet chatNameClassName = \"user__name\";\n\t\tlet chatStatusClassName = \"user__status\";\n\n\t\tif (this.context.type === CometChat.ACTION_TYPE.TYPE_USER) {\n\t\t\tavatar = ;\n\t\t\tpresence = ;\n\t\t} else if (this.context.type === CometChat.ACTION_TYPE.TYPE_GROUP) {\n\t\t\tchatWithClassName = \"chat__group\";\n\t\t\tchatNameClassName = \"group__name\";\n\t\t\tchatStatusClassName = \"group__members\";\n\t\t\tvideoCallClassName = \"option__videocall-group\";\n\t\t\taudioCallClassName = \"option__audiocall-group\";\n\t\t\tviewDetailClassName = \"option__viewdetail-group\";\n\t\t\tavatar = ;\n\t\t}\n\n\t\tlet typing = null;\n\t\tif(this.state.typing) {\n\t\t\ttyping = (\n\t\t\t\t\n\t\t\t\t\t{this.state.typing}\n\t\t\t\t\n\t\t\t);\n\t\t}\n\n\t\tlet status = (\n\t\t\t\n\t\t\t\t{this.state.status}\n\t\t\t\n\t\t);\n\n\t\tconst audioCallText = Translator.translate(\"AUDIO_CALL\", this.context.language);\n\t\tlet audioCallBtn = (\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t);\n\n\t\tif (this.context.checkIfCallIsOngoing()) {\n\t\t\tconst audioCallText = Translator.translate(\"YOU_ALREADY_ONGOING_CALL\", this.context.language);\n\t\t\taudioCallBtn = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tconst videoCallText = Translator.translate(\"VIDEO_CALL\", this.context.language);\n\t\tlet videoCallBtn = (\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t);\n\n\t\tif (this.context.checkIfCallIsOngoing()) {\n\t\t\tconst videoCallText = Translator.translate(\"YOU_ALREADY_ONGOING_CALL\", this.context.language);\n\t\t\tvideoCallBtn = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tconst viewDetailText = Translator.translate(\"VIEW_DETAIL\", this.context.language);\n\t\tlet viewDetailBtn = (\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t);\n\n\t\t/**\n\t\t * If the chat window open is of users and block user and shared media feature is disabled, hide view detail button\n\t\t */\n\t\tif (this.context.type === CometChat.ACTION_TYPE.TYPE_USER) {\n\t\t\tif (this.state.enableBlockUser === false && this.state.enableSharedMedia === false) {\n\t\t\t\tviewDetailBtn = null;\n\t\t\t}\n\t\t} else if (this.context.type === CometChat.ACTION_TYPE.TYPE_GROUP) {\n\t\t\t/**\n\t\t\t * If the chat window open is of group\n\t\t\t */\n\t\t\tif (this.context.item?.scope === CometChat.GROUP_MEMBER_SCOPE.PARTICIPANT) {\n\t\t\t\t/**\n\t\t\t\t * If the loggedin user scope is participant, leave group, view group members, and shared media feature is disabled, hide view detail button\n\t\t\t\t */\n\t\t\t\tif (this.state.enableLeaveGroup === false && this.state.enableSharedMedia === false && this.state.enableViewGroupMembers === false) {\n\t\t\t\t\tviewDetailBtn = null;\n\t\t\t\t}\n\t\t\t} else if (this.context.item?.scope === CometChat.GROUP_MEMBER_SCOPE.MODERATOR) {\n\t\t\t\t/**\n\t\t\t\t * If the loggedin user scope is moderator, leave group, view group members, kick & ban group members, changing scope of group members and shared media feature is disabled, hide view detail button\n\t\t\t\t */\n\t\t\t\tif (this.state.enableLeaveGroup === false && this.state.enableSharedMedia === false && this.state.enableViewGroupMembers === false && this.state.enableKickGroupMembers === false && this.state.enableBanGroupMembers === false && this.state.enableChangeScope === false) {\n\t\t\t\t\tviewDetailBtn = null;\n\t\t\t\t}\n\t\t\t} else if (this.context.item?.scope === CometChat.GROUP_MEMBER_SCOPE.ADMIN) {\n\t\t\t\t/**\n\t\t\t\t * If the loggedin user scope is admin, add group members, view group members, kick & ban group members, changing scope of group members, leave and delete group and shared media feature is disabled, hide view detail button\n\t\t\t\t */\n\t\t\t\tif (\n\t\t\t\t\tthis.state.enableLeaveGroup === false &&\n\t\t\t\t\tthis.state.enableSharedMedia === false &&\n\t\t\t\t\tthis.state.enableViewGroupMembers === false &&\n\t\t\t\t\tthis.state.enableKickGroupMembers === false &&\n\t\t\t\t\tthis.state.enableBanGroupMembers === false &&\n\t\t\t\t\tthis.state.enableChangeScope === false &&\n\t\t\t\t\tthis.state.enableDeleteGroup === false &&\n\t\t\t\t\tthis.state.enableAddGroupMembers === false\n\t\t\t\t) {\n\t\t\t\t\tviewDetailBtn = null;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t//if audiocall feature is disabled\n\t\tif ((this.context.type === CometChat.ACTION_TYPE.TYPE_USER && this.state.enableOneOnOneVoiceCall === false) || (this.context.type === CometChat.ACTION_TYPE.TYPE_GROUP && this.state.enableGroupVoiceCall === false)) {\n\t\t\taudioCallBtn = null;\n\t\t}\n\n\t\t//if videocall feature is disabled\n\t\tif ((this.context.type === CometChat.ACTION_TYPE.TYPE_USER && this.state.enableOneOnOneVideoCall === false) || (this.context.type === CometChat.ACTION_TYPE.TYPE_GROUP && this.state.enableGroupVideoCall === false)) {\n\t\t\tvideoCallBtn = null;\n\t\t}\n\n\t\t//if user presence is disabled in chat widget\n\t\tif (this.state.enableUserPresence === false && this.context.type === CometChat.ACTION_TYPE.TYPE_USER) {\n\t\t\tstatus = null;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{avatar}\n\t\t\t\t\t\t{presence}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    this.toggleTooltip(event, true)} onMouseLeave={event => this.toggleTooltip(event, false)}>\n\t\t\t\t\t\t\t{this.context.item.name}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{typing ? typing : status}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{videoCallBtn}\n\t\t\t\t\t{audioCallBtn}\n\t\t\t\t\t{viewDetailBtn}\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatMessageHeader.defaultProps = {\n theme: theme,\n item: {},\n type: \"\"\n};\n\nCometChatMessageHeader.propTypes = {\n theme: PropTypes.object,\n item: PropTypes.object,\n type: PropTypes.string\n}\n\nexport { CometChatMessageHeader };","import { CometChat } from \"@cometchat-pro/chat\";\n\nimport * as enums from \"../../../util/enums\";\n\nclass MessageFilter {\n\n\tcategories = {};\n\ttypes = null;\n\tcontext;\n\n\tconstructor(context) {\n\n this.context = context;\n\n\t\tthis.categories = {\n\t\t\t[CometChat.CATEGORY_MESSAGE]: CometChat.CATEGORY_MESSAGE,\n\t\t\t[CometChat.CATEGORY_CUSTOM]: CometChat.CATEGORY_CUSTOM,\n\t\t\t[CometChat.CATEGORY_ACTION]: CometChat.CATEGORY_ACTION,\n\t\t\t[CometChat.CATEGORY_CALL]: CometChat.CATEGORY_CALL,\n\t\t};\n\n\t\tthis.types = {\n\t\t\t[CometChat.MESSAGE_TYPE.TEXT]: CometChat.MESSAGE_TYPE.TEXT,\n\t\t\t[CometChat.MESSAGE_TYPE.IMAGE]: CometChat.MESSAGE_TYPE.IMAGE,\n\t\t\t[CometChat.MESSAGE_TYPE.VIDEO]: CometChat.MESSAGE_TYPE.VIDEO,\n\t\t\t[CometChat.MESSAGE_TYPE.AUDIO]: CometChat.MESSAGE_TYPE.AUDIO,\n\t\t\t[CometChat.MESSAGE_TYPE.FILE]: CometChat.MESSAGE_TYPE.FILE,\n\t\t\t[enums.CUSTOM_TYPE_POLL]: enums.CUSTOM_TYPE_POLL,\n\t\t\t[enums.CUSTOM_TYPE_STICKER]: enums.CUSTOM_TYPE_STICKER,\n\t\t\t[enums.CUSTOM_TYPE_DOCUMENT]: enums.CUSTOM_TYPE_DOCUMENT,\n\t\t\t[enums.CUSTOM_TYPE_WHITEBOARD]: enums.CUSTOM_TYPE_WHITEBOARD,\n\t\t\t[enums.CUSTOM_TYPE_MEETING]: enums.CUSTOM_TYPE_MEETING,\n\t\t\t[CometChat.ACTION_TYPE.TYPE_GROUP_MEMBER]: CometChat.ACTION_TYPE.TYPE_GROUP_MEMBER,\n\t\t\t[CometChat.CALL_TYPE.AUDIO]: CometChat.CALL_TYPE.AUDIO,\n\t\t\t[CometChat.CALL_TYPE.VIDEO]: CometChat.CALL_TYPE.VIDEO,\n\t\t};\n\t}\n\n\tgetCategories = () => {\n\n\t\tconst categories = {...this.categories};\n\n\t\treturn new Promise(resolve => {\n\t\t\tthis.context.FeatureRestriction.isGroupActionMessagesEnabled()\n\t\t\t\t.then(response => {\n\t\t\t\t\tif (response === false) {\n\t\t\t\t\t\tdelete categories[CometChat.CATEGORY_ACTION];\n\t\t\t\t\t}\n\t\t\t\t\treturn categories;\n\t\t\t\t})\n\t\t\t\t.catch(error => {\n\t\t\t\t\tdelete categories[CometChat.CATEGORY_ACTION];\n\t\t\t\t\treturn categories;\n\t\t\t\t})\n\t\t\t\t.then(categories => {\n\t\t\t\t\tthis.context.FeatureRestriction.isCallActionMessagesEnabled()\n\t\t\t\t\t\t.then(response => {\n\t\t\t\t\t\t\tif (response === false) {\n\t\t\t\t\t\t\t\tdelete categories[CometChat.CATEGORY_CALL];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tresolve(categories);\n\t\t\t\t\t\t})\n\t\t\t\t\t\t.catch(error => {\n\t\t\t\t\t\t\tdelete categories[CometChat.CATEGORY_CALL];\n\t\t\t\t\t\t\tresolve(categories);\n\t\t\t\t\t\t});\n\t\t\t\t});\n\t\t});\n\t};\n\n\tgetTypes = () => {\n\n const types = {...this.types};\n return new Promise(resolve => resolve(types));\n\t};\n}\n\nexport default MessageFilter;","import { CometChat } from \"@cometchat-pro/chat\";\n\nimport * as enums from \"../../../util/enums.js\";\nimport MessageFilter from \"./MessageFilter\";\n\nexport class MessageListManager {\n\n item = {};\n type = \"\";\n parentMessageId = null;\n messageRequest = null;\n limit = 30;\n \n msgListenerId = \"message_\" + new Date().getTime();\n groupListenerId = \"group_\" + new Date().getTime();\n callListenerId = \"call_\" + new Date().getTime(); \n\n constructor(context, item, type, parentMessageId) {\n\n this.item = item;\n this.type = type;\n this.parentMessageId = parentMessageId;\n this.context = context;\n }\n\n initializeMessageRequest = () => {\n\n return new Promise(resolve => {\n\n let categories = {};\n let types = {};\n\n let messageFilterManager = new MessageFilter(this.context);\n\n messageFilterManager\n .getCategories()\n .then(categoryList => categories = Object.keys(categoryList))\n .then(() => messageFilterManager.getTypes())\n .then(typeList => types = Object.keys(typeList))\n .then(() => this.context.FeatureRestriction.isHideDeletedMessagesEnabled())\n .then(hideDeletedMessages => {\n if (this.type === CometChat.ACTION_TYPE.TYPE_USER) {\n if (this.parentMessageId) {\n this.messageRequest = new CometChat.MessagesRequestBuilder().setUID(this.item.uid).setParentMessageId(this.parentMessageId).setCategories(categories).setTypes(types).hideDeletedMessages(hideDeletedMessages).setLimit(this.limit).build();\n } else {\n this.messageRequest = new CometChat.MessagesRequestBuilder().setUID(this.item.uid).setCategories(categories).setTypes(types).hideReplies(true).hideDeletedMessages(hideDeletedMessages).setLimit(this.limit).build();\n }\n resolve(this.messageRequest);\n } else if (this.type === CometChat.ACTION_TYPE.TYPE_GROUP) {\n if (this.parentMessageId) {\n this.messageRequest = new CometChat.MessagesRequestBuilder().setGUID(this.item.guid).setParentMessageId(this.parentMessageId).setCategories(categories).setTypes(types).hideDeletedMessages(hideDeletedMessages).setLimit(this.limit).build();\n } else {\n this.messageRequest = new CometChat.MessagesRequestBuilder().setGUID(this.item.guid).setCategories(categories).setTypes(types).hideReplies(true).hideDeletedMessages(hideDeletedMessages).setLimit(this.limit).build();\n }\n resolve(this.messageRequest);\n }\n });\n\n });\n }\n\n fetchPreviousMessages() {\n return this.messageRequest.fetchPrevious();\n }\n\n attachListeners(callback) {\n \n CometChat.addMessageListener(\n this.msgListenerId,\n new CometChat.MessageListener({\n onTextMessageReceived: textMessage => {\n callback(enums.TEXT_MESSAGE_RECEIVED, textMessage);\n },\n onMediaMessageReceived: mediaMessage => {\n callback(enums.MEDIA_MESSAGE_RECEIVED, mediaMessage);\n },\n onCustomMessageReceived: customMessage => {\n callback(enums.CUSTOM_MESSAGE_RECEIVED, customMessage);\n },\n onMessagesDelivered: messageReceipt => {\n callback(enums.MESSAGE_DELIVERED, messageReceipt);\n },\n onMessagesRead: messageReceipt => {\n callback(enums.MESSAGE_READ, messageReceipt);\n },\n onMessageDeleted: deletedMessage => {\n callback(enums.MESSAGE_DELETED, deletedMessage);\n },\n onMessageEdited: editedMessage => {\n callback(enums.MESSAGE_EDITED, editedMessage);\n },\n onTransientMessageReceived: transientMessage => {\n callback(enums.TRANSIENT_MESSAGE_RECEIVED, transientMessage);\n }\n })\n );\n\n CometChat.addGroupListener(\n this.groupListenerId,\n new CometChat.GroupListener({\n onGroupMemberScopeChanged: (message, changedUser, newScope, oldScope, changedGroup) => {\n callback(enums.GROUP_MEMBER_SCOPE_CHANGED, message, changedGroup, {\"user\": changedUser, \"scope\": newScope});\n }, \n onGroupMemberKicked: (message, kickedUser, kickedBy, kickedFrom) => {\n callback(enums.GROUP_MEMBER_KICKED, message, kickedFrom, {\"user\": kickedUser, \"hasJoined\": false});\n }, \n onGroupMemberBanned: (message, bannedUser, bannedBy, bannedFrom) => {\n callback(enums.GROUP_MEMBER_BANNED, message, bannedFrom, {\"user\": bannedUser});\n }, \n onGroupMemberUnbanned: (message, unbannedUser, unbannedBy, unbannedFrom) => {\n callback(enums.GROUP_MEMBER_UNBANNED, message, unbannedFrom, {\"user\": unbannedUser});\n }, \n onMemberAddedToGroup: (message, userAdded, userAddedBy, userAddedIn) => {\n callback(enums.GROUP_MEMBER_ADDED, message, userAddedIn, {\"user\": userAdded, \"hasJoined\": true});\n }, \n onGroupMemberLeft: (message, leavingUser, group) => {\n callback(enums.GROUP_MEMBER_LEFT, message, group, {\"user\": leavingUser});\n }, \n onGroupMemberJoined: (message, joinedUser, joinedGroup) => {\n callback(enums.GROUP_MEMBER_JOINED, message, joinedGroup, {\"user\": joinedUser});\n }\n })\n );\n \n CometChat.addCallListener(\n this.callListenerId,\n new CometChat.CallListener({\n onIncomingCallReceived: call => {\n callback(enums.INCOMING_CALL_RECEIVED, call);\n },\n onIncomingCallCancelled: call => {\n callback(enums.INCOMING_CALL_CANCELLED, call);\n },\n onOutgoingCallAccepted: call => {\n callback(enums.OUTGOING_CALL_ACCEPTED, call);\n },\n onOutgoingCallRejected: call => {\n callback(enums.OUTGOING_CALL_REJECTED, call);\n }\n })\n );\n }\n\n removeListeners() {\n\n CometChat.removeMessageListener(this.msgListenerId);\n CometChat.removeGroupListener(this.groupListenerId);\n CometChat.removeCallListener(this.callListenerId);\n }\n}","export const chatListStyle = context => {\n\n\treturn {\n\t\tbackgroundColor: `${context.theme.backgroundColor.white}`,\n\t\tzIndex: \"1\",\n\t\twidth: \"100%\",\n\t\tflex: \"1 1 0\",\n\t\torder: \"2\",\n\t\tposition: \"relative\",\n\t};\n};\n\nexport const listWrapperStyle = () => {\n\n return {\n boxSizing: \"border-box\",\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\",\n overflowX: \"hidden\",\n overflowY: \"scroll\",\n position: \"absolute\",\n top: \"0\",\n transition: \"background .3s ease-out .1s\",\n width: \"100%\",\n zIndex: \"100\",\n paddingTop: \"16px\"\n }\n}\n\nexport const messageDateContainerStyle = () => {\n\n return {\n marginBottom: \"16px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"35px\",\n }\n}\n\nexport const messageDateStyle = context => {\n\n\treturn {\n\t\tpadding: \"8px 12px\",\n\t\tbackgroundColor: `${context.theme.backgroundColor.secondary}`,\n\t\tcolor: `${context.theme.color.primary}`,\n\t\tborderRadius: \"10px\",\n\t};\n};\n\nexport const decoratorMessageStyle = () => {\n\n return {\n overflow: \"hidden\",\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n position: \"absolute\",\n top: \"50%\",\n }\n}\n\nexport const decoratorMessageTxtStyle = context => {\n\n\treturn {\n\t\tmargin: \"0\",\n\t\theight: \"36px\",\n\t\tcolor: `${context.theme.color.secondary}`,\n\t\tfontSize: \"20px!important\",\n\t\tfontWeight: \"600\",\n\t\tlineHeight: \"30px\",\n\t};\n};","import React from \"react\";\nimport dateFormat from \"dateformat\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { MessageListManager } from \"./controller\";\n\nimport { \n CometChatSenderTextMessageBubble, CometChatReceiverTextMessageBubble,\n CometChatSenderImageMessageBubble, CometChatReceiverImageMessageBubble,\n CometChatSenderFileMessageBubble, CometChatReceiverFileMessageBubble,\n CometChatSenderAudioMessageBubble, CometChatReceiverAudioMessageBubble,\n CometChatSenderVideoMessageBubble, CometChatReceiverVideoMessageBubble,\n CometChatSenderDirectCallBubble, CometChatReceiverDirectCallBubble,\n CometChatDeleteMessageBubble, CometChatActionMessageBubble\n} from \"../\"\n\nimport {\n CometChatSenderPollMessageBubble, CometChatReceiverPollMessageBubble,\n CometChatSenderStickerBubble, CometChatReceiverStickerMessageBubble,\n CometChatSenderDocumentBubble, CometChatReceiverDocumentBubble,\n CometChatSenderWhiteboardBubble, CometChatReceiverWhiteboardBubble,\n} from \"../Extensions\"\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\nimport { getMessageDate } from \"../../../util/common\";\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport { \n\tchatListStyle,\n\tlistWrapperStyle,\n\tmessageDateContainerStyle,\n\tmessageDateStyle,\n\tdecoratorMessageStyle,\n\tdecoratorMessageTxtStyle\n} from \"./style\";\n\nclass CometChatMessageList extends React.PureComponent {\n\tloggedInUser = null;\n\tlastScrollTop = 0;\n\ttimes = 0;\n\titem = {};\n\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props, context) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\tonItemClick: null,\n\t\t\tloggedInUser: null,\n\t\t\tdecoratorMessage: Translator.translate(\"LOADING\", context.language),\n\t\t};\n\n\t\tthis.messagesEnd = React.createRef();\t\n\t}\n\n\tcomponentDidMount() {\n\n\t\tCometChat.getLoggedinUser()\n\t\t\t.then(user => {\n\t\t\t\tthis.setState({\n\t\t\t\t\tloggedInUser: user,\n\t\t\t\t});\n\t\t\t})\n\t\t\t.catch(error => this.props.actionGenerated(enums.ACTIONS[\"ERROR\"], [], \"SOMETHING_WRONG\"));\n\t\t\n\t\tif (Object.keys(this.context.item).length === 0 && this.context.type.trim().length === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.item = this.context.type === CometChat.ACTION_TYPE.TYPE_USER || CometChat.ACTION_TYPE.TYPE_GROUP ? this.context.item : {};\n\n\t\tif (this.props.parentMessageId) {\n\t\t\tthis.MessageListManager = new MessageListManager(this.context, this.context.item, this.context.type, this.props.parentMessageId);\n\t\t} else {\n\t\t\tthis.MessageListManager = new MessageListManager(this.context, this.context.item, this.context.type);\n\t\t}\n\n\t\t\n\t\tthis.MessageListManager.initializeMessageRequest().then(() => {\n\t\t\tthis.messageHandler(this.context.item, enums.ACTIONS[\"MESSAGES_INITIAL_FETCH\"]);\n\t\t\tthis.MessageListManager.attachListeners(this.messageUpdated);\n\t\t});\n\t}\n\n\tcomponentDidUpdate(prevProps, prevState) {\n\n\t\tconst ifChatWindowChanged = () => {\n\t\t\tlet output = false;\n\n\t\t\tif (this.context.type === CometChat.ACTION_TYPE.TYPE_USER && this.context.item.uid !== this.item.uid) {\n\t\t\t\toutput = true;\n\t\t\t} else if (this.context.type === CometChat.ACTION_TYPE.TYPE_GROUP && this.context.item.guid !== this.item.guid) {\n\t\t\t\toutput = true;\n\t\t\t} else if (prevProps.parentMessageId !== this.props.parentMessageId) {\n\t\t\t\toutput = true;\n\t\t\t}\n\t\t\treturn output;\n\t\t};\n\n\t\tif (ifChatWindowChanged() === true) {\n\t\t\tthis.messageCount = 0;\n\t\t\tthis.setState({ decoratorMessage: Translator.translate(\"LOADING\", this.context.language) });\n\n\t\t\tthis.MessageListManager?.removeListeners();\n\n\t\t\tif (this.props.parentMessageId) {\n\t\t\t\tthis.MessageListManager = new MessageListManager(this.context, this.context.item, this.context.type, this.props.parentMessageId);\n\t\t\t} else {\n\t\t\t\tthis.MessageListManager = new MessageListManager(this.context, this.context.item, this.context.type);\n\t\t\t}\n\n\t\t\tthis.MessageListManager.initializeMessageRequest().then(() => {\n\t\t\t\tthis.messageHandler(this.context.item, enums.ACTIONS[\"MESSAGES_INITIAL_FETCH\"]);\n\t\t\t\tthis.MessageListManager?.attachListeners(this.messageUpdated);\n\t\t\t});\n\t\t}\n\n\t\tconst previousMessageStr = JSON.stringify(prevProps.messages);\n\t\tconst currentMessageStr = JSON.stringify(this.props.messages);\n\n\t\tif (previousMessageStr !== currentMessageStr) {\n\t\t\tif (this.props.scrollToBottom) {\n\t\t\t\tthis.scrollToBottom();\n\t\t\t} else {\n\t\t\t\tthis.scrollToBottom(this.lastScrollTop);\n\t\t\t}\n\t\t}\n\n\t\tthis.item = this.context.type === CometChat.ACTION_TYPE.TYPE_USER || CometChat.ACTION_TYPE.TYPE_GROUP ? this.context.item : {};\n\t\tif (this.context.leftGroupId.trim().length) {\n\t\t\tthis.item = {};\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.MessageListManager?.removeListeners();\n\t\tthis.MessageListManager = null;\n\t}\n\n\tscrollToBottom = (scrollHeight = 0) => {\n\n\t\tif (this.messagesEnd) {\n\t\t\tthis.messagesEnd.scrollTop = this.messagesEnd.scrollHeight - scrollHeight;\n\t\t}\n\t};\n\n\tmessageHandler = (item, actionGenerated = enums.ACTIONS[\"MESSAGES_FETCHED\"]) => {\n\t\tthis.fetchMessages()\n\t\t\t.then(messageList => {\n\t\t\t\tif (messageList.length === 0) {\n\t\t\t\t\tthis.setState({ decoratorMessage: Translator.translate(\"NO_MESSAGES_FOUND\", this.context.language) });\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState({ decoratorMessage: \"\" });\n\t\t\t\t}\n\n\t\t\t\t//updating messagecount variable\n\t\t\t\tthis.messageCount = messageList.length;\n\n\t\t\t\tmessageList.forEach(message => {\n\t\t\t\t\t//if the sender of the message is not the loggedin user\n\t\t\t\t\tif (message.getSender().getUid() !== this.state.loggedInUser?.uid) {\n\t\t\t\t\t\t//mark the message as delivered\n\t\t\t\t\t\tthis.markMessageAsDelivered(message);\n\n\t\t\t\t\t\t//mark the message as read\n\t\t\t\t\t\tif (message.hasOwnProperty(\"readAt\") === false) {\n\t\t\t\t\t\t\tCometChat.markAsRead(message);\n\t\t\t\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"MESSAGE_READ\"], message);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tthis.lastScrollTop = this.messagesEnd.scrollHeight;\n\n\t\t\t\t//abort(don't return messagelist), when the chat window changes\n\t\t\t\tif ((item.hasOwnProperty(\"uid\") && this.context.item.hasOwnProperty(\"uid\") && item.uid === this.context.item.uid) || (item.hasOwnProperty(\"guid\") && this.context.item.hasOwnProperty(\"guid\") && item.guid === this.context.item.guid)) {\n\t\t\t\t\tthis.props.actionGenerated(actionGenerated, messageList);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.props.messages.length === 0) {\n\t\t\t\t\tthis.setState({ decoratorMessage: Translator.translate(\"SOMETHING_WRONG\", this.context.language) });\n\t\t\t\t}\n\n\t\t\t\tif (error && error.hasOwnProperty(\"code\") && error.code === \"ERR_GUID_NOT_FOUND\") {\n\t\t\t\t\t//this.context.setDeletedGroupId(this.context.item.guid);\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tfetchMessages = () => {\n\t\tconst promise = new Promise((resolve, reject) => {\n\t\t\tthis.MessageListManager.fetchPreviousMessages()\n\t\t\t\t.then(messageList => {\n\t\t\t\t\tresolve(messageList);\n\t\t\t\t})\n\t\t\t\t.catch(error => reject(error));\n\t\t});\n\n\t\treturn promise;\n\t};\n\n\t//callback for listener functions\n\tmessageUpdated = (key, message, group, options) => {\n\n\t\tswitch (key) \n\t\t{\n\t\t\tcase enums.MESSAGE_DELETED:\n\t\t\t\tthis.onMessageDeleted(message);\n\t\t\t\tbreak;\n\t\t\tcase enums.MESSAGE_EDITED:\n\t\t\t\tthis.onMessageEdited(message);\n\t\t\t\tbreak;\n\t\t\tcase enums.MESSAGE_DELIVERED:\n\t\t\tcase enums.MESSAGE_READ:\n\t\t\t\tthis.onMessageReadAndDelivered(message);\n\t\t\t\tbreak;\n\t\t\tcase enums.TEXT_MESSAGE_RECEIVED:\n\t\t\tcase enums.MEDIA_MESSAGE_RECEIVED:\n\t\t\t\tthis.onMessageReceived(message);\n\t\t\t\tbreak;\n\t\t\tcase enums.CUSTOM_MESSAGE_RECEIVED:\n\t\t\t\tthis.onCustomMessageReceived(message);\n\t\t\t\tbreak;\n\t\t\tcase enums.GROUP_MEMBER_SCOPE_CHANGED:\n\t\t\tcase enums.GROUP_MEMBER_JOINED:\n\t\t\tcase enums.GROUP_MEMBER_LEFT:\n\t\t\tcase enums.GROUP_MEMBER_ADDED:\n\t\t\tcase enums.GROUP_MEMBER_KICKED:\n\t\t\tcase enums.GROUP_MEMBER_BANNED:\n\t\t\tcase enums.GROUP_MEMBER_UNBANNED:\n\t\t\t\tthis.onGroupUpdated(key, message, group, options);\n\t\t\t\tbreak;\n\t\t\tcase enums.INCOMING_CALL_RECEIVED:\n\t\t\tcase enums.INCOMING_CALL_CANCELLED:\n\t\t\tcase enums.OUTGOING_CALL_ACCEPTED:\n\t\t\tcase enums.OUTGOING_CALL_REJECTED:\n\t\t\t\tthis.onCallUpdated(key, message);\n\t\t\t\tbreak;\n\t\t\tcase enums.TRANSIENT_MESSAGE_RECEIVED:\n\t\t\t\tthis.onTransientMessageReceived(key, message);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tonMessageDeleted = message => {\n\t\tif (this.context.type === CometChat.RECEIVER_TYPE.GROUP && message.getReceiverType() === CometChat.RECEIVER_TYPE.GROUP && message.getReceiverId() === this.context.item.guid) {\n\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"ON_MESSAGE_DELETED\"], [message]);\n\t\t} else if (this.context.type === CometChat.RECEIVER_TYPE.USER && message.getReceiverType() === CometChat.RECEIVER_TYPE.USER && message.getSender().uid === this.context.item.uid) {\n\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"ON_MESSAGE_DELETED\"], [message]);\n\t\t}\n\t};\n\n\tonMessageEdited = message => {\n\t\tconst messageList = [...this.props.messages];\n\t\tconst updateEditedMessage = message => {\n\t\t\tlet messageKey = messageList.findIndex(m => m.id === message.id);\n\n\t\t\tif (messageKey > -1) {\n\t\t\t\tconst messageObj = messageList[messageKey];\n\t\t\t\tconst newMessageObj = Object.assign({}, messageObj, message);\n\n\t\t\t\tmessageList.splice(messageKey, 1, newMessageObj);\n\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"ON_MESSAGE_EDITED\"], messageList, newMessageObj);\n\t\t\t}\n\t\t};\n\n\t\tif (this.context.type === CometChat.RECEIVER_TYPE.GROUP && message.getReceiverType() === CometChat.RECEIVER_TYPE.GROUP && message.getReceiverId() === this.context.item.guid) {\n\t\t\tupdateEditedMessage(message);\n\t\t} else if (this.context.type === CometChat.RECEIVER_TYPE.USER && message.getReceiverType() === CometChat.RECEIVER_TYPE.USER && this.state.loggedInUser?.uid === message.getReceiverId() && message.getSender().uid === this.context.item.uid) {\n\t\t\tupdateEditedMessage(message);\n\t\t} else if (this.context.type === CometChat.RECEIVER_TYPE.USER && message.getReceiverType() === CometChat.RECEIVER_TYPE.USER && this.state.loggedInUser?.uid === message.getSender().uid && message.getReceiverId() === this.context.item.uid) {\n\t\t\tupdateEditedMessage(message);\n\t\t}\n\t};\n\n\tonMessageReadAndDelivered = message => {\n\n\t\t//read receipts\n\t\tif (message.getReceiverType() === CometChat.RECEIVER_TYPE.USER && message.getSender().getUid() === this.context.item.uid && message.getReceiver() === this.state.loggedInUser?.uid) {\n\t\t\tlet messageList = [...this.props.messages];\n\n\t\t\tif (message.getReceiptType() === \"delivery\") {\n\t\t\t\t//search for message\n\n\t\t\t\tlet messageKey = messageList.findIndex(m => m.id === message.messageId);\n\n\t\t\t\tif (messageKey > -1) {\n\t\t\t\t\tlet messageObj = messageList[messageKey];\n\t\t\t\t\tlet newMessageObj = Object.assign({}, messageObj, { deliveredAt: message.getDeliveredAt() });\n\n\t\t\t\t\tmessageList.splice(messageKey, 1, newMessageObj);\n\t\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"ON_MESSAGE_READ_DELIVERED\"], messageList);\n\t\t\t\t}\n\t\t\t} else if (message.getReceiptType() === \"read\") {\n\t\t\t\t//search for message\n\t\t\t\tlet messageKey = messageList.findIndex(m => m.id === message.messageId);\n\n\t\t\t\tif (messageKey > -1) {\n\t\t\t\t\tlet messageObj = { ...messageList[messageKey] };\n\t\t\t\t\tlet newMessageObj = Object.assign({}, messageObj, { readAt: message.getReadAt() });\n\n\t\t\t\t\tmessageList.splice(messageKey, 1, newMessageObj);\n\t\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"ON_MESSAGE_READ_DELIVERED\"], messageList);\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (message.getReceiverType() === CometChat.RECEIVER_TYPE.GROUP && message.getReceiver() === this.context.item.guid) {\n\t\t\t//not implemented\n\t\t}\n\t};\n\n\treInitializeMessageBuilder = () => {\n\t\tif (this.props.hasOwnProperty(\"parentMessageId\") === false) {\n\t\t\tthis.messageCount = 0;\n\t\t}\n\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"REFRESHING_MESSAGES\"], []);\n\t\tthis.setState({ decoratorMessage: Translator.translate(\"LOADING\", this.context.language) });\n\t\tthis.MessageListManager.removeListeners();\n\n\t\tif (this.props.parentMessageId) {\n\t\t\tthis.MessageListManager = new MessageListManager(this.context, this.context.item, this.context.type, this.props.parentMessageId);\n\t\t} else {\n\t\t\tthis.MessageListManager = new MessageListManager(this.context, this.context.item, this.context.type);\n\t\t}\n\n\t\tthis.MessageListManager.initializeMessageRequest().then(() => {\n\t\t\tthis.messageHandler(this.context.item, enums.ACTIONS[\"MESSAGES_REFRESHED\"]);\n\t\t\tthis.MessageListManager.attachListeners(this.messageUpdated);\n\t\t});\n\t};\n\n\t//mark the message as delivered\n\tmarkMessageAsDelivered = message => {\n\n\t\tif (message.sender?.uid !== this.state.loggedInUser?.uid && message.hasOwnProperty(\"deliveredAt\") === false) {\n\t\t\tCometChat.markAsDelivered(message);\n\t\t}\n\t};\n\n\tmarkMessageAsRead = (message, type) => {\n\t\tif (message.hasOwnProperty(\"readAt\") === false) {\n\t\t\tCometChat.markAsRead(message);\n\t\t}\n\t};\n\n\tonMessageReceived = message => {\n\n\t\t//mark the message as delivered\n\t\tthis.markMessageAsDelivered(message);\n\n\t\t/**\n\t\t * message receiver is chat window group\n\t\t */\n\t\tif (this.context.type === CometChat.RECEIVER_TYPE.GROUP && message.getReceiverType() === CometChat.RECEIVER_TYPE.GROUP && message.getReceiverId() === this.context.item.guid) {\n\t\t\tthis.messageReceivedHandler(message, CometChat.RECEIVER_TYPE.GROUP);\n\t\t} else if (this.context.type === CometChat.RECEIVER_TYPE.USER && message.getReceiverType() === CometChat.RECEIVER_TYPE.USER) {\n\t\t\t/**\n\t\t\t * If the message sender is chat window user and message receiver is logged-in user\n\t\t\t * OR\n\t\t\t * If the message sender is logged-in user and message receiver is chat window user\n\t\t\t */\n\t\t\tif ((message.getSender().uid === this.context.item.uid && message.getReceiverId() === this.state.loggedInUser?.uid) || (message.getSender().uid === this.state.loggedInUser?.uid && message.getReceiverId() === this.context.item.uid)) {\n\t\t\t\tthis.messageReceivedHandler(message, CometChat.RECEIVER_TYPE.USER);\n\t\t\t}\n\t\t}\n\t};\n\n\tmessageReceivedHandler = (message, type) => {\n\t\t//handling dom lag - increment count only for main message list\n\t\tif (message.hasOwnProperty(\"parentMessageId\") === false && this.props.hasOwnProperty(\"parentMessageId\") === false) {\n\t\t\t++this.messageCount;\n\n\t\t\t//if the user has not scrolled in chat window(scroll is at the bottom of the chat window)\n\t\t\tif (this.messagesEnd.scrollHeight - this.messagesEnd.scrollTop - this.messagesEnd.clientHeight < 20) {\n\t\t\t\tif (this.messageCount > enums.CONSTANTS[\"MAX_MESSAGE_COUNT\"]) {\n\t\t\t\t\tthis.reInitializeMessageBuilder();\n\t\t\t\t} else {\n\t\t\t\t\tthis.markMessageAsRead(message, type);\n\t\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"MESSAGE_RECEIVED\"], [message]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t//if the user has scrolled up in chat window\n\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"NEW_MESSAGES\"], [message]);\n\t\t\t}\n\t\t} else if (message.hasOwnProperty(\"parentMessageId\") === true && this.props.hasOwnProperty(\"parentMessageId\") === true) {\n\t\t\tif (message.parentMessageId === this.props.parentMessageId) {\n\t\t\t\tthis.markMessageAsRead(message, type);\n\t\t\t}\n\n\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"MESSAGE_RECEIVED\"], [message]);\n\t\t} else {\n\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"MESSAGE_RECEIVED\"], [message]);\n\t\t}\n\t};\n\n\t//polls, stickers, collaborative document, collaborative whiteboard\n\tonCustomMessageReceived = message => {\n\t\t//mark the message as delivered\n\t\tthis.markMessageAsDelivered(message);\n\n\t\t//new messages\n\t\tif (\n\t\t\tthis.context.type === CometChat.RECEIVER_TYPE.GROUP &&\n\t\t\tmessage.getReceiverType() === CometChat.RECEIVER_TYPE.GROUP &&\n\t\t\tthis.state.loggedInUser?.uid === message.getSender().uid &&\n\t\t\tmessage.getReceiverId() === this.context.item.guid &&\n\t\t\t(message.type === enums.CUSTOM_TYPE_POLL || message.type === enums.CUSTOM_TYPE_DOCUMENT || message.type === enums.CUSTOM_TYPE_WHITEBOARD)\n\t\t) {\n\t\t\t//showing polls, collaborative document and whiteboard for sender (custom message received listener for sender)\n\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"CUSTOM_MESSAGE_RECEIVED\"], [message]);\n\t\t} else if (this.context.type === CometChat.RECEIVER_TYPE.GROUP && message.getReceiverType() === CometChat.RECEIVER_TYPE.GROUP && message.getReceiverId() === this.context.item.guid) {\n\t\t\tthis.customMessageReceivedHandler(message, CometChat.RECEIVER_TYPE.GROUP);\n\t\t} else if (this.context.type === CometChat.RECEIVER_TYPE.USER && message.getReceiverType() === CometChat.RECEIVER_TYPE.USER && message.getSender().uid === this.context.item.uid) {\n\t\t\tthis.customMessageReceivedHandler(message, CometChat.RECEIVER_TYPE.USER);\n\t\t} else if (\n\t\t\tthis.context.type === CometChat.RECEIVER_TYPE.USER &&\n\t\t\tmessage.getReceiverType() === CometChat.RECEIVER_TYPE.USER &&\n\t\t\tthis.state.loggedInUser?.uid === message.getSender().uid &&\n\t\t\tmessage.getReceiverId() === this.context.item.uid &&\n\t\t\t(message.type === enums.CUSTOM_TYPE_POLL || message.type === enums.CUSTOM_TYPE_DOCUMENT || message.type === enums.CUSTOM_TYPE_WHITEBOARD)\n\t\t) {\n\t\t\t//showing polls, collaborative document and whiteboard for sender (custom message received listener for sender)\n\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"CUSTOM_MESSAGE_RECEIVED\"], [message]);\n\t\t}\n\t};\n\n\tcustomMessageReceivedHandler = (message, type) => {\n\t\t//handling dom lag - increment count only for main message list\n\t\tif (message.hasOwnProperty(\"parentMessageId\") === false && this.props.hasOwnProperty(\"parentMessageId\") === false) {\n\t\t\t++this.messageCount;\n\n\t\t\t//if the user has not scrolled in chat window(scroll is at the bottom of the chat window)\n\t\t\tif (this.messagesEnd.scrollHeight - this.messagesEnd.scrollTop === this.messagesEnd.clientHeight) {\n\t\t\t\tif (this.messageCount > enums.CONSTANTS[\"MAX_MESSAGE_COUNT\"]) {\n\t\t\t\t\tthis.reInitializeMessageBuilder();\n\t\t\t\t} else {\n\t\t\t\t\tthis.markMessageAsRead(message, type);\n\t\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"CUSTOM_MESSAGE_RECEIVED\"], [message]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t//if the user has scrolled in chat window\n\n\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"NEW_MESSAGES\"], [message]);\n\t\t\t}\n\t\t} else if (message.hasOwnProperty(\"parentMessageId\") === true && this.props.hasOwnProperty(\"parentMessageId\") === true) {\n\t\t\tif (message.parentMessageId === this.props.parentMessageId) {\n\t\t\t\tthis.markMessageAsRead(message, type);\n\t\t\t}\n\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"CUSTOM_MESSAGE_RECEIVED\"], [message]);\n\t\t} else {\n\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"CUSTOM_MESSAGE_RECEIVED\"], [message]);\n\t\t}\n\t};\n\n\tonCallUpdated = (key, message) => {\n\t\tif (this.context.type === CometChat.RECEIVER_TYPE.GROUP && message.getReceiverType() === CometChat.RECEIVER_TYPE.GROUP && message.getReceiverId() === this.context.item.guid) {\n\t\t\tthis.props.actionGenerated(key, message);\n\t\t} else if (this.context.type === CometChat.RECEIVER_TYPE.USER && message.getReceiverType() === CometChat.RECEIVER_TYPE.USER && message.getSender().uid === this.context.item.uid) {\n\t\t\tthis.props.actionGenerated(key, message);\n\t\t}\n\t};\n\n\tonTransientMessageReceived = (key, message) => {\n\n\t\tif (this.context.type === CometChat.RECEIVER_TYPE.GROUP && message.getReceiverType() === CometChat.RECEIVER_TYPE.GROUP && message.getReceiverId() === this.context.item.guid) {\n\t\t\tthis.props.actionGenerated(key, message);\n\t\t} else if (this.context.type === CometChat.RECEIVER_TYPE.USER && message.getReceiverType() === CometChat.RECEIVER_TYPE.USER && message.getSender().uid === this.context.item.uid) {\n\t\t\tthis.props.actionGenerated(key, message);\n\t\t}\n\t};\n\n\tonGroupUpdated = (key, message, group, options) => {\n\t\tif (this.context.type === CometChat.RECEIVER_TYPE.GROUP && message.getReceiverType() === CometChat.RECEIVER_TYPE.GROUP && message.getReceiverId() === this.context.item.guid) {\n\t\t\tthis.props.actionGenerated(key, message, null, group, options);\n\t\t}\n\t};\n\n\thandleScroll = e => {\n\n\t\tconst scrollTop = e.currentTarget.scrollTop;\n\t\tconst scrollHeight = e.currentTarget.scrollHeight;\n\t\tconst clientHeight = e.currentTarget.clientHeight;\n\n\t\tthis.lastScrollTop = scrollHeight - scrollTop;\n\n\t\tif (this.lastScrollTop === clientHeight) {\n\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"CLEAR_UNREAD_MESSAGES\"]);\n\t\t}\n\n\t\tconst top = Math.round(scrollTop) === 0;\n\t\tif (top && this.props.messages.length) {\n\t\t\tthis.messageHandler(this.context.item);\n\t\t}\n\t};\n\n\tgetSenderMessageComponent = message => {\n\n\t\tlet component;\n\t\tconst messageKey = message._id ? message._id : message.id;\n\n\t\tif (message.hasOwnProperty(\"deletedAt\")) {\n\t\t\tcomponent = ;\n\t\t} else {\n\t\t\tswitch (message.type) {\n\t\t\t\tcase CometChat.MESSAGE_TYPE.TEXT:\n\t\t\t\t\tcomponent = ;\n\t\t\t\t\tbreak;\n\t\t\t\tcase CometChat.MESSAGE_TYPE.IMAGE:\n\t\t\t\t\tcomponent = ;\n\t\t\t\t\tbreak;\n\t\t\t\tcase CometChat.MESSAGE_TYPE.FILE:\n\t\t\t\t\tcomponent = ;\n\t\t\t\t\tbreak;\n\t\t\t\tcase CometChat.MESSAGE_TYPE.VIDEO:\n\t\t\t\t\tcomponent = ;\n\t\t\t\t\tbreak;\n\t\t\t\tcase CometChat.MESSAGE_TYPE.AUDIO:\n\t\t\t\t\tcomponent = ;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn component;\n\t};\n\n\tgetReceiverMessageComponent = message => {\n\n\t\tlet component;\n\t\tconst messageKey = message._id ? message._id : message.id;\n\n\t\tif (message.hasOwnProperty(\"deletedAt\")) {\n\t\t\tcomponent = ;\n\t\t} else {\n\t\t\tswitch (message.type) {\n\t\t\t\tcase CometChat.MESSAGE_TYPE.TEXT:\n\t\t\t\t\tcomponent = message.text ? : null;\n\t\t\t\t\tbreak;\n\t\t\t\tcase CometChat.MESSAGE_TYPE.IMAGE:\n\t\t\t\t\tcomponent = message.data.url ? : null;\n\t\t\t\t\tbreak;\n\t\t\t\tcase CometChat.MESSAGE_TYPE.FILE:\n\t\t\t\t\tcomponent = message.data.attachments ? : null;\n\t\t\t\t\tbreak;\n\t\t\t\tcase CometChat.MESSAGE_TYPE.AUDIO:\n\t\t\t\t\tcomponent = message.data.url ? : null;\n\t\t\t\t\tbreak;\n\t\t\t\tcase CometChat.MESSAGE_TYPE.VIDEO:\n\t\t\t\t\tcomponent = message.data.url ? : null;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn component;\n\t};\n\n\tgetSenderCustomMessageComponent = message => {\n\n\t\tlet component;\n\t\tconst messageKey = message._id ? message._id : message.id;\n\n\t\tif (message.hasOwnProperty(\"deletedAt\")) {\n\t\t\tcomponent = ;\n\t\t} else {\n\t\t\tswitch (message.type) {\n\t\t\t\tcase enums.CUSTOM_TYPE_POLL:\n\t\t\t\t\tcomponent = ;\n\t\t\t\t\tbreak;\n\t\t\t\tcase enums.CUSTOM_TYPE_STICKER:\n\t\t\t\t\tcomponent = ;\n\t\t\t\t\tbreak;\n\t\t\t\tcase enums.CUSTOM_TYPE_DOCUMENT:\n\t\t\t\t\tcomponent = ;\n\t\t\t\t\tbreak;\n\t\t\t\tcase enums.CUSTOM_TYPE_WHITEBOARD:\n\t\t\t\t\tcomponent = ;\n\t\t\t\t\tbreak;\n\t\t\t\tcase enums.CUSTOM_TYPE_MEETING:\n\t\t\t\t\tcomponent = ;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn component;\n\t};\n\n\tgetReceiverCustomMessageComponent = message => {\n\n\t\tlet component;\n\t\tconst messageKey = message._id ? message._id : message.id;\n\t\t\n\t\tif (message.hasOwnProperty(\"deletedAt\")) {\n\t\t\tcomponent = ;\n\t\t} else {\n\t\t\tswitch (message.type) {\n\t\t\t\tcase enums.CUSTOM_TYPE_POLL:\n\t\t\t\t\tcomponent = ;\n\t\t\t\t\tbreak;\n\t\t\t\tcase enums.CUSTOM_TYPE_STICKER:\n\t\t\t\t\tcomponent = ;\n\t\t\t\t\tbreak;\n\t\t\t\tcase enums.CUSTOM_TYPE_DOCUMENT:\n\t\t\t\t\tcomponent = ;\n\t\t\t\t\tbreak;\n\t\t\t\tcase enums.CUSTOM_TYPE_WHITEBOARD:\n\t\t\t\t\tcomponent = ;\n\t\t\t\t\tbreak;\n\t\t\t\tcase enums.CUSTOM_TYPE_MEETING:\n\t\t\t\t\tcomponent = ;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn component;\n\t};\n\n\tgetActionMessageComponent = message => {\n\n\t\tconst messageKey = message._id ? message._id : message.id;\n\t\treturn ;\n\t};\n\n\tgetComponent = (message, key) => {\n\t\tlet component;\n\n\t\tswitch (message.category) {\n\t\t\tcase CometChat.CATEGORY_ACTION:\n\t\t\tcase CometChat.CATEGORY_CALL:\n\t\t\t\tcomponent = this.getActionMessageComponent(message);\n\t\t\t\tbreak;\n\t\t\tcase CometChat.CATEGORY_MESSAGE:\n\t\t\t\tif (this.state.loggedInUser?.uid === message.sender?.uid) {\n\t\t\t\t\tcomponent = this.getSenderMessageComponent(message);\n\t\t\t\t} else {\n\t\t\t\t\tcomponent = this.getReceiverMessageComponent(message);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase CometChat.CATEGORY_CUSTOM:\n\t\t\t\tif (this.state.loggedInUser?.uid === message.sender?.uid) {\n\t\t\t\t\tcomponent = this.getSenderCustomMessageComponent(message);\n\t\t\t\t} else {\n\t\t\t\t\tcomponent = this.getReceiverCustomMessageComponent(message);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn component;\n\t};\n\n\trender() {\n\n\t\tlet messageContainer = null;\n\t\tif (this.state.decoratorMessage.length !== 0 && this.props.messages.length === 0) {\n\t\t\tmessageContainer = (\n\t\t\t\t
    \n\t\t\t\t\t

    \n\t\t\t\t\t\t{this.state.decoratorMessage}\n\t\t\t\t\t

    \n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tlet cDate = null;\n\t\tconst messages = this.props.messages.map((message, key) => {\n\t\t\tlet dateSeparator = null;\n\n\t\t\tconst dateField = message._composedAt || message.sentAt;\n\n\t\t\tconst messageDate = message.sentAt * 1000;\n\t\t\tconst messageSentDate = dateFormat(messageDate, \"dd/mm/yyyy\");\n\n\t\t\tif (cDate !== messageSentDate) {\n\t\t\t\tdateSeparator = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t{getMessageDate(dateField, this.context.language)}\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\t\t\tcDate = messageSentDate;\n\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t{dateSeparator}\n\t\t\t\t\t{this.getComponent(message, key)}\n\t\t\t\t\n\t\t\t);\n\t\t});\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{messageContainer}\n\t\t\t\t {\n\t\t\t\t\t\tthis.messagesEnd = el;\n\t\t\t\t\t}}\n\t\t\t\t\tonScroll={this.handleScroll}>\n\t\t\t\t\t{messages}\n\t\t\t\t
    \n\t\t\t\n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatMessageList.defaultProps = {\n theme: theme\n};\n\nCometChatMessageList.propTypes = {\n theme: PropTypes.object\n}\n\nexport { CometChatMessageList };","import { CometChat } from \"@cometchat-pro/chat\";\n\nimport * as enums from \"../../../util/enums.js\";\n\nexport class SharedMediaManager {\n\n mediaMessageListenerId = new Date().getTime();\n mediaMessageRequest = null;\n\n constructor(item, type, messagetype) {\n\n if(type === \"user\") {\n\n this.mediaMessageRequest = new CometChat.MessagesRequestBuilder()\n .setUID(item.uid)\n .setLimit(10).setCategory(\"message\").setType(messagetype).build();\n\n } else {\n\n this.mediaMessageRequest = new CometChat.MessagesRequestBuilder()\n .setGUID(item.guid)\n .setLimit(10).setCategory(\"message\").setType(messagetype).build();\n }\n }\n\n fetchPreviousMessages() {\n return this.mediaMessageRequest.fetchPrevious();\n }\n \n attachListeners(callback) {\n\n CometChat.addMessageListener(\n this.msgListenerId,\n new CometChat.MessageListener({\n onMediaMessageReceived: mediaMessage => {\n callback(enums.MEDIA_MESSAGE_RECEIVED, mediaMessage);\n },\n onMessageDeleted: deletedMessage => {\n callback(enums.MESSAGE_DELETED, deletedMessage);\n }\n })\n );\n }\n\n removeListeners() {\n CometChat.removeMessageListener(this.mediaMessageListenerId);\n }\n\n}","export const sectionStyle = (props) => {\n\n const containerHeightProp = (props.containerHeight) ? {\n height: `calc(100% - ${props.containerHeight})`\n } : {\n height: \"calc(100% - 20px)\"\n };\n\n \n return {\n width: \"100%\",\n ...containerHeightProp\n }\n}\n\nexport const sectionHeaderStyle = (props) => {\n\n return {\n margin: \"0\",\n width: \"100%\",\n fontSize: \"12px\",\n fontWeight: \"500!important\",\n lineHeight: \"20px\",\n color: `${props.theme.color.secondary}`,\n textTransform: \"uppercase\",\n }\n}\n\nexport const sectionContentStyle = () => {\n\n return {\n width: \"100%\",\n margin: \"6px 0\",\n display: \"flex\",\n flexDirection: \"column\",\n height: \"calc(100% - 20px)\"\n }\n}\n\nexport const mediaBtnStyle = () => {\n\n return {\n borderRadius: \"8px\",\n backgroundColor: \"rgba(20, 20, 20, 0.08)\",\n width: \"100%\",\n padding: \"2px\",\n margin: \"6px 0\",\n clear: \"both\",\n }\n}\n\nexport const buttonStyle = (state, type) => {\n\n const activeBtn = (state.messagetype === type) ? {\n backgroundColor : \"#fff\",\n boxShadow: \"rgba(20, 20, 20, 0.04) 0 3px 1px, rgba(20, 20, 20, 0.12) 0 3px 8px\",\n borderRadius: \"7px\",\n \"&::before\": {\n display: \"none\",\n }\n } : {};\n\n return {\n display: \"inline-block\",\n width: \"33.33%\",\n float: \"left\",\n fontSize: \"13px\",\n fontWeight: \"500\",\n lineHeight: \"18px\",\n padding: \"5px\",\n position: \"relative\",\n textAlign: \"center\",\n cursor: \"pointer\",\n ...activeBtn,\n \"&:before\": {\n \"`content`\": \"\",\n position: \"absolute\",\n display: \"block\",\n width: \"2px\",\n height: \"16px\",\n backgroundColor: \"rgba(20, 20, 20, 0.12)\",\n right: \"-2px\",\n top: \"6px\",\n },\n \"&:last-of-type::before\": {\n display: \"none\",\n }\n }\n}\n\nexport const mediaItemStyle = () => {\n\n return {\n height: \"calc(100% - 45px)\",\n overflowY: \"auto\",\n overflowX: \"hidden\",\n display: \"flex\",\n flexWrap: \"wrap\",\n fontSize: \"14px\",\n }\n}\n\nexport const itemStyle = (state, props, img, context) => {\n\n let itemTypeStyle = {};\n let bgColor = `${props.theme.backgroundColor.lightGrey}`;\n\n if (state.messagetype === \"image\") {\n\n itemTypeStyle = {\n height: \"120px\",\n width: \"120px\",\n backgroundColor: bgColor,\n \"> img\": {\n display: \"block\",\n width: \"100%\",\n height: \"100%\",\n objectFit: \"contain\",\n }\n }\n \n } else if (state.messagetype === \"video\") {\n\n itemTypeStyle = {\n \"> video\": {\n height: \"120px\",\n width: \"120px\",\n margin: \"auto\",\n }\n }\n\n } else if (state.messagetype === \"file\") {\n\n itemTypeStyle = {\n backgroundColor: bgColor,\n \"> a\": {\n maxWidth: \"100%\",\n maxHeight: \"100%\",\n margin: \"auto\",\n display: \"flex\",\n padding: \"8px\",\n \"&:hover, &:visited\": {\n color: `${props.theme.secondaryTextColor}`,\n },\n \"> i\": {\n width: \"30px\",\n height: \"24px\",\n display: \"inline-block\",\n mask: `url(${img}) left center no-repeat`,\n\t\t backgroundColor: `${context.theme.secondaryTextColor}`,\n },\n \"> span\": {\n fontSize: \"13px\",\n color: `${props.theme.secondaryTextColor}`,\n whiteSpace: \"pre-wrap\",\n wordWrap: \"break-word\",\n textAlign: \"left\",\n width: \"calc(100% - 30px)\"\n }\n\n }\n }\n\n }\n\n return {\n margin: \"0.5rem\",\n textAlign: \"center\",\n flex: \"1 0 auto\",\n ...itemTypeStyle,\n \"@for $i from 1 through 36\": {\n \"&:nth-of-type(#{$i})\": {\n maxWidth: \"100%\",\n }\n }\n }\n}","export default __webpack_public_path__ + \"static/media/file-upload.a68d497b.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\n\nimport { SharedMediaManager } from \"./controller\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n sectionStyle,\n sectionHeaderStyle,\n sectionContentStyle,\n mediaBtnStyle,\n buttonStyle,\n mediaItemStyle,\n itemStyle,\n\n} from \"./style\";\n\nimport fileIcon from \"./resources/file-upload.svg\";\n\nclass CometChatSharedMediaView extends React.Component {\n\n static contextType = CometChatContext;\n\n constructor(props) {\n super(props);\n this._isMounted = false;\n this.state = {\n messagetype: \"image\",\n messageList: []\n }\n\n this.messageContainer = React.createRef();\n\n CometChat.getLoggedinUser().then(user => this.loggedInUser = user).catch(error => {\n console.error(error);\n });\n }\n\n componentDidMount() {\n\n this._isMounted = true;\n this.SharedMediaManager = new SharedMediaManager(this.context.item, this.context.type, this.state.messagetype);\n this.getMessages(true);\n this.SharedMediaManager.attachListeners(this.messageUpdated);\n }\n\n componentDidUpdate(prevProps, prevState) {\n\n if(prevState.messagetype !== this.state.messagetype) {\n\n this.SharedMediaManager = null;\n this.SharedMediaManager = new SharedMediaManager(this.context.item, this.context.type, this.state.messagetype);\n this.getMessages(true);\n this.SharedMediaManager.attachListeners(this.messageUpdated);\n }\n }\n\n componentWillUnmount() {\n this.SharedMediaManager.removeListeners();\n this.SharedMediaManager = null;\n this._isMounted = false;\n }\n\n //callback for listener functions\n messageUpdated = (key, message) => {\n\n switch(key) {\n\n case enums.MESSAGE_DELETED:\n this.messageDeleted(message);\n break;\n case enums.MEDIA_MESSAGE_RECEIVED:\n this.messageReceived(message);\n break;\n default:\n break;\n }\n }\n\n messageDeleted = (deletedMessage) => {\n \n const messageType = deletedMessage.data.type;\n if (this.context.type === CometChat.ACTION_TYPE.TYPE_GROUP\n && deletedMessage.getReceiverType() === CometChat.RECEIVER_TYPE.GROUP\n && deletedMessage.getReceiver().guid === this.context.item.guid\n && messageType === this.state.messagetype) {\n\n const messageList = [...this.state.messageList];\n const filteredMessages = messageList.filter(message => message.id !== deletedMessage.id);\n this.setState({ messageList: filteredMessages, scrollToBottom: false });\n }\n }\n \n //message is received or composed & sent\n messageReceived = (message) => {\n\n const messageType = message.data.type;\n if (this.context.type === CometChat.ACTION_TYPE.TYPE_GROUP\n && message.getReceiverType() === CometChat.RECEIVER_TYPE.GROUP\n && message.getReceiver().guid === this.context.item.guid\n && messageType === this.state.messagetype) {\n\n let messages = [...this.state.messageList];\n messages = messages.concat(message);\n this.setState({ messageList: messages, scrollToBottom: true });\n }\n }\n\n getMessages = (scrollToBottom = false) => {\n \n this.SharedMediaManager.fetchPreviousMessages().then(messages => {\n \n const messageList = [...messages, ...this.state.messageList];\n if (this._isMounted) {\n\n this.setState({messageList: messageList});\n if(scrollToBottom) {\n this.scrollToBottom();\n }\n } \n \n }).catch(error => {\n\n const errorCode = (error && error.hasOwnProperty(\"code\")) ? error.code : \"ERROR\";\n this.context.setToastMessage(\"error\", errorCode);\n });\n }\n\n scrollToBottom = () => {\n \n if (this.messageContainer) {\n this.messageContainer.scrollTop = this.messageContainer.scrollHeight;\n }\n }\n\n handleScroll = (e) => {\n\n const top = Math.round(e.currentTarget.scrollTop) === 0;\n if (top && this.state.messageList.length) {\n this.getMessages();\n }\n }\n\n mediaClickHandler = (type) => {\n this.setState({messagetype: type, messageList: []});\n }\n\n render() {\n\n const template = (message, key) => {\n\n if(this.state.messagetype === \"image\" && message.data.url) {\n\n return (\n
    \n {Translator.translate(\"SHARED_MEDIA\",\n
    \n );\n\n } else if (this.state.messagetype === \"video\" && message.data.url) {\n\n return (\n
    \n
    \n );\n\n } else if (this.state.messagetype === \"file\" && message.data.attachments) {\n\n return (\n \n );\n }\n }\n\n const messages = [...this.state.messageList];\n const messageList = messages.map((message, key) => {\n return (template(message, key));\n });\n\n return (\n
    \n
    {Translator.translate(\"SHARED_MEDIA\", this.props.lang)}
    \n
    \n
    \n this.mediaClickHandler(\"image\")}>{Translator.translate(\"PHOTOS\", this.props.lang)}\n this.mediaClickHandler(\"video\")}>{Translator.translate(\"VIDEOS\", this.props.lang)}\n this.mediaClickHandler(\"file\")}>{Translator.translate(\"DOCS\", this.props.lang)}\n
    \n
    this.messageContainer = el}\n onScroll={this.handleScroll}>{(messageList.length) ? messageList : Translator.translate(\"NO_RECORDS_FOUND\", this.props.lang)}\n
    \n
    \n
    \n );\n }\n}\n\n// Specifies the default values for props:\nCometChatSharedMediaView.defaultProps = {\n lang: Translator.getDefaultLanguage(),\n theme: theme\n};\n\nCometChatSharedMediaView.propTypes = {\n lang: PropTypes.string,\n theme: PropTypes.object\n}\n\nexport { CometChatSharedMediaView };","import {CometChat} from \"@cometchat-pro/chat\";\n\nimport * as enums from \"../../../util/enums.js\";\n\nexport class UserDetailManager {\n\tuserListenerId = \"user_detail_\" + new Date().getTime();\n\n\tattachListeners(callback) {\n\t\tCometChat.addUserListener(\n\t\t\tthis.userListenerId,\n\t\t\tnew CometChat.UserListener({\n\t\t\t\tonUserOnline: onlineUser => {\n\t\t\t\t\t/* when someuser/friend comes online, user will be received here */\n\t\t\t\t\tcallback(enums.USER_ONLINE, onlineUser);\n\t\t\t\t},\n\t\t\t\tonUserOffline: offlineUser => {\n\t\t\t\t\t/* when someuser/friend went offline, user will be received here */\n\t\t\t\t\tcallback(enums.USER_OFFLINE, offlineUser);\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t}\n\n\tremoveListeners() {\n\t\tCometChat.removeUserListener(this.userListenerId);\n\t}\n}","import {CometChat} from \"@cometchat-pro/chat\";\nimport Translator from \"../../../resources/localization/translator\";\n\nexport const userDetailStyle = context => {\n\treturn {\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"column\",\n\t\theight: \"100%\",\n\t\tposition: \"relative\",\n\t\tboxSizing: \"border-box\",\n\t\tfontFamily: `${context.theme.fontFamily}`,\n\t\t\"*\": {\n\t\t\tboxSizing: \"border-box\",\n\t\t\tfontFamily: `${context.theme.fontFamily}`,\n\t\t},\n\t};\n};\n\nexport const headerStyle = context => {\n\treturn {\n\t\tpadding: \"16px\",\n\t\tposition: \"relative\",\n\t\tborderBottom: `1px solid ${context.theme.borderColor.primary}`,\n\t\tdisplay: \"flex\",\n\t\tjustifyContent: \"flex-start\",\n\t\talignItems: \"center\",\n\t\theight: \"69px\",\n\t};\n};\n\nexport const headerCloseStyle = (img, context) => {\n\t\n\tconst mq = [...context.theme.breakPoints];\n\n\treturn {\n\t\tcursor: \"pointer\",\n\t\tdisplay: \"none\",\n\t\tmask: `url(${img}) center center no-repeat`,\n\t\tbackgroundColor: `${context.theme.primaryColor}`,\n\t\twidth: \"24px\",\n\t\theight: \"24px\",\n\t\t[`@media ${mq[1]}, ${mq[2]}, ${mq[3]}, ${mq[4]}`]: {\n\t\t\tdisplay: \"block\",\n\t\t},\n\t};\n};\n\nexport const headerTitleStyle = () => {\n\treturn {\n\t\tmargin: \"0\",\n\t\tfontWeight: \"700\",\n\t\tfontSize: \"20px\",\n\t};\n};\n\nexport const sectionStyle = () => {\n\treturn {\n\t\tmargin: \"0\",\n\t\tpadding: \"16px 16px 0 16px\",\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"column\",\n\t\tjustifyContent: \"space-between\",\n\t\talignItems: \"flex-start\",\n\t};\n};\n\nexport const actionSectionStyle = context => {\n\treturn {\n\t\twidth: \"100%\",\n\t\t\"> div\": {\n\t\t\tfontWeight: \"600\",\n\t\t\tcursor: \"pointer\",\n\t\t\tfontSize: \"12px\",\n\t\t},\n\t\t\".item__link\": {\n\t\t\tcolor: `${context.theme.color.blue}`,\n\t\t},\n\t};\n};\n\nexport const privacySectionStyle = context => {\n\treturn {\n\t\twidth: \"100%\",\n\t\t\"> div\": {\n\t\t\tcolor: `${context.theme.color.red}`,\n\t\t\tfontWeight: \"600\",\n\t\t\tcursor: \"pointer\",\n\t\t\tfontSize: \"12px\",\n\t\t},\n\t};\n};\n\nexport const mediaSectionStyle = () => {\n\treturn {\n\t\theight: \"calc(100% - 255px)\",\n\t\twidth: \"100%\",\n\t\tmargin: \"0\",\n\t\tpadding: \"16px 16px 0 16px\",\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"column\",\n\t\tjustifyContent: \"space-between\",\n\t\talignItems: \"flex-start\",\n\t};\n};\n\nexport const sectionHeaderStyle = context => {\n\treturn {\n\t\tmargin: \"0\",\n\t\twidth: \"100%\",\n\t\tfontSize: \"12px\",\n\t\tfontWeight: \"500!important\",\n\t\tlineHeight: \"20px\",\n\t\tcolor: `${context.theme.color.secondary}`,\n\t\ttextTransform: \"uppercase\",\n\t};\n};\n\nexport const sectionContentStyle = () => {\n\treturn {\n\t\twidth: \"100%\",\n\t\tmargin: \"6px 0\",\n\t};\n};\n\nexport const contentItemStyle = () => {\n\treturn {\n\t\t\"width\": 100 % \"\",\n\t\t\"&:not(:first-of-type):not(:last-of-type)\": {\n\t\t\tpadding: \"6px 0\",\n\t\t},\n\t};\n};\n\nexport const itemLinkStyle = context => {\n\treturn {\n\t\tfontSize: \"15px\",\n\t\tlineHeight: \"20px\",\n\t\tfontWeight: \"600\",\n\t\tdisplay: \"inline-block\",\n\t\tcolor: `${context.theme.color.red}`,\n\t};\n};\n\nexport const userInfoSectionStyle = () => {\n\treturn {\n\t\tdisplay: \"flex\",\n\t\talignItems: \"center\",\n\t\tjustifyContent: \"flex-start\",\n\t};\n};\n\nexport const userThumbnailStyle = () => {\n\treturn {\n\t\twidth: \"35px\",\n\t\theight: \"35px\",\n\t\tdisplay: \"inline-block\",\n\t\tflexShrink: \"0\",\n\t\tmargin: \"0 16px 0 0\",\n\t};\n};\n\nexport const userNameStyle = () => {\n\treturn {\n\t\tmargin: \"0\",\n\t\tfontSize: \"15px\",\n\t\tfontWeight: \"600\",\n\t\twidth: \"100%\",\n\t\toverflow: \"hidden\",\n\t\ttextOverflow: \"ellipsis\",\n\t\twhiteSpace: \"nowrap\",\n\t};\n};\n\nexport const userStatusStyle = () => {\n\treturn {\n\t\twidth: \"calc(100% - 50px)\",\n\t};\n};\n\nexport const userPresenceStyle = (context, state) => {\n\t\n\tlet status = state.status ? state.status.toLowerCase() : \"\";\n\tlet compareTo = Translator.translate((CometChat.USER_STATUS.ONLINE).toUpperCase(), context.language).toLowerCase();\n\tstatus = status === compareTo ? { color: `${context.theme.color.blue}` } : { color: `${context.theme.color.helpText}` };\n\n\treturn {\n\t\twidth: \"calc(100% - 50px)\",\n\t\ttextTransform: \"capitalize\",\n\t\tfontSize: \"13px\",\n\t\t...status,\n\t};\n};\n","export default __webpack_public_path__ + \"static/media/back.e8e05e7c.svg\";","import React from \"react\";\nimport dateFormat from \"dateformat\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\n\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatAvatar, CometChatToastNotification } from \"../../Shared/\";\nimport { CometChatSharedMediaView } from \"../../Shared/CometChatSharedMediaView/index.js\";\n\nimport { UserDetailManager } from \"./controller\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport Translator from \"../../../resources/localization/translator\";\nimport { theme } from \"../../../resources/theme\";\n\nimport {\n\tuserDetailStyle,\n\theaderStyle,\n\theaderCloseStyle,\n\theaderTitleStyle,\n\tsectionStyle,\n\tactionSectionStyle,\n\tmediaSectionStyle,\n\tprivacySectionStyle,\n\tsectionHeaderStyle,\n\tsectionContentStyle,\n\tcontentItemStyle,\n\titemLinkStyle,\n\tuserInfoSectionStyle,\n\tuserThumbnailStyle,\n\tuserNameStyle,\n\tuserStatusStyle,\n\tuserPresenceStyle,\n} from \"./style\";\n\nimport navigateIcon from \"./resources/back.svg\";\n\nclass CometChatUserDetails extends React.Component {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis._isMounted = false;\n\t\tthis.state = {\n\t\t\tloggedInUser: null,\n\t\t\tstatus: null,\n\t\t\tenableSharedMedia: false,\n\t\t\tenableBlockUser: false,\n\t\t\tenableViewProfile: false,\n\t\t\tenableUserPresence: false,\n\t\t};\n\n\t\tthis.toastRef = React.createRef();\n\t}\n\n\tcomponentDidMount() {\n\n\t\tCometChat.getLoggedinUser()\n\t\t\t.then(user => {\n\t\t\t\tif (this._isMounted) {\n\t\t\t\t\tthis.setState({ loggedInUser: user });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => this.toastRef.setError(\"SOMETHING_WRONG\"));\n\n\t\tthis._isMounted = true;\n\t\tthis.toastRef = React.createRef();\n\n\t\tthis.UserDetailManager = new UserDetailManager();\n\t\tthis.UserDetailManager.attachListeners(this.updateUser);\n\n\t\tthis.setStatusForUser();\n\t\tthis.enableSharedMedia();\n\t\tthis.enableBlockUser();\n\t\tthis.enableViewProfile();\n\t\tthis.enableUserPresence();\n\t}\n\n\tcomponentDidUpdate() {\n\t\tthis.enableSharedMedia();\n\t\tthis.enableBlockUser();\n\t\tthis.enableViewProfile();\n\t\tthis.enableUserPresence();\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis._isMounted = false;\n\t\tthis.UserDetailManager.removeListeners();\n\t\tthis.UserDetailManager = null;\n\t}\n\n\tenableUserPresence = () => {\n\t\tthis.context.FeatureRestriction.isUserPresenceEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enableUserPresence && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableUserPresence: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableUserPresence !== false) {\n\t\t\t\t\tthis.setState({ enableUserPresence: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tupdateUser = (key, user) => {\n\t\tswitch (key) {\n\t\t\tcase enums.USER_ONLINE:\n\t\t\tcase enums.USER_OFFLINE: {\n\t\t\t\tif (this.context.type === CometChat.ACTION_TYPE.TYPE_USER && this.context.item.uid === user.uid) {\n\t\t\t\t\t//if user presence feature is disabled\n\t\t\t\t\tif (this.state.enableUserPresence === false) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tlet status = \"\";\n\t\t\t\t\tif (user.status === CometChat.USER_STATUS.OFFLINE) {\n\t\t\t\t\t\tstatus = Translator.translate(\"OFFLINE\", this.context.language);\n\t\t\t\t\t} else if (user.status === CometChat.USER_STATUS.ONLINE) {\n\t\t\t\t\t\tstatus = Translator.translate(\"ONLINE\", this.context.language);\n\t\t\t\t\t}\n\t\t\t\t\tthis.setState({ status: status });\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tsetStatusForUser = () => {\n\t\tlet status = null;\n\t\tif (this.context.item.status === CometChat.USER_STATUS.OFFLINE && this.context.item.lastActiveAt) {\n\t\t\tconst lastActive = this.context.item.lastActiveAt * 1000;\n\t\t\tconst messageDate = dateFormat(lastActive, \"dS mmm yyyy, h:MM TT\");\n\n\t\t\tstatus = `${Translator.translate(\"LAST_ACTIVE_AT\", this.context.language)}: ${messageDate}`;\n\t\t} else if (this.context.item.status === CometChat.USER_STATUS.OFFLINE) {\n\t\t\tstatus = Translator.translate(\"OFFLINE\", this.context.language);\n\t\t} else if (this.context.item.status === CometChat.USER_STATUS.ONLINE) {\n\t\t\tstatus = Translator.translate(\"ONLINE\", this.context.language);\n\t\t}\n\n\t\tthis.setState({ status: status });\n\t};\n\n\tenableSharedMedia = () => {\n\t\tthis.context.FeatureRestriction.isSharedMediaEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableSharedMedia && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableSharedMedia: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableSharedMedia !== false && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableSharedMedia: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableBlockUser = () => {\n\t\tthis.context.FeatureRestriction.isBlockUserEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableBlockUser && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableBlockUser: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableBlockUser !== false && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableBlockUser: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableViewProfile = () => {\n\t\tthis.context.FeatureRestriction.isViewProfileEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enableViewProfile && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableViewProfile: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableViewProfile !== false && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableViewProfile: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tblockUser = () => {\n\n\t\tlet uid = this.context.item.uid;\n\t\tlet usersList = [uid];\n\t\tCometChat.blockUsers(usersList)\n\t\t\t.then(response => {\n\t\t\t\tif (response && response.hasOwnProperty(uid) && response[uid].hasOwnProperty(\"success\") && response[uid][\"success\"] === true) {\n\t\t\t\t\tthis.context.setToastMessage(\"success\", \"BLOCK_USER_SUCCESS\");\n\t\t\t\t\tthis.context.setItem(Object.assign({}, this.context.item, { blockedByMe: true }));\n\t\t\t\t\tthis.context.setType(CometChat.ACTION_TYPE.TYPE_USER);\n\t\t\t\t} else {\n\t\t\t\t\tthis.toastRef.setError(\"SOMETHING_WRONG\");\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => this.toastRef.setError(\"SOMETHING_WRONG\"));\n\t};\n\n\tunblockUser = () => {\n\n\t\tlet uid = this.context.item.uid;\n\t\tlet usersList = [uid];\n\t\tCometChat.unblockUsers(usersList)\n\t\t\t.then(response => {\n\t\t\t\tif (response && response.hasOwnProperty(uid) && response[uid].hasOwnProperty(\"success\") && response[uid][\"success\"] === true) {\n\t\t\t\t\tthis.context.setToastMessage(\"success\", \"UNBLOCK_USER_SUCCESS\");\n\t\t\t\t\tthis.context.setItem(Object.assign({}, this.context.item, { blockedByMe: false }));\n\t\t\t\t\tthis.context.setType(CometChat.ACTION_TYPE.TYPE_USER);\n\t\t\t\t} else {\n\t\t\t\t\tthis.toastRef.setError(\"SOMETHING_WRONG\");\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => this.toastRef.setError(\"SOMETHING_WRONG\"));\n\t};\n\n\tviewProfile = () => {\n\t\tconst profileLink = this.context.item.link;\n\t\twindow.open(profileLink, \"\", \"fullscreen=yes, scrollbars=auto\");\n\t};\n\n\tcloseDetailView = () => {\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"CLOSE_USER_DETAIL\"]);\n\t}\n\n\trender() {\n\n\t\tif (this.state.loggedInUser === null) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet viewProfile = null;\n\t\tif (this.state.enableViewProfile === true && this.context.item.hasOwnProperty(\"link\") && this.context.item.link && this.context.item.link.trim().length) {\n\t\t\tviewProfile = (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{Translator.translate(\"ACTIONS\", this.context.language)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{Translator.translate(\"VIEW_PROFILE\", this.context.language)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tlet blockUserText;\n\t\tif (this.context.item.blockedByMe) {\n\t\t\tblockUserText = (\n\t\t\t\t
    \n\t\t\t\t\t{Translator.translate(\"UNBLOCK_USER\", this.context.language)}\n\t\t\t\t
    \n\t\t\t);\n\t\t} else {\n\t\t\tblockUserText = (\n\t\t\t\t
    \n\t\t\t\t\t{Translator.translate(\"BLOCK_USER\", this.context.language)}\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tlet blockUserView = (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{Translator.translate(\"OPTIONS\", this.context.language)}\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{blockUserText}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\n\t\t//if block/unblock user feature is disabled\n\t\tif (this.state.enableBlockUser === false) {\n\t\t\tblockUserView = null;\n\t\t}\n\n\t\tlet sharedmediaView = (\n\t\t\t
    \n\t\t\t\t\n\t\t\t
    \n\t\t);\n\n\t\t//if shared media feature is disabled\n\t\tif (this.state.enableSharedMedia === false) {\n\t\t\tsharedmediaView = null;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t

    \n\t\t\t\t\t\t{Translator.translate(\"DETAILS\", this.context.language)}\n\t\t\t\t\t

    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    {this.context.item.name}
    \n\t\t\t\t\t\t\t{this.state.status}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t (this.toastRef = el)} lang={this.props.lang} />\n\t\t\t\t{viewProfile}\n\t\t\t\t{blockUserView}\n\t\t\t\t{sharedmediaView}\n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatUserDetails.defaultProps = {\n\ttheme: theme,\n};\n\nCometChatUserDetails.propTypes = {\n\ttheme: PropTypes.object,\n};\n\nexport { CometChatUserDetails };","import { CometChat } from \"@cometchat-pro/chat\";\n\nimport {UIKitSettings} from \"../../../util/UIKitSettings\";\n\nexport class UserListManager {\n\n userRequest = null;\n userListenerId = \"userlist_\" + new Date().getTime();\n\n constructor(context, searchKey) {\n\n this.context = context;\n this.searchKey = searchKey;\n }\n\n initializeUsersRequest = () => {\n\n const userListMode = this.context.UIKitSettings.userListMode;\n\t\tconst userListModeOptions = UIKitSettings.userListFilterOptions;\n\n return new Promise((resolve, reject) => {\n if (userListMode === userListModeOptions[\"ALL\"]) {\n if (this.searchKey) {\n this.usersRequest = new CometChat.UsersRequestBuilder().setLimit(30).setSearchKeyword(this.searchKey).build();\n } else {\n this.usersRequest = new CometChat.UsersRequestBuilder().setLimit(30).build();\n }\n\n return resolve(this.usersRequest);\n } else if (userListMode === userListModeOptions[\"FRIENDS\"]) {\n if (this.searchKey) {\n this.usersRequest = new CometChat.UsersRequestBuilder().setLimit(30).friendsOnly(true).setSearchKeyword(this.searchKey).build();\n } else {\n this.usersRequest = new CometChat.UsersRequestBuilder().setLimit(30).friendsOnly(true).build();\n }\n\n return resolve(this.usersRequest);\n } else {\n return reject({message: \"Invalid filter for userlist\"});\n }\n });\n }\n\n fetchNextUsers() {\n return this.usersRequest.fetchNext();\n }\n\n attachListeners(callback) {\n \n CometChat.addUserListener(\n this.userListenerId,\n new CometChat.UserListener({\n onUserOnline: onlineUser => {\n /* when someuser/friend comes online, user will be received here */\n callback(onlineUser);\n },\n onUserOffline: offlineUser => {\n /* when someuser/friend went offline, user will be received here */\n callback(offlineUser);\n }\n })\n );\n }\n\n removeListeners() {\n\n CometChat.removeUserListener(this.userListenerId);\n }\n}","export const contactWrapperStyle = (props, theme) => {\n\n const borderStyle = (props._parent === \"\") ? {\n border: `1px solid ${theme.borderColor.primary}`\n } : {};\n\n\n return {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\",\n boxSizing: \"border-box\",\n ...borderStyle,\n \"*\": {\n boxSizing: \"border-box\",\n \"::-webkit-scrollbar\": {\n width: \"8px\",\n height: \"4px\",\n },\n \"::-webkit-scrollbar-track\": {\n background: \"#ffffff00\"\n },\n \"::-webkit-scrollbar-thumb\": {\n background: \"#ccc\",\n \"&:hover\": {\n background: \"#aaa\"\n }\n }\n }\n }\n}\n\nexport const contactHeaderStyle = theme => {\n\n\treturn {\n\t\tpadding: \"16px\",\n\t\tposition: \"relative\",\n\t\tdisplay: \"flex\",\n\t\talignItems: \"center\",\n\t\tborderBottom: `1px solid ${theme.borderColor.primary}`,\n\t\theight: \"70px\",\n\t};\n};\n\nexport const contactHeaderCloseStyle = (img, theme) => {\n\n\tconst mq = [...theme.breakPoints];\n\n\treturn {\n\t\tcursor: \"pointer\",\n\t\tdisplay: \"none\",\n\t\tmask: `url(${img}) left center no-repeat`,\n\t\tbackgroundColor: `${theme.secondaryTextColor}`,\n\t\theight: \"24px\",\n\t\twidth: \"33%\",\n\t\t[`@media ${mq[1]}, ${mq[2]}`]: {\n\t\t\tdisplay: \"block!important\",\n\t\t},\n\t};\n};\n\nexport const contactHeaderTitleStyle = (props) => {\n\n const alignment = (props.hasOwnProperty(\"enableCloseMenu\") && props.enableCloseMenu.length > 0) ? {\n width: \"33%\",\n textAlign: \"center\"\n } : {};\n\n return {\n margin: \"0\",\n fontWeight: \"700\",\n display: \"inline-block\",\n width: \"100%\",\n textAlign: \"left\",\n fontSize: \"20px\",\n ...alignment,\n \"&[dir=rtl]\": {\n textAlign: \"right\",\n }\n }\n}\n\nexport const contactSearchStyle = () => {\n \n return {\n margin: \"16px\",\n position: \"relative\",\n borderRadius: \"8px\",\n\t\tboxShadow: \"rgba(20, 20, 20, 0.04) 0 0 0 1px inset\",\n backgroundColor: \"rgba(20, 20, 20, 0.04)\",\n height: \"35px\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n }\n}\n\nexport const contactSearchButtonStyle = (img, theme) => {\n\n\treturn {\n\t\twidth: \"30px\",\n\t\theight: \"100%\",\n\t\tpadding: \"8px 0 8px 8px\",\n\t\tcursor: \"default\",\n\t\tmask: `url(${img}) 10px center no-repeat`,\n\t\tbackgroundColor: `${theme.secondaryTextColor}!important`,\n\t};\n};\n\nexport const contactSearchInputStyle = () => {\n\n return {\n width: \"calc(100% - 30px)\",\n padding: \"8px\",\n fontSize: \"15px\",\n outline: \"none\",\n border: \"none\",\n height: \"100%\",\n backgroundColor: \"transparent\",\n }\n}\n\nexport const contactMsgStyle = () => {\n\n return {\n overflow: \"hidden\",\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n position: \"absolute\",\n top: \"50%\",\n }\n}\n\nexport const contactMsgTxtStyle = theme => {\n\n\treturn {\n\t\tmargin: \"0\",\n\t\tminHeight: \"36px\",\n\t\tcolor: `${theme.color.secondary}`,\n\t\tfontSize: \"20px!important\",\n\t\tfontWeight: \"600\",\n\t\tlineHeight: \"30px\",\n\t\twordWrap: \"break-word\",\n\t\tpadding: \"0 16px\",\n\t};\n};\n\nexport const contactListStyle = () => {\n \n return {\n height: \"calc(100% - 125px)\",\n overflowY: \"auto\",\n margin: \"0\",\n padding: \"0\"\n }\n}\n\nexport const contactAlphabetStyle = () => {\n \n return {\n padding: \"0 16px\",\n margin: \"5px 0\",\n width: \"100%\",\n fontSize: \"14px\"\n }\n}","export default __webpack_public_path__ + \"static/media/search.61b1c747.svg\";","export default __webpack_public_path__ + \"static/media/back.e8e05e7c.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { UserListManager } from \"./controller\";\n\nimport { CometChatUserListItem } from \"../../Users\";\n\nimport { CometChatContextProvider, CometChatContext } from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport { \n contactWrapperStyle, \n contactHeaderStyle, \n contactHeaderCloseStyle, \n contactHeaderTitleStyle,\n contactSearchStyle,\n contactSearchButtonStyle,\n contactSearchInputStyle,\n contactMsgStyle,\n contactMsgTxtStyle,\n contactListStyle,\n contactAlphabetStyle\n} from \"./style\";\n\nimport searchIcon from \"./resources/search.svg\";\nimport navigateIcon from \"./resources/back.svg\";\n\nclass CometChatUserList extends React.PureComponent {\n\n\titem;\n\ttimeout;\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tuserlist: [],\n\t\t\tenableSearchUser: false,\n\t\t\tdecoratorMessage: Translator.translate(\"LOADING\", props.lang),\n\t\t};\n\n\t\tthis.contextProviderRef = React.createRef();\n\t\tthis.userListRef = React.createRef();\n\n\t\tCometChat.getLoggedinUser()\n\t\t\t.then(user => (this.loggedInUser = user))\n\t\t\t.catch(error => this.setState({ decoratorMessage: Translator.translate(\"SOMETHING_WRONG\", this.props.lang) }));\n\t}\n\n\tcomponentDidMount() {\n\n\t\tthis.item = (this.getContext().type === CometChat.ACTION_TYPE.TYPE_USER) ? this.getContext().item : null;\n\t\tthis.toggleUserSearch();\n\n\t\tthis.UserListManager = new UserListManager(this.getContext())\n\t\tthis.UserListManager.initializeUsersRequest()\n\t\t\t.then(response => {\n\t\t\t\tthis.getUsers();\n\t\t\t\tthis.UserListManager.attachListeners(this.userUpdated);\n\t\t\t})\n\t\t\t.catch(error => this.setState({ decoratorMessage: Translator.translate(\"SOMETHING_WRONG\", this.props.lang) }));\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\n\t\t//if user is blocked/unblocked, update userlist\n\t\tif (this.item \n\t\t&& Object.keys(this.item).length\n\t\t&& this.getContext().type === CometChat.ACTION_TYPE.TYPE_USER && this.item.uid === this.getContext().item.uid\n\t\t&& this.item.blockedByMe !== this.getContext().item.blockedByMe) {\n\n\t\t\tlet userlist = [...this.state.userlist];\n\n\t\t\t\t//search for user\n\t\t\t\tlet userKey = userlist.findIndex(u => u.uid === this.getContext().item.uid);\n\t\t\t\tif(userKey > -1) {\n\n\t\t\t\tlet userObject = { ...userlist[userKey] };\n\t\t\t\tlet newUserObject = Object.assign({}, userObject, { blockedByMe: this.getContext().item.blockedByMe });\n\t\t\t\t\n\t\t\t\tuserlist.splice(userKey, 1, newUserObject);\n\t\t\t\tthis.setState({ userlist: userlist });\n\t\t\t}\n\t\t}\n\n\t\tthis.item = (this.getContext().type === CometChat.ACTION_TYPE.TYPE_USER) ? this.getContext().item : null;\n\t\tthis.toggleUserSearch();\n\t}\n\n\tcomponentWillUnmount() {\n\n\t\tthis.UserListManager.removeListeners();\n\t\tthis.UserListManager = null;\n\t}\n\n\ttoggleUserSearch = () => {\n\n\t\tthis.getContext().FeatureRestriction.isUserSearchEnabled().then(response => {\n\n\t\t\t/**\n\t\t\t* Don't update state if the response has the same value\n\t\t\t*/\n\t\t\tif (response !== this.state.enableSearchUser) {\n\t\t\t\tthis.setState({enableSearchUser: response});\n\t\t\t}\n\n\t\t}).catch(error => {\n\n\t\t\tif (this.state.enableSearchUser !== false) {\n\t\t\t\tthis.setState({enableSearchUser: false});\n\t\t\t}\n\n\t\t});\n\t}\n\n\tuserUpdated = (user) => {\n\t\t\n\t\tlet userlist = [...this.state.userlist];\n\n\t\t//search for user\n\t\tlet userKey = userlist.findIndex(u => u.uid === user.uid);\n\t\t\n\t\t//if found in the list, update user object\n\t\tif(userKey > -1) {\n\n\t\t\tlet userObj = {...userlist[userKey]};\n\t\t\tlet newUserObj = {...userObj, ...user};\n\t\t\tuserlist.splice(userKey, 1, newUserObj);\n\n\t\t\tthis.setState({ userlist: userlist });\n\t\t}\n\t}\n\n\thandleScroll = (e) => {\n\n\t\tconst bottom =\n\t\tMath.round(e.currentTarget.scrollHeight - e.currentTarget.scrollTop) === Math.round(e.currentTarget.clientHeight);\n\t\tif (bottom) this.getUsers();\n\t}\n\n\thandleClick = (user) => {\n\n\t\tif(!this.props.onItemClick)\n\t\t\treturn;\n\n\t\tthis.props.onItemClick(user, CometChat.ACTION_TYPE.TYPE_USER);\n\t}\n\n \thandleMenuClose = () => {\n\n\t\tif(!this.props.actionGenerated) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"TOGGLE_SIDEBAR\"]);\n \t}\n \n \tsearchUsers = (e) => {\n\n\t\tif (this.timeout) {\n\t\t\tclearTimeout(this.timeout);\n\t\t}\n\n\t\tlet val = e.target.value;\n\t\tthis.UserListManager = new UserListManager(this.getContext(), val);\n\t\tthis.UserListManager.initializeUsersRequest()\n\t\t\t.then(response => {\n\t\t\t\tthis.timeout = setTimeout(() => {\n\t\t\t\t\tthis.setState({ userlist: [], decoratorMessage: Translator.translate(\"LOADING\", this.props.lang) }, () => this.getUsers());\n\t\t\t\t}, 500);\n\t\t\t})\n\t\t\t.catch(error => this.setState({ decoratorMessage: Translator.translate(\"SOMETHING_WRONG\", this.props.lang) }));\n \t}\n\n\tgetUsers = () => {\n\n\t\tthis.UserListManager.fetchNextUsers()\n\t\t\t.then(userList => {\n\n\t\t\t\tif (userList.length === 0) {\n\t\t\t\t\tif (this.state.userlist.length === 0) {\n\t\t\t\t\t\tthis.setState({ decoratorMessage: Translator.translate(\"NO_USERS_FOUND\", this.props.lang) });\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState({ userlist: [...this.state.userlist, ...userList], decoratorMessage: \"\" });\n\t\t\t\t}\n\t\t\t\t\n\t\t\t})\n\t\t\t.catch(error => this.setState({ decoratorMessage: Translator.translate(\"SOMETHING_WRONG\", this.props.lang) }));\n\t}\n\n\tgetContext = () => {\n\n\t\tif (this.props._parent.length) {\n\t\t\treturn this.context;\n\t\t} else {\n\t\t\treturn this.contextProviderRef.state;\n\t\t}\n\t}\n\n \trender() {\n\n\t\tlet messageContainer = null;\n\t\tif (this.state.decoratorMessage.length !== 0) {\n\t\t\tmessageContainer = (\n\t\t\t\t
    \n\t\t\t\t\t

    \n\t\t\t\t\t\t{this.state.decoratorMessage}\n\t\t\t\t\t

    \n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tconst userList = [...this.state.userlist];\n\t\tlet currentLetter = \"\";\n\t\t\n\t\tconst users = userList.map(user => {\n\t\t\n\t\t\tconst chr = user.name[0].toUpperCase();\n\t\t\tlet firstChar = null;\n\t\t\tif (chr !== currentLetter) {\n\t\t\t\tcurrentLetter = chr;\n\t\t\t\tfirstChar = (
    {currentLetter}
    );\n\t\t\t} else {\n\t\t\t\tfirstChar = null;\n\t\t\t}\n\t\t\t\n\t\t\tlet selectedUser = (this.getContext().type === CometChat.ACTION_TYPE.TYPE_USER && this.getContext().item.uid === user.uid) ? user : null;\n\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t{firstChar}\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\n\t\t});\n\n\t\tlet closeBtn =
    ;\n\t\tif (this.getContext() && Object.keys(this.getContext().item).length === 0) {\n\t\t\tcloseBtn = null;\n\t\t}\n\n\t\tlet searchUser = null;\n\t\tif (this.state.enableSearchUser) {\n\t\t\tsearchUser = (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tconst userListTemplate = (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{closeBtn}\n\t\t\t\t\t

    \n\t\t\t\t\t\t{Translator.translate(\"USERS\", this.props.lang)}\n\t\t\t\t\t

    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t{searchUser}\n\t\t\t\t{messageContainer}\n\t\t\t\t
    (this.userListRef = el)}>\n\t\t\t\t\t{users}\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\n\t\tlet userListWrapper = (userListTemplate);\n\t\tif (this.props._parent === \"\") {\n\t\t\tuserListWrapper = (\n\t\t\t\t (this.contextProviderRef = el)}>\n\t\t\t\t\t{userListTemplate}\n\t\t\t\t\n\t\t\t);\n\t\t}\n\n\t\treturn (userListWrapper);\n \t}\n}\n\n// Specifies the default values for props:\nCometChatUserList.defaultProps = {\n\tlang: Translator.getDefaultLanguage(),\n\ttheme: theme,\n\tonItemClick: () => {},\n\t_parent: \"\"\n};\n\nCometChatUserList.propTypes = {\n\tlang: PropTypes.string,\n\ttheme: PropTypes.object,\n\tonItemClick: PropTypes.func,\n\t_parent: PropTypes.string\n}\n\nexport { CometChatUserList };","export const listItem = (props, context) => {\n\n const selectedState = (props.selectedUser && props.selectedUser.uid === props.user.uid) ? {\n backgroundColor: `${context.theme.backgroundColor.primary}`\n } : {};\n\n return {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"left\",\n alignItems: \"center\",\n cursor: \"pointer\",\n width: \"100%\",\n padding: \"8px 16px\",\n ...selectedState,\n '&:hover': {\n backgroundColor: `${context.theme.backgroundColor.primary}`\n }\n }\n}\n\nexport const itemThumbnailStyle = () => {\n \n return {\n display: \"inline-block\",\n width: \"36px\",\n height: \"36px\",\n flexShrink: \"0\"\n }\n}\n\nexport const itemDetailStyle = () => {\n \n return {\n width: \"calc(100% - 45px)\",\n flexGrow: 1,\n paddingLeft: \"16px\",\n \"&[dir=rtl]\": {\n paddingRight: \"16px\",\n paddingLeft: \"0\",\n }\n }\n}\n\nexport const itemNameStyle = () => { \n \n return {\n fontSize: \"15px\",\n fontWeight: \"600\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n width: \"100%\",\n margin: \"5px 0 0 0\" \n }\n};\n\nexport const itemDescStyle = context => {\n\treturn {\n\t\tmarginTop: \"10px\",\n\t\tborderBottom: `1px solid ${context.theme.borderColor.primary}`,\n\t};\n};\n\n","/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatAvatar, CometChatUserPresence } from \"../../Shared\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport { listItem, itemThumbnailStyle, itemDetailStyle, itemNameStyle, itemDescStyle } from \"./style\";\nimport { useContext } from \"react\";\n\nconst CometChatUserListItem = (props) => {\n\n\tconst context = useContext(CometChatContext);\n\n\tlet userPresence = ();\n\n \tconst toggleTooltip = (event, flag) => {\n\n\t\tconst elem = event.target;\n\n\t\tconst scrollWidth = elem.scrollWidth;\n\t\tconst clientWidth = elem.clientWidth;\n\n\t\tif(scrollWidth <= clientWidth) {\n\t\treturn false;\n\t\t}\n\n\t\tif(flag) {\n\t\t\telem.setAttribute(\"title\", elem.textContent);\n\t\t} else {\n\t\t\telem.removeAttribute(\"title\");\n\t\t}\n\t} \n \n\treturn (\n\t\t
    props.clickHandler(props.user)} className=\"list__item\">\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t{userPresence}\n\t\t\t
    \n\t\t\t
    \n\t\t\t\t
    toggleTooltip(event, true)} \n\t\t\t\tonMouseLeave={event => toggleTooltip(event, false)}>{props.user.name}
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t
    \n\t)\n}\n\n// Specifies the default values for props:\nCometChatUserListItem.defaultProps = {\n\ttheme: theme,\n\tuser: {},\n};\n\nCometChatUserListItem.propTypes = {\n\ttheme: PropTypes.object,\n\tuser: PropTypes.shape(CometChat.User),\n};\n\nexport { CometChatUserListItem };","export const userScreenStyle = (props) => {\n\n return {\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n boxSizing: \"border-box\",\n fontFamily: `${props.theme.fontFamily}`,\n border: `1px solid ${props.theme.borderColor.primary}`,\n \"*\": {\n boxSizing: \"border-box\",\n fontFamily: `${props.theme.fontFamily}`,\n \"::-webkit-scrollbar\": {\n width: \"8px\",\n height: \"4px\",\n },\n \"::-webkit-scrollbar-track\": {\n background: \"#ffffff00\"\n },\n \"::-webkit-scrollbar-thumb\": {\n background: \"#ccc\",\n \"&:hover\": {\n background: \"#aaa\"\n }\n }\n }\n }\n}\n\nexport const userScreenSidebarStyle = (state, props) => {\n\n const sidebarView = (state.sidebarview) ? {\n left: \"0\",\n boxShadow: \"rgba(0, 0, 0, .4) -30px 0 30px 30px\"\n } : {};\n\n const mq = [...props.theme.breakPoints];\n\n return {\n\n width: \"280px\",\n borderRight: `1px solid ${props.theme.borderColor.primary}`,\n height: \"100%\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n \"> .contacts\": {\n height: \"calc(100% - 5px)\",\n },\n [`@media ${mq[0]}`]: {\n position: \"absolute!important\",\n left: \"-100%\",\n top: \"0\",\n bottom: \"0\",\n width: \"100%!important\",\n zIndex: \"2\",\n backgroundColor: `${props.theme.backgroundColor.white}`,\n transition: \"all .3s ease-out\",\n ...sidebarView\n }\n }\n}\n\nexport const userScreenMainStyle = (state, props) => {\n\n const mq = [...props.theme.breakPoints];\n\n return {\n width: \"calc(100% - 280px)\",\n height: \"100%\",\n order: \"2\",\n display: \"flex\",\n flexDirection: \"row\",\n [`@media ${mq[1]}, ${mq[2]}`]: {\n width: \"100%!important\",\n }\n }\n}","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\n\nimport { CometChatUserList } from \"../\";\nimport { CometChatMessages } from \"../../Messages\";\nimport { CometChatIncomingCall } from \"../../Calls\";\n\nimport { CometChatContextProvider } from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n\tuserScreenStyle,\n\tuserScreenSidebarStyle,\n\tuserScreenMainStyle,\n} from \"./style\"\n\nclass CometChatUserListWithMessages extends React.Component {\n\n \tloggedInUser = null;\n\n \tconstructor(props) {\n\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tsidebarview: false,\n\t\t}\n\n\t\tthis.contextProviderRef = React.createRef();\n \t}\n \n\tcomponentDidMount() {\n\n\t\tif (this.props.chatWithUser.length === 0) {\n\t\t\tthis.toggleSideBar();\n\t\t}\n\t}\n\n\titemClicked = (user, type) => {\n\n\t\tthis.contextProviderRef.setTypeAndItem(type, user);\n\t\tthis.toggleSideBar()\n\t}\n\n\tactionHandler = (action) => {\n\t\t\n\t\tswitch(action) {\n\t\t\tcase enums.ACTIONS[\"TOGGLE_SIDEBAR\"]:\n\t\t\t\tthis.toggleSideBar();\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\tbreak;\n\t\t}\n\t}\n\n\ttoggleSideBar = () => {\n\n\t\tconst sidebarview = this.state.sidebarview;\n\t\tthis.setState({ sidebarview: !sidebarview });\n\t}\n\n\trender() {\n\n\t\tlet messageScreen = (\n\t\t);\n\n\t\treturn (\n\t\t\t (this.contextProviderRef = el)} user={this.props.chatWithUser} language={this.props.lang}>\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{messageScreen}\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatUserListWithMessages.defaultProps = {\n\tlang: Translator.getDefaultLanguage(),\n\ttheme: theme,\n\tchatWithUser: \"\",\n};\n\nCometChatUserListWithMessages.propTypes = {\n\tlang: PropTypes.string,\n\ttheme: PropTypes.object,\n\tchatWithUser: PropTypes.string,\n}\n\nexport { CometChatUserListWithMessages };","export const modalWrapperStyle = (context) => {\n\n const mq = context.theme.breakPoints.map(x => `@media ${x}`);\n return {\n minWidth: \"350px\",\n minHeight: \"350px\",\n width: \"40%\",\n height: \"40%\",\n overflow: \"hidden\",\n backgroundColor: `${context.theme.backgroundColor.white}`,\n position: \"fixed\",\n left: \"50%\",\n top: \"50%\",\n transform: \"translate(-50%, -50%)\",\n zIndex: \"4\",\n margin: \"0 auto\",\n boxShadow: \"rgba(20, 20, 20, 0.2) 0 16px 32px, rgba(20, 20, 20, 0.04) 0 0 0 1px\",\n borderRadius: \"12px\",\n display: \"block\",\n [mq[0]]: {\n width: \"100%\",\n height: \"100%\",\n },\n [mq[1]]: {\n width: \"100%\",\n height: \"100%\",\n },\n [mq[2]]: {\n width: \"100%\",\n height: \"100%\",\n }\n }\n}\n\nexport const modalCloseStyle = (img, context) => {\n\n return {\n position: \"absolute\",\n width: \"32px\",\n height: \"32px\",\n borderRadius: \"50%\",\n top: \"16px\",\n right: \"16px\",\n mask: `url(${img}) center center no-repeat`,\n\t\tbackgroundColor: `${context.theme.primaryColor}`,\n cursor: \"pointer\",\n }\n}\n\nexport const modalBodyStyle = () => {\n\n return {\n padding: \"24px\",\n height: \"100%\",\n width: \"100%\"\n }\n}\n\nexport const modalErrorStyle = context => {\n\treturn {\n\t\tfontSize: \"12px\",\n\t\tcolor: `${context.theme.color.red}`,\n\t\ttextAlign: \"center\",\n\t\tmargin: \"8px 0\",\n\t\twidth: \"100%\",\n\t};\n};\n\nexport const modalTableStyle = (props) => {\n\n return {\n borderCollapse: \"collapse\",\n margin: \"0\",\n padding: \"0\",\n width: \"100%\",\n height: \"90%\",\n \"tr\": {\n display: \"table\",\n width: \"100%\",\n tableLayout: \"fixed\",\n }\n }\n}\n\nexport const tableCaptionStyle = () => {\n\n return {\n fontSize: \"20px\",\n marginBottom: \"15px\",\n fontWeight: \"bold\",\n textAlign: \"left\",\n }\n}\n\nexport const tableBodyStyle = () => {\n\n return {\n height: \"calc(100% - 40px)\",\n overflowY: \"auto\",\n display: \"block\",\n \"tr\": {\n \"td\": {\n padding: \"8px 0\",\n fontSize: \"14px\",\n \"input\": {\n width: \"100%\",\n border: \"none\",\n padding: \"8px 16px\",\n fontSize: \"14px\",\n outline: \"none\",\n },\n \"select\": {\n outline: \"none\",\n padding: \"8px 16px\",\n }\n }\n }\n }\n}\n\nexport const tableFootStyle = (context, state, img) => {\n\n const loadingState = (state.creatingGroup) ? {\n disabled: \"true\",\n pointerEvents: \"none\",\n background: `url(${img}) no-repeat right 10px center ${context.theme.primaryColor}`,\n } : {};\n\n const textMargin = (state.creatingGroup) ? { marginRight: \"24px\", } : {};\n\n return {\n display: \"inline-block\",\n \"button\": {\n cursor: \"pointer\",\n padding: \"8px 16px\",\n backgroundColor: `${context.theme.primaryColor}`,\n borderRadius: \"5px\",\n color: `${context.theme.color.white}`,\n fontSize: \"14px\",\n outline: \"0\",\n border: \"0\",\n ...loadingState,\n \"span\": {\n ...textMargin\n }\n },\n \"tr\": {\n border: \"none\",\n \"td\": {\n textAlign: \"center\",\n }\n },\n }\n}\n\nexport const inputStyle = (context) => {\n\n return {\n display: \"block\",\n width: \"100%\",\n border: '0',\n boxShadow: \"rgba(20, 20, 20, 0.04) 0 0 0 1px inset\",\n borderRadius: \"8px\",\n backgroundColor: `${context.theme.backgroundColor.grey}`,\n color: `${context.theme.color.helpText}`,\n fontSize: \"14px\",\n }\n}","export default __webpack_public_path__ + \"static/media/creating.446449d0.svg\";","export default __webpack_public_path__ + \"static/media/close.0b0b6f95.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatBackdrop } from \"../../Shared\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n modalWrapperStyle,\n modalCloseStyle,\n modalBodyStyle,\n modalTableStyle,\n tableCaptionStyle,\n tableBodyStyle,\n inputStyle,\n tableFootStyle,\n\tmodalErrorStyle,\n} from \"./style\";\n\nimport creatingIcon from \"./resources/creating.svg\";\nimport closeIcon from \"./resources/close.svg\";\n\nclass CometChatCreateGroup extends React.Component {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\terrorMessage: \"\",\n\t\t\tpasswordInput: false,\n\t\t\tname: \"\",\n\t\t\ttype: \"\",\n\t\t\tpassword: \"\",\n\t\t\tcreatingGroup: false,\n\t\t\tenablePublicGroup: false,\n\t\t\tenablePasswordGroup: false,\n\t\t\tenablePrivateGroup: false,\n\t\t};\n\t}\n\n componentDidMount() {\n\n this.enablePublicGroup();\n this.enablePasswordGroup();\n this.enablePrivateGroup();\n }\n\n componentDidUpdate() {\n\n this.enablePublicGroup();\n this.enablePasswordGroup();\n this.enablePrivateGroup();\n }\n\n\tenablePublicGroup = () => {\n\t\tthis.context.FeatureRestriction.isPublicGroupEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enablePublicGroup) {\n\t\t\t\t\tthis.setState({enablePublicGroup: response});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enablePublicGroup !== false) {\n\t\t\t\t\tthis.setState({enablePublicGroup: false});\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenablePasswordGroup = () => {\n\t\tthis.context.FeatureRestriction.isPasswordGroupEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enablePasswordGroup) {\n\t\t\t\t\tthis.setState({enablePasswordGroup: response});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enablePasswordGroup !== false) {\n\t\t\t\t\tthis.setState({enablePasswordGroup: false});\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenablePrivateGroup = () => {\n\t\tthis.context.FeatureRestriction.isPrivateGroupEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enablePrivateGroup) {\n\t\t\t\t\tthis.setState({enablePrivateGroup: response});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enablePrivateGroup !== false) {\n\t\t\t\t\tthis.setState({enablePrivateGroup: false});\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tpasswordChangeHandler = event => {\n\t\tthis.setState({password: event.target.value});\n\t};\n\n\tnameChangeHandler = event => {\n\t\tthis.setState({name: event.target.value});\n\t};\n\n\ttypeChangeHandler = event => {\n\t\tconst type = event.target.value;\n\t\tthis.setState({type});\n\n\t\tif (type === CometChat.GROUP_TYPE.PASSWORD) {\n\t\t\tthis.setState({passwordInput: true});\n\t\t} else {\n\t\t\tthis.setState({passwordInput: false});\n\t\t}\n\t};\n\n\tvalidate = () => {\n\t\tconst groupName = this.state.name.trim();\n\t\tconst groupType = this.state.type.trim();\n\n\t\tif (!groupName) {\n\t\t\tthis.setState({ errorMessage: Translator.translate(\"INVALID_GROUP_NAME\", this.context.language) });\n\t\t\treturn false;\n\t\t}\n\n\t\tif (!groupType) {\n\t\t\tthis.setState({ errorMessage: Translator.translate(\"INVALID_GROUP_TYPE\", this.context.language) });\n\t\t\treturn false;\n\t\t}\n\n\t\tlet password = \"\";\n\t\tif (groupType === CometChat.GROUP_TYPE.PASSWORD) {\n\t\t\tpassword = this.state.password;\n\n\t\t\tif (!password.length) {\n\t\t\t\tthis.setState({ errorMessage: Translator.translate(\"INVALID_PASSWORD\", this.context.language) });\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t};\n\n\tcreateGroup = () => {\n\n\t\tif (!this.validate()) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.setState({ creatingGroup: true });\n\n\t\tconst groupType = this.state.type.trim();\n\n\t\tconst password = this.state.password;\n\t\tconst guid = \"group_\" + new Date().getTime();\n\t\tconst name = this.state.name.trim();\n\t\tlet type = CometChat.GROUP_TYPE.PUBLIC;\n\n\t\tswitch (groupType) {\n\t\t\tcase \"public\":\n\t\t\t\ttype = CometChat.GROUP_TYPE.PUBLIC;\n\t\t\t\tbreak;\n\t\t\tcase \"private\":\n\t\t\t\ttype = CometChat.GROUP_TYPE.PRIVATE;\n\t\t\t\tbreak;\n\t\t\tcase \"password\":\n\t\t\t\ttype = CometChat.GROUP_TYPE.PASSWORD;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\tconst group = new CometChat.Group(guid, name, type, password);\n\t\tCometChat.createGroup(group)\n\t\t\t.then(newGroup => {\n\t\t\t\tthis.setState({ creatingGroup: false });\n\n\t\t\t\tif (typeof newGroup === \"object\" && Object.keys(newGroup).length) {\n\t\t\t\t\tthis.context.setToastMessage(\"success\", \"GROUP_CREATION_SUCCESS\");\n\t\t\t\t\tthis.setState({ name: \"\", type: \"\", password: \"\", passwordInput: \"\" });\n\t\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"GROUP_CREATED\"], newGroup);\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState({ errorMessage: Translator.translate(\"SOMETHING_WRONG\", this.context.language) });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tthis.setState({ creatingGroup: false, errorMessage: Translator.translate(\"SOMETHING_WRONG\", this.context.language) });\n\t\t\t});\n\t};\n\n\tpopulateGroupType = () => {};\n\n\trender() {\n\n const groupTypes = {};\n let groupTypeSelect = null;\n\n if (this.state.enablePublicGroup === true) {\n groupTypes[CometChat.GROUP_TYPE.PUBLIC] = Translator.translate(\"PUBLIC\", this.context.language);\n }\n\n if (this.state.enablePasswordGroup === true) {\n groupTypes[CometChat.GROUP_TYPE.PASSWORD] = Translator.translate(\"PASSWORD_PROTECTED\", this.context.language);\n }\n\n if (this.state.enablePrivateGroup === true) {\n groupTypes[CometChat.GROUP_TYPE.PRIVATE] = Translator.translate(\"PRIVATE\", this.context.language);\n }\n\n const groupTypeKeys = Object.keys(groupTypes);\n if (groupTypeKeys.length) {\n\n const groupTypeListOptions = groupTypeKeys.map(groupTypeKey => {\n return (\n \n );\n });\n\n if (groupTypeKeys.length > 1) {\n groupTypeSelect = (\n \n \n \n \n \n );\n } else {\n groupTypeSelect = (\n \n \n \n \n \n );\n }\n }\n\n\t\tlet password = null;\n\t\tif (this.state.passwordInput) {\n\t\t\tpassword = (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\t}\n\n\t\tconst createText = this.state.creatingGroup ? Translator.translate(\"CREATING\", this.context.language) : Translator.translate(\"CREATE\", this.context.language);\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{groupTypeSelect}\n\t\t\t\t\t\t\t\t{password}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    {Translator.translate(\"CREATE_GROUP\", this.context.language)}
    {this.state.errorMessage}
    \n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\nexport { CometChatCreateGroup };","import { CometChat } from \"@cometchat-pro/chat\";\n\nimport * as enums from \"../../../util/enums.js\";\n\nexport class GroupDetailManager {\n\n guid = null;\n groupMemberRequest = null;\n bannedGroupMemberRequest = null;\n\n userListenerId = \"group_detail_user_\" + new Date().getTime();\n groupListenerId = \"group_detail_group_\" + new Date().getTime();\n\n constructor(guid) {\n this.guid = guid;\n this.groupMemberRequest = new CometChat.GroupMembersRequestBuilder(guid).setLimit(10).build();\n this.bannedGroupMemberRequest = new CometChat.BannedMembersRequestBuilder(guid).setLimit(10).build();\n }\n\n fetchNextGroupMembers() {\n return this.groupMemberRequest.fetchNext();\n }\n\n fetchNextBannedGroupMembers() {\n return this.bannedGroupMemberRequest.fetchNext();\n }\n\n attachListeners(callback) {\n\n CometChat.addGroupListener(\n this.groupListenerId,\n new CometChat.GroupListener({\n onGroupMemberScopeChanged: (message, changedUser, newScope, oldScope, changedGroup) => {\n callback(enums.GROUP_MEMBER_SCOPE_CHANGED, message, changedGroup, {\"user\": changedUser, \"scope\": newScope});\n }, \n onGroupMemberKicked: (message, kickedUser, kickedBy, kickedFrom) => {\n callback(enums.GROUP_MEMBER_KICKED, message, kickedFrom, {\"user\": kickedUser, \"hasJoined\": false});\n }, \n onGroupMemberBanned: (message, bannedUser, bannedBy, bannedFrom) => {\n callback(enums.GROUP_MEMBER_BANNED, message, bannedFrom, {\"user\": bannedUser});\n }, \n onGroupMemberUnbanned: (message, unbannedUser, unbannedBy, unbannedFrom) => {\n callback(enums.GROUP_MEMBER_UNBANNED, message, unbannedFrom, {\"user\": unbannedUser, \"hasJoined\": false});\n }, \n onMemberAddedToGroup: (message, userAdded, userAddedBy, userAddedIn) => {\n callback(enums.GROUP_MEMBER_ADDED, message, userAddedIn, {\"user\": userAdded, \"hasJoined\": true});\n }, \n onGroupMemberLeft: (message, leavingUser, group) => {\n callback(enums.GROUP_MEMBER_LEFT, message, group, {\"user\": leavingUser});\n }, \n onGroupMemberJoined: (message, joinedUser, joinedGroup) => {\n callback(enums.GROUP_MEMBER_JOINED, message, joinedGroup, {\"user\": joinedUser});\n }\n })\n );\n\n CometChat.addUserListener(\n this.userListenerId,\n new CometChat.UserListener({\n onUserOnline: onlineUser => {\n /* when someuser/friend comes online, user will be received here */\n callback(enums.USER_ONLINE, null, {guid: this.guid}, {\"user\": onlineUser});\n },\n onUserOffline: offlineUser => {\n /* when someuser/friend went offline, user will be received here */\n callback(enums.USER_OFFLINE, null, {guid: this.guid}, {\"user\": offlineUser});\n }\n })\n );\n }\n\n removeListeners() {\n\n CometChat.removeUserListener(this.userListenerId);\n CometChat.removeGroupListener(this.groupListenerId);\n }\n}","export const detailStyle = (context) => {\n\n return {\n height: \"100%\",\n position: \"relative\",\n boxSizing: \"border-box\",\n fontFamily: `${context.theme.fontFamily}`,\n \"*\": {\n boxSizing: \"border-box\",\n fontFamily: `${context.theme.fontFamily}`,\n }\n }\n}\n\nexport const headerStyle = (context) => {\n\n return {\n padding: \"16px\",\n position: \"relative\",\n borderBottom: `1px solid ${context.theme.borderColor.primary}`,\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n height: \"69px\",\n }\n}\n\nexport const headerCloseStyle = (img, context) => {\n\n const mq = [...context.theme.breakPoints];\n\n return {\n cursor: \"pointer\",\n display: \"none\",\n mask: `url(${img}) center center no-repeat`,\n backgroundColor: `${context.theme.primaryColor}`,\n width: \"24px\",\n height: \"24px\",\n [`@media ${mq[1]}, ${mq[2]}, ${mq[3]}, , ${mq[4]}`]: {\n display: \"block\"\n },\n }\n}\n\nexport const headerTitleStyle = () => {\n\n return {\n margin: \"0\",\n fontWeight: \"700\",\n fontSize: \"20px\"\n }\n}\n\nexport const detailPaneStyle = () => {\n\n return {\n margin: \"0\",\n padding: \"16px\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n alignItems: \"flex-start\",\n height: \"calc(100% - 70px)\"\n }\n}\n\nexport const sectionStyle = () => {\n\n return {\n width: \"100%\",\n }\n}\n\nexport const sectionHeaderStyle = (context) => {\n\n return {\n margin: \"0\",\n width: \"100%\",\n fontSize: \"12px\",\n lineHeight: \"20px\",\n color: `${context.theme.color.secondary}`,\n textTransform: \"uppercase\",\n }\n}\n\nexport const sectionContentStyle = () => {\n\n return {\n width: \"100%\",\n margin: \"6px 0\",\n '&:not(:last-of-type)': {\n marginBottom: \"16px\",\n }\n }\n}\n\nexport const contentItemStyle = () => {\n\n return {\n position: \"relative\",\n display: \"flex\",\n clear: \"both\",\n width: \"100%\",\n padding:\" 6px 0\",\n '&:first-of-type': {\n paddingTop: \"0\",\n },\n '&:last-of-type': {\n paddingBottom: \"0\",\n }\n }\n}\n\nexport const itemLinkStyle = (context, deleteLink) => {\n\n const deleteCss = (deleteLink) ? {\n color: `${context.theme.color.red}`,\n } : {};\n\n return {\n fontSize: \"15px\",\n lineHeight: \"20px\",\n display: \"inline-block\",\n cursor: \"pointer\",\n fontWeight: \"600\",\n ...deleteCss\n }\n}\n","export default __webpack_public_path__ + \"static/media/back.e8e05e7c.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { GroupDetailManager } from \"./controller\";\n\nimport { CometChatConfirmDialog, CometChatToastNotification } from \"../../Shared\";\nimport { \n\tCometChatViewGroupMemberList, \n\tCometChatAddGroupMemberList, \n\tCometChatBanGroupMemberList, \n\tCometChatTransferOwnershipMemberList\n} from \"../../Groups\";\n\nimport { CometChatSharedMediaView } from \"../../Shared/CometChatSharedMediaView/index.js\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport Translator from \"../../../resources/localization/translator\";\nimport { theme } from \"../../../resources/theme\";\n\nimport {\n detailStyle,\n headerStyle,\n headerCloseStyle,\n headerTitleStyle,\n detailPaneStyle,\n sectionStyle,\n sectionHeaderStyle,\n sectionContentStyle,\n contentItemStyle,\n itemLinkStyle\n} from \"./style\";\n\nimport navigateIcon from \"./resources/back.svg\";\n\nclass CometChatGroupDetails extends React.Component {\n\titem;\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props, context) {\n\t\tsuper(props, context);\n\n\t\tthis._isMounted = false;\n\n\t\tthis.state = {\n\t\t\tloggedInUser: null,\n\t\t\tmemberlist: [],\n\t\t\tbannedmemberlist: [],\n\t\t\tadministratorslist: [],\n\t\t\tmoderatorslist: [],\n\t\t\tviewMember: false,\n\t\t\taddMember: false,\n\t\t\tbanMember: false,\n\t\t\taddAdministrator: false,\n\t\t\taddModerator: false,\n\t\t\tenableAddGroupMembers: false,\n\t\t\tenableChangeScope: false,\n\t\t\tenableKickGroupMembers: false,\n\t\t\tenableBanGroupMembers: false,\n\t\t\tenableDeleteGroup: false,\n\t\t\tenableViewGroupMembers: false,\n\t\t\tenableLeaveGroup: false,\n\t\t\tenableSharedMedia: false,\n\t\t\tshowDeleteConfirmDialog: false,\n\t\t\tshowLeaveGroupConfirmDialog: false,\n\t\t\tshowTransferOwnershipConfirmDialog: false,\n\t\t\ttransferOwnership: false,\n\t\t};\n\n\t\tthis.toastRef = React.createRef();\n\t}\n\n\tcomponentDidMount() {\n\t\tCometChat.getLoggedinUser()\n\t\t\t.then(user => {\n\t\t\t\tif (this._isMounted) {\n\t\t\t\t\tthis.setState({ loggedInUser: user });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => this.toastRef.setError(\"SOMETHING_WRONG\"));\n\n\t\tthis._isMounted = true;\n\t\tthis.context.clearGroupMembers();\n\n\t\tthis.item = this.context.item;\n\n\t\tconst guid = this.context.item.guid;\n\t\tthis.GroupDetailManager = new GroupDetailManager(guid);\n\t\tthis.getGroupMembers();\n\t\tthis.getBannedGroupMembers();\n\t\tthis.GroupDetailManager.attachListeners(this.groupUpdated);\n\n\t\tthis.enableAddGroupMembers();\n\t\tthis.enableChangeScope();\n\t\tthis.enableKickGroupMembers();\n\t\tthis.enableBanGroupMembers();\n\t\tthis.enableViewGroupMembers();\n\t\tthis.enableDeleteGroup();\n\t\tthis.enableLeaveGroup();\n\t\tthis.enableSharedMedia();\n\t}\n\n\tcomponentDidUpdate(prevProps, prevState) {\n\t\tif (this.item.guid !== this.context.item.guid) {\n\t\t\tthis.context.clearGroupMembers();\n\n\t\t\tconst guid = this.context.item.guid;\n\t\t\tthis.GroupDetailManager.removeListeners();\n\t\t\tthis.GroupDetailManager = new GroupDetailManager(guid);\n\t\t\tthis.getGroupMembers();\n\t\t\tthis.getBannedGroupMembers();\n\t\t\tthis.GroupDetailManager.attachListeners(this.groupUpdated);\n\t\t}\n\n\t\tthis.item = this.context.item;\n\t\tthis.enableAddGroupMembers();\n\t\tthis.enableChangeScope();\n\t\tthis.enableKickGroupMembers();\n\t\tthis.enableBanGroupMembers();\n\t\tthis.enableViewGroupMembers();\n\t\tthis.enableDeleteGroup();\n\t\tthis.enableLeaveGroup();\n\t\tthis.enableSharedMedia();\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.GroupDetailManager.removeListeners();\n\t\tthis.GroupDetailManager = null;\n\t\tthis._isMounted = false;\n\t}\n\n\tenableAddGroupMembers = () => {\n\t\tthis.context.FeatureRestriction.isAddingGroupMembersEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableAddGroupMembers && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableAddGroupMembers: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableAddGroupMembers !== false && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableAddGroupMembers: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableChangeScope = () => {\n\t\tthis.context.FeatureRestriction.isChangingGroupMemberScopeEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableChangeScope && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableChangeScope: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableChangeScope !== false && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableChangeScope: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableKickGroupMembers = () => {\n\t\tthis.context.FeatureRestriction.isKickingGroupMembersEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableKickGroupMembers && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableKickGroupMembers: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableKickGroupMembers !== false && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableKickGroupMembers: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableBanGroupMembers = () => {\n\t\tthis.context.FeatureRestriction.isBanningGroupMembersEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableBanGroupMembers && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableBanGroupMembers: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableBanGroupMembers !== false && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableBanGroupMembers: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableDeleteGroup = () => {\n\t\tthis.context.FeatureRestriction.isGroupDeletionEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableDeleteGroup && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableDeleteGroup: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableDeleteGroup !== false && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableDeleteGroup: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableViewGroupMembers = () => {\n\t\tthis.context.FeatureRestriction.isViewingGroupMembersEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableViewGroupMembers && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableViewGroupMembers: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableViewGroupMembers !== false && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableViewGroupMembers: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableLeaveGroup = () => {\n\t\tthis.context.FeatureRestriction.isJoinLeaveGroupsEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableLeaveGroup && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableLeaveGroup: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableLeaveGroup !== false && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableLeaveGroup: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableSharedMedia = () => {\n\t\tthis.context.FeatureRestriction.isSharedMediaEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableSharedMedia && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableSharedMedia: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableSharedMedia !== false && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableSharedMedia: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableBlockUser = () => {\n\t\tthis.context.FeatureRestriction.isBlockUserEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableBlockUser && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableBlockUser: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableBlockUser !== false && this._isMounted) {\n\t\t\t\t\tthis.setState({ enableBlockUser: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tgroupUpdated = (key, message, group, options) => {\n\t\tconst guid = this.context.item.guid;\n\t\tif (guid !== group.guid) {\n\t\t\treturn false;\n\t\t}\n\n\t\tswitch (key) {\n\t\t\tcase enums.USER_ONLINE:\n\t\t\tcase enums.USER_OFFLINE:\n\t\t\t\tthis.updateGroupMemberPresence(options.user);\n\t\t\t\tbreak;\n\t\t\tcase enums.GROUP_MEMBER_ADDED:\n\t\t\tcase enums.GROUP_MEMBER_JOINED:\n\t\t\t\t{\n\t\t\t\t\tconst member = options.user;\n\t\t\t\t\tconst updatedMember = Object.assign({}, member, { scope: CometChat.GROUP_MEMBER_SCOPE.PARTICIPANT });\n\n\t\t\t\t\tthis.addParticipants([updatedMember], false);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase enums.GROUP_MEMBER_LEFT:\n\t\t\tcase enums.GROUP_MEMBER_KICKED:\n\t\t\t\t{\n\t\t\t\t\tconst member = options.user;\n\t\t\t\t\tthis.removeParticipants(key, member, false);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase enums.GROUP_MEMBER_BANNED:\n\t\t\t\t{\n\t\t\t\t\tconst member = options.user;\n\t\t\t\t\t//this.setAvatar(member);\n\t\t\t\t\tthis.banMembers([member]);\n\t\t\t\t\tthis.removeParticipants(key, member, false);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase enums.GROUP_MEMBER_UNBANNED:\n\t\t\t\t{\n\t\t\t\t\tconst member = options.user;\n\t\t\t\t\tthis.unbanMembers([member]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase enums.GROUP_MEMBER_SCOPE_CHANGED:\n\t\t\t\t{\n\t\t\t\t\tconst member = options.user;\n\t\t\t\t\tconst updatedMember = Object.assign({}, member, { scope: options[\"scope\"] });\n\t\t\t\t\tthis.updateParticipants(updatedMember);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\t/*\n Updating group members presence\n */\n\tupdateGroupMemberPresence = member => {\n\t\tlet memberlist = [...this.context.groupMembers];\n\t\t//search for user\n\t\tlet memberKey = memberlist.findIndex((m, k) => m.uid === member.uid);\n\t\t//if found in the list, update user object\n\t\tif (memberKey > -1) {\n\t\t\tlet memberObj = memberlist[memberKey];\n\t\t\tlet newMemberObj = Object.assign({}, memberObj, member);\n\t\t\tmemberlist.splice(memberKey, 1, newMemberObj);\n\n\t\t\tthis.context.updateGroupMembers(memberlist);\n\t\t}\n\n\t\tlet bannedmemberlist = [...this.context.bannedGroupMembers];\n\t\t//search for user\n\t\tlet bannedMemberKey = bannedmemberlist.findIndex((m, k) => m.uid === member.uid);\n\t\t//if found in the list, update user object\n\t\tif (bannedMemberKey > -1) {\n\t\t\tlet bannedMemberObj = bannedmemberlist[bannedMemberKey];\n\t\t\tlet newBannedMemberObj = Object.assign({}, bannedMemberObj, member);\n\t\t\tbannedmemberlist.splice(bannedMemberKey, 1, newBannedMemberObj);\n\n\t\t\tthis.updateBannedGroupMembers(bannedmemberlist);\n\t\t}\n\t};\n\n\tgetGroupMembers = () => {\n\t\tconst administratorslist = [],\n\t\t\tmoderatorslist = [];\n\t\tthis.GroupDetailManager.fetchNextGroupMembers()\n\t\t\t.then(groupMembers => {\n\t\t\t\tgroupMembers.forEach(member => {\n\t\t\t\t\tif (member.scope === CometChat.GROUP_MEMBER_SCOPE.ADMIN) {\n\t\t\t\t\t\tadministratorslist.push(member);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (member.scope === CometChat.GROUP_MEMBER_SCOPE.MODERATOR) {\n\t\t\t\t\t\tmoderatorslist.push(member);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tthis.context.setAllGroupMembers(groupMembers, administratorslist, moderatorslist);\n\t\t\t})\n\t\t\t.catch(error => this.toastRef.setError(\"SOMETHING_WRONG\"));\n\t};\n\n\tgetBannedGroupMembers = () => {\n\t\tif (this.context.item.scope === CometChat.GROUP_MEMBER_SCOPE.PARTICIPANT) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.GroupDetailManager.fetchNextBannedGroupMembers()\n\t\t\t.then(bannedMembers => {\n\t\t\t\tthis.context.setBannedGroupMembers(bannedMembers);\n\t\t\t})\n\t\t\t.catch(error => this.toastRef.setError(\"SOMETHING_WRONG\"));\n\t};\n\n\tdeleteGroup = () => {\n\t\tthis.setState({ showDeleteConfirmDialog: true, showLeaveGroupConfirmDialog: false, showTransferOwnershipConfirmDialog: false });\n\t};\n\n\tonDeleteConfirm = e => {\n\t\tconst optionSelected = e.target.value;\n\t\tthis.setState({ showDeleteConfirmDialog: false });\n\n\t\tif (optionSelected === \"no\") {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst guid = this.context.item.guid;\n\t\tCometChat.deleteGroup(guid)\n\t\t\t.then(response => {\n\t\t\t\tif (response) {\n\t\t\t\t\tthis.context.setToastMessage(\"success\", \"GROUP_DELETION_SUCCESS\");\n\t\t\t\t\tthis.context.setDeletedGroupId(guid);\n\t\t\t\t} else {\n\t\t\t\t\tthis.toastRef.setError(\"SOMETHING_WRONG\");\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => this.toastRef.setError(\"SOMETHING_WRONG\"));\n\t};\n\n\tonLeaveConfirm = e => {\n\t\tconst optionSelected = e.target.value;\n\t\tthis.setState({ showLeaveGroupConfirmDialog: false });\n\n\t\tif (optionSelected === \"no\") {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst guid = this.context.item.guid;\n\t\tCometChat.leaveGroup(guid)\n\t\t\t.then(response => {\n\t\t\t\tif (response) {\n\t\t\t\t\tthis.context.setLeftGroupId(guid);\n\t\t\t\t} else {\n\t\t\t\t\tthis.toastRef.setError(\"SOMETHING_WRONG\");\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => this.toastRef.setError(\"SOMETHING_WRONG\"));\n\t};\n\n\tonTransferConfirm = e => {\n\t\tconst optionSelected = e.target.value;\n\t\tthis.setState({ showTransferOwnershipConfirmDialog: false });\n\t\tif (optionSelected === \"no\") {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.setState({ transferOwnership: true });\n\t};\n\n\tleaveGroup = () => {\n\t\t/**\n\t\t * If loggeduser is the owner of the group; ask him to transfer ownership before leaving the group else show leave group confirmtion dialog\n\t\t */\n\t\tif (this.context.item?.owner === this.state.loggedInUser?.uid) {\n\t\t\tthis.setState({ showTransferOwnershipConfirmDialog: true, showDeleteConfirmDialog: false, showLeaveGroupConfirmDialog: false });\n\t\t} else {\n\t\t\tthis.setState({ showLeaveGroupConfirmDialog: true, showTransferOwnershipConfirmDialog: false, showDeleteConfirmDialog: false });\n\t\t}\n\t};\n\n\tclickHandler = (action, flag) => {\n\t\tswitch (action) {\n\t\t\tcase \"viewmember\":\n\t\t\t\tthis.setState({ viewMember: flag });\n\t\t\t\tbreak;\n\t\t\tcase \"addmember\":\n\t\t\t\tthis.setState({ addMember: flag });\n\t\t\t\tbreak;\n\t\t\tcase \"banmember\":\n\t\t\t\tthis.setState({ banMember: flag });\n\t\t\t\tbreak;\n\t\t\tcase \"transferownership\":\n\t\t\t\tthis.setState({ transferOwnership: flag });\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tmembersActionHandler = (action, members) => {\n\t\tswitch (action) {\n\t\t\tcase enums.ACTIONS[\"FETCH_GROUP_MEMBERS\"]:\n\t\t\t\tthis.getGroupMembers();\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"FETCH_BANNED_GROUP_MEMBERS\"]:\n\t\t\t\tthis.getBannedGroupMembers();\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"UNBAN_GROUP_MEMBER_SUCCESS\"]:\n\t\t\t\tthis.unbanMembers(members);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"ADD_GROUP_MEMBER_SUCCESS\"]:\n\t\t\t\tthis.addParticipants(members);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"BAN_GROUPMEMBER_SUCCESS\"]:\n\t\t\tcase enums.ACTIONS[\"KICK_GROUPMEMBER_SUCCESS\"]:\n\t\t\t\tthis.removeParticipants(action, members);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"SCOPECHANGE_GROUPMEMBER_SUCCESS\"]:\n\t\t\t\tthis.updateParticipants(members);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"OWNERSHIP_TRANSFERRED\"]:\n\t\t\t\tthis.updateOwnership(members);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tbanMembers = members => {\n\t\tthis.context.setBannedGroupMembers(members);\n\t};\n\n\tunbanMembers = members => {\n\t\tconst bannedMembers = [...this.context.bannedGroupMembers];\n\t\tconst unbannedMembers = [];\n\n\t\tconst filteredBannedMembers = bannedMembers.filter(bannedmember => {\n\t\t\tconst found = members.find(member => bannedmember.uid === member.uid);\n\t\t\tif (found) {\n\t\t\t\tunbannedMembers.push(found);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"UNBAN_GROUP_MEMBER_SUCCESS\"], unbannedMembers);\n\t\tthis.context.updateBannedGroupMembers(filteredBannedMembers);\n\t};\n\n\taddParticipants = (members, triggerUpdate = true) => {\n\t\tthis.context.setGroupMembers(members);\n\t\t\n\t\tif (triggerUpdate) {\n\t\t\tconst newItem = { ...this.context.item, membersCount: this.context.groupMembers.length };\n\t\t\tthis.context.setItem(newItem);\n\n\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"ADD_GROUP_MEMBER_SUCCESS\"], members);\n\t\t}\n\t};\n\n\tremoveParticipants = (action, member, triggerUpdate = true) => {\n\n\t\tconst groupmembers = [...this.context.groupMembers];\n\t\tconst filteredMembers = groupmembers.filter(groupmember => {\n\t\t\tif (groupmember.uid === member.uid) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\treturn true;\n\t\t});\n\n\t\tthis.context.updateGroupMembers(filteredMembers);\n\n\t\tif (triggerUpdate) {\n\t\t\t\n\t\t\tconst newItem = { ...this.context.item, membersCount: filteredMembers.length };\n\t\t\tthis.context.setItem(newItem);\n\n\t\t\t//if group member is banned, update banned member list in context api\n\t\t\tif(action === enums.ACTIONS[\"BAN_GROUPMEMBER_SUCCESS\"]) {\n\t\t\t\tthis.context.setBannedGroupMembers([member]);\n\t\t\t}\n\n\t\t\tthis.props.actionGenerated(action, [member]);\n\t\t}\n\t};\n\n\tupdateParticipants = updatedMember => {\n\t\tconst memberlist = [...this.context.groupMembers];\n\n\t\tconst memberKey = memberlist.findIndex(member => member.uid === updatedMember.uid);\n\t\tif (memberKey > -1) {\n\t\t\tconst memberObj = memberlist[memberKey];\n\t\t\tconst newMemberObj = Object.assign({}, memberObj, updatedMember, { scope: updatedMember[\"scope\"] });\n\n\t\t\tmemberlist.splice(memberKey, 1, newMemberObj);\n\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"SCOPECHANGE_GROUPMEMBER_SUCCESS\"], [newMemberObj]);\n\t\t\tthis.context.updateGroupMembers(memberlist);\n\t\t}\n\t};\n\n\tupdateOwnership = uid => {\n\t\tconst item = { ...this.context.item, owner: uid };\n\t\tconst type = CometChat.RECEIVER_TYPE.GROUP;\n\n\t\tthis.setState({ transferOwnership: false });\n\t\tthis.context.setTypeAndItem(type, item);\n\t};\n\n\tcloseGroupDetail = () => {\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"CLOSE_GROUP_DETAIL\"]);\n\t};\n\n\trender() {\n\t\tif (this.state.loggedInUser === null) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet viewMembersBtn = (\n\t\t\t
    \n\t\t\t\t
    this.clickHandler(\"viewmember\", true)}>\n\t\t\t\t\t{Translator.translate(\"VIEW_MEMBERS\", this.context.language)}\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\n\t\tlet addMembersBtn = null,\n\t\t\tdeleteGroupBtn = null,\n\t\t\tbannedMembersBtn = null;\n\t\tif (this.context.item.scope === CometChat.GROUP_MEMBER_SCOPE.ADMIN) {\n\t\t\taddMembersBtn = (\n\t\t\t\t
    \n\t\t\t\t\t
    this.clickHandler(\"addmember\", true)}>\n\t\t\t\t\t\t{Translator.translate(\"ADD_MEMBERS\", this.context.language)}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t);\n\n\t\t\tdeleteGroupBtn = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{Translator.translate(\"DELETE_AND_EXIT\", this.context.language)}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tif (this.context.item.scope !== CometChat.GROUP_MEMBER_SCOPE.PARTICIPANT) {\n\t\t\tbannedMembersBtn = (\n\t\t\t\t
    \n\t\t\t\t\t
    this.clickHandler(\"banmember\", true)}>\n\t\t\t\t\t\t{Translator.translate(\"BANNED_MEMBERS\", this.context.language)}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tlet leaveGroupBtn = (\n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\t{Translator.translate(\"LEAVE_GROUP\", this.context.language)}\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\n\t\tlet sharedmediaView = ;\n\n\t\tif (this.context.item.scope === CometChat.GROUP_MEMBER_SCOPE.PARTICIPANT) {\n\t\t\t//if viewing group membersfeature is disabled\n\t\t\tif (this.state.enableViewGroupMembers === false) {\n\t\t\t\tviewMembersBtn = null;\n\t\t\t}\n\t\t} else if (this.context.item.scope === CometChat.GROUP_MEMBER_SCOPE.MODERATOR || this.context.item.scope === CometChat.GROUP_MEMBER_SCOPE.ADMIN) {\n\t\t\tif (this.state.enableViewGroupMembers === false && this.state.enableKickGroupMembers === false && this.state.enableBanGroupMembers === false && this.state.enableChangeScope === false) {\n\t\t\t\t//if viewing, kicking/banning, promoting/demoting group membersare feature is disabled\n\t\t\t\tviewMembersBtn = null;\n\t\t\t}\n\t\t}\n\n\t\t//if adding group members feature is disabled\n\t\tif (this.state.enableAddGroupMembers === false) {\n\t\t\taddMembersBtn = null;\n\t\t}\n\n\t\t//if kicking/banning/unbanning group members feature is disabled\n\t\tif (this.state.enableBanGroupMembers === false) {\n\t\t\tbannedMembersBtn = null;\n\t\t}\n\n\t\t//if deleting group feature is disabled\n\t\tif (this.state.enableDeleteGroup === false) {\n\t\t\tdeleteGroupBtn = null;\n\t\t}\n\n\t\t//if leaving group feature is disabled\n\t\tif (this.state.enableLeaveGroup === false || this.context?.item?.membersCount === 1) {\n\t\t\tleaveGroupBtn = null;\n\t\t}\n\n\t\t//if viewing shared media group feature is disabled\n\t\tif (this.state.enableSharedMedia === false) {\n\t\t\tsharedmediaView = null;\n\t\t}\n\n\t\tlet members = (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{Translator.translate(\"MEMBERS\", this.context.language)}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{viewMembersBtn}\n\t\t\t\t\t{addMembersBtn}\n\t\t\t\t\t{bannedMembersBtn}\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\n\t\tlet options = (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{Translator.translate(\"OPTIONS\", this.context.language)}\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{leaveGroupBtn}\n\t\t\t\t\t{deleteGroupBtn}\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\n\t\tif (viewMembersBtn === null && addMembersBtn === null && bannedMembersBtn === null) {\n\t\t\tmembers = null;\n\t\t}\n\n\t\tif (leaveGroupBtn === null && deleteGroupBtn === null) {\n\t\t\toptions = null;\n\t\t}\n\n\t\tlet viewMembers = null;\n\t\tif (this.state.viewMember) {\n\t\t\tviewMembers = (\n\t\t\t\t this.clickHandler(\"viewmember\", false)}\n\t\t\t\t\tactionGenerated={this.membersActionHandler}\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tlet addMembers = null;\n\t\tif (this.state.addMember) {\n\t\t\taddMembers = this.clickHandler(\"addmember\", false)} actionGenerated={this.membersActionHandler} />;\n\t\t}\n\n\t\tlet bannedMembers = null;\n\t\tif (this.state.banMember) {\n\t\t\tbannedMembers = this.clickHandler(\"banmember\", false)} actionGenerated={this.membersActionHandler} />;\n\t\t}\n\n\t\tlet showDeleteConfirmDialog = null;\n\t\tif (this.state.showDeleteConfirmDialog) {\n\t\t\tshowDeleteConfirmDialog = (\n\t\t\t\t\n\t\t\t);\n\t\t}\n\n\t\tlet showLeaveGroupConfirmDialog = null;\n\t\tif (this.state.showLeaveGroupConfirmDialog) {\n\t\t\tshowLeaveGroupConfirmDialog = (\n\t\t\t\t\n\t\t\t);\n\t\t}\n\n\t\tlet showTransferOwnershipConfirmDialog = null;\n\t\tif (this.state.showTransferOwnershipConfirmDialog) {\n\t\t\tshowTransferOwnershipConfirmDialog = (\n\t\t\t\t\n\t\t\t);\n\t\t}\n\n\t\tlet transferOwnership = null;\n\t\tif (this.state.transferOwnership) {\n\t\t\ttransferOwnership = this.clickHandler(\"transferownership\", false)} />;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t

    \n\t\t\t\t\t\t{Translator.translate(\"DETAILS\", this.context.language)}\n\t\t\t\t\t

    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{members}\n\t\t\t\t\t{options}\n\t\t\t\t\t{sharedmediaView}\n\t\t\t\t
    \n\t\t\t\t{viewMembers}\n\t\t\t\t{addMembers}\n\t\t\t\t{bannedMembers}\n\t\t\t\t{transferOwnership}\n\t\t\t\t{showDeleteConfirmDialog}\n\t\t\t\t{showLeaveGroupConfirmDialog}\n\t\t\t\t{showTransferOwnershipConfirmDialog}\n\t\t\t\t (this.toastRef = el)} lang={this.props.lang} />\n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatGroupDetails.defaultProps = {\n lang: Translator.getDefaultLanguage(),\n theme: theme\n};\n\nCometChatGroupDetails.propTypes = {\n lang: PropTypes.string,\n theme: PropTypes.object\n}\n\nexport { CometChatGroupDetails };\n","import { CometChat } from \"@cometchat-pro/chat\";\n\nimport * as enums from \"../../../util/enums.js\";\n\nexport class GroupListManager {\n\n groupRequest = null;\n groupListenerId = \"grouplist_\" + new Date().getTime();\n\n constructor(searchKey) {\n\n if (searchKey) {\n this.groupRequest = new CometChat.GroupsRequestBuilder().setLimit(30).setSearchKeyword(searchKey).build();\n } else {\n this.groupRequest = new CometChat.GroupsRequestBuilder().setLimit(30).build();\n }\n }\n\n fetchNextGroups() {\n return this.groupRequest.fetchNext();\n }\n\n attachListeners(callback) {\n\n CometChat.addGroupListener(\n this.groupListenerId,\n new CometChat.GroupListener({\n onGroupMemberScopeChanged: (message, changedUser, newScope, oldScope, changedGroup) => {\n callback(enums.GROUP_MEMBER_SCOPE_CHANGED, message, changedGroup, {\"user\": changedUser, \"scope\": newScope});\n }, \n onGroupMemberKicked: (message, kickedUser, kickedBy, kickedFrom) => {\n callback(enums.GROUP_MEMBER_KICKED, message, kickedFrom, {\"user\": kickedUser, \"hasJoined\": false});\n }, \n onGroupMemberBanned: (message, bannedUser, bannedBy, bannedFrom) => {\n callback(enums.GROUP_MEMBER_BANNED, message, bannedFrom, {\"user\": bannedUser, \"hasJoined\": false});\n }, \n onGroupMemberUnbanned: (message, unbannedUser, unbannedBy, unbannedFrom) => {\n callback(enums.GROUP_MEMBER_UNBANNED, message, unbannedFrom, {\"user\": unbannedUser, \"hasJoined\": false});\n }, \n onMemberAddedToGroup: (message, userAdded, userAddedBy, userAddedIn) => {\n callback(enums.GROUP_MEMBER_ADDED, message, userAddedIn, {\"user\": userAdded, \"hasJoined\": true});\n }, \n onGroupMemberLeft: (message, leavingUser, group) => {\n callback(enums.GROUP_MEMBER_LEFT, message, group, {\"user\": leavingUser});\n }, \n onGroupMemberJoined: (message, joinedUser, joinedGroup) => {\n callback(enums.GROUP_MEMBER_JOINED, message, joinedGroup, {\"user\": joinedUser});\n }\n })\n );\n }\n\n removeListeners() {\n CometChat.removeGroupListener(this.groupListenerId);\n }\n}","export const groupWrapperStyle = (props, theme) => {\n \n const borderStyle = (props._parent === \"\") ? {\n border: `1px solid ${theme.borderColor.primary}`\n } : {};\n\n return {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\",\n boxSizing: \"border-box\",\n ...borderStyle,\n \"*\": {\n boxSizing: \"border-box\",\n \"::-webkit-scrollbar\": {\n width: \"8px\",\n height: \"4px\",\n },\n \"::-webkit-scrollbar-track\": {\n background: \"#ffffff00\"\n },\n \"::-webkit-scrollbar-thumb\": {\n background: \"#ccc\",\n \"&:hover\": {\n background: \"#aaa\"\n }\n }\n }\n }\n}\n\nexport const groupHeaderStyle = theme => {\n\n\treturn {\n\t\tpadding: \"16px\",\n\t\tposition: \"relative\",\n\t\tdisplay: \"flex\",\n\t\tjustifyContent: \"space-between\",\n\t\talignItems: \"center\",\n\t\tborderBottom: `1px solid ${theme.borderColor.primary}`,\n\t\theight: \"70px\",\n\t};\n};\n\nexport const groupHeaderCloseStyle = (img, theme) => {\n\n\tconst mq = [...theme.breakPoints];\n\n\treturn {\n\t\tcursor: \"pointer\",\n\t\tdisplay: \"none\",\n\t\tmask: `url(${img}) left center no-repeat`,\n\t\tbackgroundColor: `${theme.primaryColor}`,\n\t\theight: \"24px\",\n\t\twidth: \"33%\",\n\t\t[`@media ${mq[0]}`]: {\n\t\t\tdisplay: \"block!important\",\n\t\t},\n\t};\n};\n\nexport const groupHeaderTitleStyle = (props) => {\n\n const alignment = (props.hasOwnProperty(\"enableCloseMenu\") && props.enableCloseMenu.length > 0) ? {\n width: \"33%\",\n textAlign: \"center\"\n } : {};\n\n return {\n margin: \"0\",\n fontWeight: \"700\",\n display: \"inline-block\",\n width: \"100%\",\n textAlign: \"left\",\n fontSize: \"20px\",\n ...alignment,\n \"&[dir=rtl]\": {\n textAlign: \"right\",\n }\n }\n}\n\nexport const groupAddStyle = (img, theme) => {\n\n\treturn {\n\t\theight: \"24px\",\n\t\tcursor: \"pointer\",\n\t\ti: {\n\t\t\tdisplay: \"inline-block\",\n\t\t\twidth: \"24px\",\n\t\t\theight: \"24px\",\n\t\t\tmask: `url(${img}) center center no-repeat`,\n\t\t\tbackgroundColor: `${theme.primaryColor}`,\n\t\t},\n\t};\n};\n\nexport const groupSearchStyle = () => {\n \n return {\n margin: \"16px\",\n position: \"relative\",\n borderRadius: \"8px\",\n\t\tboxShadow: \"rgba(20, 20, 20, 0.04) 0 0 0 1px inset\",\n backgroundColor: \"rgba(20, 20, 20, 0.04)\",\n height: \"35px\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\"\n }\n}\n\nexport const groupSearchButtonStyle = (img, context) => {\n\n\treturn {\n\t\twidth: \"30px\",\n\t\theight: \"100%\",\n\t\tpadding: \"8px 0 8px 8px\",\n\t\tcursor: \"default\",\n\t\tmask: `url(${img}) 10px center no-repeat`,\n\t\tbackgroundColor: `${context.theme.secondaryTextColor}!important`,\n\t};\n};\n\nexport const groupSearchInputStyle = () => {\n\n return {\n width: \"calc(100% - 30px)\",\n height: \"100%\",\n padding: \"8px\",\n fontSize: \"15px\",\n outline: \"none\",\n border: \"none\",\n backgroundColor: \"transparent\",\n };\n}\n\nexport const groupMsgStyle = () => {\n \n return {\n overflow: \"hidden\",\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n position: \"absolute\",\n top: \"50%\"\n }\n}\n\nexport const groupMsgTxtStyle = theme => {\n\n\treturn {\n\t\tmargin: \"0\",\n\t\tminHeight: \"36px\",\n\t\tcolor: `${theme.color.secondary}`,\n\t\tfontSize: \"20px!important\",\n\t\tfontWeight: \"600\",\n\t\tlineHeight: \"30px\",\n\t\twordWrap: \"break-word\",\n\t\tpadding: \"0 16px\",\n\t};\n};\n\nexport const groupListStyle = () => {\n\n return {\n height: \"calc(100% - 125px)\",\n overflowY: \"auto\",\n margin: \"0\",\n padding: \"0\"\n }\n}","export default __webpack_public_path__ + \"static/media/search.61b1c747.svg\";","export default __webpack_public_path__ + \"static/media/back.e8e05e7c.svg\";","export default __webpack_public_path__ + \"static/media/create.65daf562.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { GroupListManager } from \"./controller\";\n\nimport { CometChatCreateGroup, CometChatGroupListItem } from \"../../Groups\";\nimport { CometChatToastNotification } from \"../../Shared\";\n\nimport { CometChatContextProvider, CometChatContext } from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n groupWrapperStyle,\n groupHeaderStyle,\n groupHeaderCloseStyle,\n groupHeaderTitleStyle,\n groupAddStyle,\n groupSearchStyle,\n groupSearchButtonStyle,\n groupSearchInputStyle,\n groupMsgStyle,\n groupMsgTxtStyle,\n groupListStyle\n} from \"./style\";\n\nimport searchIcon from \"./resources/search.svg\";\nimport navigateIcon from \"./resources/back.svg\";\nimport addIcon from \"./resources/create.svg\";\n\nclass CometChatGroupList extends React.PureComponent {\n\titem;\n\ttimeout;\n\tloggedInUser = null;\n\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tgrouplist: [],\n\t\t\tcreateGroup: false,\n\t\t\tenableSearchGroup: false,\n\t\t\tenableCreateGroup: false,\n\t\t\tenableJoinGroup: false,\n\t\t\tdecoratorMessage: Translator.translate(\"LOADING\", props.lang),\n\t\t};\n\n\t\tthis.contextProviderRef = React.createRef();\n\t\tthis.groupListRef = React.createRef();\n\t\tthis.toastRef = React.createRef();\n\n\t\tCometChat.getLoggedinUser()\n\t\t\t.then(user => (this.loggedInUser = user))\n\t\t\t.catch(error => this.setState({ decoratorMessage: Translator.translate(\"SOMETHING_WRONG\", props.lang) }));\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.item = this.getContext().type === CometChat.ACTION_TYPE.TYPE_GROUP ? this.getContext().item : null;\n\t\tthis.enableSearchGroup();\n\t\tthis.enableCreateGroup();\n\t\tthis.enableJoinGroup();\n\n\t\tthis.GroupListManager = new GroupListManager();\n\t\tthis.getGroups();\n\t\tthis.GroupListManager.attachListeners(this.groupUpdated);\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\t\t//if group detail(membersCount) is updated, update grouplist\n\t\tif (this.item && Object.keys(this.item).length && this.getContext().type === CometChat.ACTION_TYPE.TYPE_GROUP && this.item.guid === this.getContext().item.guid && this.item.membersCount !== this.getContext().item.membersCount) {\n\t\t\tconst groups = [...this.state.grouplist];\n\n\t\t\tlet groupKey = groups.findIndex(group => group.guid === this.getContext().item.guid);\n\t\t\tif (groupKey > -1) {\n\t\t\t\tconst groupObj = groups[groupKey];\n\t\t\t\tlet newGroupObj = Object.assign({}, groupObj, {membersCount: this.getContext().item.membersCount});\n\n\t\t\t\tgroups.splice(groupKey, 1, newGroupObj);\n\t\t\t\tthis.setState({grouplist: groups});\n\t\t\t}\n\t\t}\n\n\t\t//upon user deleting a group, remove group from group list\n\t\tif (this.getContext().deletedGroupId.trim().length) {\n\t\t\tconst guid = this.getContext().deletedGroupId.trim();\n\n\t\t\tconst groups = [...this.state.grouplist];\n\t\t\tconst groupKey = groups.findIndex(group => group.guid === guid);\n\n\t\t\tif (groupKey > -1) {\n\t\t\t\tgroups.splice(groupKey, 1);\n\t\t\t\tthis.setState({grouplist: groups});\n\t\t\t}\n\t\t}\n\n\t\tthis.item = this.getContext().type === CometChat.ACTION_TYPE.TYPE_GROUP ? this.getContext().item : null;\n\t\tthis.enableSearchGroup();\n\t\tthis.enableCreateGroup();\n\t\tthis.enableJoinGroup();\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.GroupListManager = null;\n\t}\n\n\t/**\n\t * if search group feature is disabled\n\t */\n\tenableSearchGroup = () => {\n\t\tthis.getContext()\n\t\t\t.FeatureRestriction.isGroupSearchEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableSearchGroup) {\n\t\t\t\t\tthis.setState({enableSearchGroup: response});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableSearchGroup !== false) {\n\t\t\t\t\tthis.setState({enableSearchGroup: false});\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\t/**\n\t * if create group feature is disabled\n\t */\n\tenableCreateGroup = () => {\n\t\tthis.getContext()\n\t\t\t.FeatureRestriction.isGroupCreationEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableCreateGroup) {\n\t\t\t\t\tthis.setState({enableCreateGroup: response});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableCreateGroup !== false) {\n\t\t\t\t\tthis.setState({enableCreateGroup: false});\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\t/**\n\t * if join group feature is disabled\n\t */\n\tenableJoinGroup = () => {\n\t\tthis.getContext()\n\t\t\t.FeatureRestriction.isJoinLeaveGroupsEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableJoinGroup) {\n\t\t\t\t\tthis.setState({enableJoinGroup: response});\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableJoinGroup !== false) {\n\t\t\t\t\tthis.setState({enableJoinGroup: false});\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tgroupUpdated = (key, message, group, options) => {\n\t\tswitch (key) {\n\t\t\tcase enums.GROUP_MEMBER_SCOPE_CHANGED:\n\t\t\t\tthis.updateMemberChanged(group, options);\n\t\t\t\tbreak;\n\t\t\tcase enums.GROUP_MEMBER_KICKED:\n\t\t\tcase enums.GROUP_MEMBER_BANNED:\n\t\t\tcase enums.GROUP_MEMBER_LEFT:\n\t\t\t\tthis.updateMemberRemoved(group, options);\n\t\t\t\tbreak;\n\t\t\tcase enums.GROUP_MEMBER_ADDED:\n\t\t\t\tthis.updateMemberAdded(group, options);\n\t\t\t\tbreak;\n\t\t\tcase enums.GROUP_MEMBER_JOINED:\n\t\t\t\tthis.updateMemberJoined(group, options);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tupdateMemberRemoved = (group, options) => {\n\t\tlet grouplist = [...this.state.grouplist];\n\n\t\t//search for group\n\t\tlet groupKey = grouplist.findIndex(g => g.guid === group.guid);\n\n\t\tif (groupKey > -1) {\n\t\t\tif (options && this.loggedInUser.uid === options.user.uid) {\n\t\t\t\tlet groupObj = {...grouplist[groupKey]};\n\t\t\t\tlet membersCount = parseInt(group.membersCount);\n\t\t\t\tlet hasJoined = group.hasJoined;\n\n\t\t\t\tlet newgroupObj = Object.assign({}, groupObj, {membersCount: membersCount, hasJoined: hasJoined});\n\n\t\t\t\tgrouplist.splice(groupKey, 1, newgroupObj);\n\t\t\t\tthis.setState({grouplist: grouplist});\n\t\t\t} else {\n\t\t\t\tlet groupObj = {...grouplist[groupKey]};\n\t\t\t\tlet membersCount = parseInt(group.membersCount);\n\n\t\t\t\tlet newgroupObj = Object.assign({}, groupObj, {membersCount: membersCount});\n\n\t\t\t\tgrouplist.splice(groupKey, 1, newgroupObj);\n\t\t\t\tthis.setState({grouplist: grouplist});\n\t\t\t}\n\t\t}\n\t};\n\n\tupdateMemberAdded = (group, options) => {\n\t\tlet grouplist = [...this.state.grouplist];\n\n\t\t//search for group\n\t\tlet groupKey = grouplist.findIndex(g => g.guid === group.guid);\n\n\t\tif (groupKey > -1) {\n\t\t\tlet groupObj = {...grouplist[groupKey]};\n\n\t\t\tlet membersCount = parseInt(group.membersCount);\n\n\t\t\tlet scope = group.hasOwnProperty(\"scope\") ? group.scope : \"\";\n\t\t\tlet hasJoined = group.hasOwnProperty(\"hasJoined\") ? group.hasJoined : false;\n\n\t\t\tif (options && this.loggedInUser.uid === options.user.uid) {\n\t\t\t\tscope = CometChat.GROUP_MEMBER_SCOPE.PARTICIPANT;\n\t\t\t\thasJoined = true;\n\t\t\t}\n\n\t\t\tlet newgroupObj = Object.assign({}, groupObj, {membersCount: membersCount, scope: scope, hasJoined: hasJoined});\n\n\t\t\tgrouplist.splice(groupKey, 1, newgroupObj);\n\t\t\tthis.setState({grouplist: grouplist});\n\t\t} else {\n\t\t\tlet groupObj = {...group};\n\n\t\t\tlet scope = groupObj.hasOwnProperty(\"scope\") ? groupObj.scope : \"\";\n\t\t\tlet hasJoined = groupObj.hasOwnProperty(\"hasJoined\") ? groupObj.hasJoined : false;\n\t\t\tlet membersCount = parseInt(groupObj.membersCount);\n\n\t\t\tif (options && this.loggedInUser.uid === options.user.uid) {\n\t\t\t\tscope = CometChat.GROUP_MEMBER_SCOPE.PARTICIPANT;\n\t\t\t\thasJoined = true;\n\t\t\t}\n\n\t\t\tlet newgroupObj = Object.assign({}, groupObj, {membersCount: membersCount, scope: scope, hasJoined: hasJoined});\n\n\t\t\tgrouplist.unshift(newgroupObj);\n\t\t\tthis.setState({grouplist: grouplist});\n\t\t}\n\t};\n\n\tupdateMemberJoined = (group, options) => {\n\t\tlet grouplist = [...this.state.grouplist];\n\n\t\t//search for group\n\t\tlet groupKey = grouplist.findIndex(g => g.guid === group.guid);\n\n\t\tif (groupKey > -1) {\n\t\t\tlet groupObj = {...grouplist[groupKey]};\n\n\t\t\tlet scope = groupObj.scope;\n\t\t\tlet membersCount = parseInt(group.membersCount);\n\n\t\t\tif (options && this.loggedInUser.uid === options.user.uid) {\n\t\t\t\tscope = CometChat.GROUP_MEMBER_SCOPE.PARTICIPANT;\n\t\t\t}\n\n\t\t\tlet newgroupObj = Object.assign({}, groupObj, {membersCount: membersCount, scope: scope});\n\n\t\t\tgrouplist.splice(groupKey, 1, newgroupObj);\n\t\t\tthis.setState({grouplist: grouplist});\n\t\t}\n\t};\n\n\tupdateMemberChanged = (group, options) => {\n\t\tlet grouplist = [...this.state.grouplist];\n\n\t\t//search for group\n\t\tlet groupKey = grouplist.findIndex(g => g.guid === group.guid);\n\n\t\tif (groupKey > -1) {\n\t\t\tlet groupObj = {...grouplist[groupKey]};\n\t\t\tif (options && this.loggedInUser.uid === options.user.uid) {\n\t\t\t\tlet newgroupObj = Object.assign({}, groupObj, {scope: options.scope});\n\n\t\t\t\tgrouplist.splice(groupKey, 1, newgroupObj);\n\t\t\t\tthis.setState({grouplist: grouplist});\n\t\t\t}\n\t\t}\n\t};\n\n\thandleScroll = e => {\n\t\tconst bottom = Math.round(e.currentTarget.scrollHeight - e.currentTarget.scrollTop) === Math.round(e.currentTarget.clientHeight);\n\t\tif (bottom) this.getGroups();\n\t};\n\n\thandleClick = group => {\n\n\t\tif (!this.props.onItemClick) return;\n\n\t\tif (group.hasJoined === false) {\n\n\t\t\t//if join group feature is disabled\n\t\t\tif (this.state.enableJoinGroup === false) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tlet password = \"\";\n\t\t\tif (group.type === CometChat.GROUP_TYPE.PASSWORD) {\n\t\t\t\tpassword = prompt(Translator.translate(\"ENTER_YOUR_PASSWORD\", this.props.lang));\n\t\t\t}\n\n\t\t\tconst guid = group.guid;\n\t\t\tconst groupType = group.type;\n\n\t\t\tCometChat.joinGroup(guid, groupType, password)\n\t\t\t\t.then(response => {\n\t\t\t\t\tif (typeof response === \"object\" && Object.keys(response).length) {\n\t\t\t\t\t\tconst groups = [...this.state.grouplist];\n\n\t\t\t\t\t\tlet groupKey = groups.findIndex((g, k) => g.guid === guid);\n\t\t\t\t\t\tif (groupKey > -1) {\n\t\t\t\t\t\t\tconst groupObj = groups[groupKey];\n\t\t\t\t\t\t\tconst newGroupObj = Object.assign({}, groupObj, response, { scope: CometChat.GROUP_MEMBER_SCOPE.PARTICIPANT });\n\n\t\t\t\t\t\t\tgroups.splice(groupKey, 1, newGroupObj);\n\t\t\t\t\t\t\tthis.setState({ grouplist: groups });\n\n\t\t\t\t\t\t\tthis.props.onItemClick(newGroupObj, CometChat.ACTION_TYPE.TYPE_GROUP);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.toastRef.setError(\"SOMETHING_WRONG\");\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch(error => {\n\t\t\t\t\n\t\t\t\t\tif (error.hasOwnProperty(\"code\") && error.code && error.code === \"ERR_WRONG_GROUP_PASS\") {\n\t\t\t\t\t\tthis.toastRef.setError(\"WRONG_PASSWORD\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.toastRef.setError(\"SOMETHING_WRONG\");\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t});\n\n\t\t} else {\n\t\t\tthis.props.onItemClick(group, CometChat.ACTION_TYPE.TYPE_GROUP);\n\t\t}\n\t};\n\n\thandleMenuClose = () => {\n\t\tif (!this.props.actionGenerated) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"TOGGLE_SIDEBAR\"]);\n\t};\n\n\tsearchGroup = e => {\n\t\tif (this.timeout) {\n\t\t\tclearTimeout(this.timeout);\n\t\t}\n\n\t\tlet val = e.target.value;\n\t\tthis.timeout = setTimeout(() => {\n\t\t\t\n\t\t\tthis.setState({ grouplist: [], decoratorMessage: Translator.translate(\"LOADING\", this.props.lang) });\n\n\t\t\tthis.GroupListManager = new GroupListManager(val);\n\t\t\tthis.getGroups();\n\t\t}, 500);\n\t};\n\n\tgetGroups = () => {\n\t\tthis.GroupListManager.fetchNextGroups()\n\t\t\t.then(groupList => {\n\n\t\t\t\tif (groupList.length === 0) {\n\n\t\t\t\t\tif (this.state.grouplist.length === 0) {\n\t\t\t\t\t\tthis.setState({ decoratorMessage: Translator.translate(\"NO_GROUPS_FOUND\", this.props.lang) });\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.setState({ grouplist: [...this.state.grouplist, ...groupList], decoratorMessage: \"\" });\n\t\t\t\t}\n\n\t\t\t})\n\t\t\t.catch(error => this.setState({ decoratorMessage: Translator.translate(\"SOMETHING_WRONG\", this.props.lang) }));\n\t};\n\n\tcreateGroupHandler = flag => {\n\t\tthis.setState({createGroup: flag});\n\t};\n\n\tcreateGroupActionHandler = (action, group) => {\n\t\tif (action === enums.ACTIONS[\"GROUP_CREATED\"]) {\n\t\t\tthis.handleClick(group);\n\n\t\t\tconst groupList = [...this.state.grouplist];\n\t\t\tgroupList.unshift(group);\n\n\t\t\tthis.setState({grouplist: groupList, createGroup: false});\n\t\t}\n\t};\n\n\tgetContext = () => {\n\t\tif (this.props._parent.length) {\n\t\t\treturn this.context;\n\t\t} else {\n\t\t\treturn this.contextProviderRef.state;\n\t\t}\n\t};\n\n\trender() {\n\t\tlet messageContainer = null;\n\n\t\tif (this.state.decoratorMessage.length !== 0) {\n\t\t\tmessageContainer = (\n\t\t\t\t
    \n\t\t\t\t\t

    \n\t\t\t\t\t\t{this.state.decoratorMessage}\n\t\t\t\t\t

    \n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tconst groups = this.state.grouplist.map(group => {\n\t\t\tlet selectedGroup = this.getContext().type === CometChat.ACTION_TYPE.TYPE_GROUP && this.getContext().item.guid === group.guid ? group : null;\n\n\t\t\treturn ;\n\t\t});\n\n\t\tlet createGroupBtn = (\n\t\t\t
    this.createGroupHandler(true)}>\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\n\t\t//if create group feature is disabled\n\t\tif (this.state.enableCreateGroup === false) {\n\t\t\tcreateGroupBtn = null;\n\t\t}\n\n\t\tlet closeBtn =
    ;\n\t\tif (this.getContext() && Object.keys(this.getContext().item).length === 0) {\n\t\t\tcloseBtn = null;\n\t\t}\n\n\t\tlet searchGroup = null;\n\t\tif (this.state.enableSearchGroup) {\n\t\t\tsearchGroup = (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tlet createGroup = null;\n\t\tif(this.state.createGroup) {\n\t\t\tcreateGroup = this.createGroupHandler(false)} actionGenerated={this.createGroupActionHandler} />;\t\n\t\t}\n\n\t\tconst groupListTemplate = (\n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{closeBtn}\n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t{Translator.translate(\"GROUPS\", this.props.lang)}\n\t\t\t\t\t\t

    \n\t\t\t\t\t\t{createGroupBtn}\n\t\t\t\t\t
    \n\t\t\t\t\t{searchGroup}\n\t\t\t\t\t{messageContainer}\n\t\t\t\t\t
    (this.groupListRef = el)}>\n\t\t\t\t\t\t{groups}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t{createGroup}\n\t\t\t\t (this.toastRef = el)} lang={this.props.lang} />\n\t\t\t
    \n\t\t);\n\n\t\tlet groupListWrapper = groupListTemplate;\n\t\t//if used as a standalone component, add errorboundary and context provider\n\t\tif (this.props._parent === \"\") {\n\t\t\tgroupListWrapper = (this.contextProviderRef = el)}>{groupListTemplate};\n\t\t}\n\n\t\treturn groupListWrapper;\n\t}\n}\n\n// Specifies the default values for props:\nCometChatGroupList.defaultProps = {\n\tlang: Translator.getDefaultLanguage(),\n\ttheme: theme,\n\tonItemClick: () => {},\n\t_parent: \"\"\n};\n\nCometChatGroupList.propTypes = {\n\tlang: PropTypes.string,\n\ttheme: PropTypes.object,\n\tonItemClick: PropTypes.func,\n\t_parent: PropTypes.string\n}\n\nexport { CometChatGroupList };","export const listItem = (props, context) => {\n\n const selectedState = (props.selectedGroup && props.selectedGroup.guid === props.group.guid) ? {\n backgroundColor: `${context.theme.backgroundColor.primary}`\n } : {};\n\n return {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"left\",\n alignItems: \"center\",\n cursor: \"pointer\",\n width: \"100%\",\n padding: \"8px 16px\",\n ...selectedState,\n '&:hover': {\n backgroundColor: `${context.theme.backgroundColor.primary}`\n }\n }\n}\n\nexport const listItemName = () => {\n\n return {\n maxWidth: \"calc(100% - 30px)\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n margin: \"0\"\n }\n}\n\nexport const listItemIcon = () => {\n\n return {\n width: \"24px\",\n height: \"auto\",\n margin: \"0 8px\",\n }\n}\n\nexport const itemIconStyle = (img, context) => {\n\n return {\n display: \"inline-block\",\n width: \"24px\",\n height: \"24px\",\n mask: `url(${img}) center center no-repeat`,\n backgroundColor: `${context.theme.secondaryTextColor}`,\n };\n}\n\nexport const itemThumbnailStyle = () => {\n\n return {\n display: \"inline-block\",\n width: \"36px\",\n height: \"36px\",\n flexShrink: \"0\",\n }\n}\n\nexport const itemDetailStyle = () => {\n\n return {\n width: \"calc(100% - 70px)\",\n flexGrow: \"1\",\n paddingLeft: \"16px\",\n \"&[dir=rtl]\": {\n paddingRight: \"16px\",\n paddingLeft: \"0\",\n }\n }\n}\n\nexport const itemNameWrapperStyle = () => { \n\n return {\n fontSize: \"15px\",\n fontWeight: \"600\",\n display: \"flex\",\n alignItems: \"center\",\n width: \"100%\",\n margin: \"0\",\n }\n}\n\nexport const itemDescStyle = (context) => { \n\n return {\n borderBottom: `1px solid ${context.theme.borderColor.primary}`,\n padding: \"0 0 5px 0\",\n fontSize: \"12px\",\n color: `${context.theme.color.helpText}`,\n \"&:hover\": {\n borderBottom: `1px solid ${context.theme.borderColor.primary}`,\n }\n }\n}","export default __webpack_public_path__ + \"static/media/password-protected-group.d47aaeec.svg\";","export default __webpack_public_path__ + \"static/media/private-group.bc4d777a.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatAvatar } from \"../../Shared\";\nimport { CometChatContext } from \"../../../util/CometChatContext\";\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n\tlistItem,\n\tlistItemIcon,\n\titemIconStyle,\n\titemThumbnailStyle,\n\titemDetailStyle,\n\titemNameWrapperStyle,\n\titemDescStyle,\n\tlistItemName \n} from \"./style\";\n\nimport shieldIcon from \"./resources/password-protected-group.svg\";\nimport lockIcon from \"./resources/private-group.svg\";\n\nclass CometChatGroupListItem extends React.PureComponent {\n\n\tstatic contextType = CometChatContext;\n\t\n\ttoggleTooltip = (event, flag) => {\n\n\t\tconst elem = event.target;\n\n\t\tconst scrollWidth = elem.scrollWidth;\n\t\tconst clientWidth = elem.clientWidth;\n\n\t\tif (scrollWidth <= clientWidth) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (flag) {\n\t\t\telem.setAttribute(\"title\", elem.textContent);\n\t\t} else {\n\t\t\telem.removeAttribute(\"title\");\n\t\t}\n\t}\n\n\tclickHandler = () => {\n\t\tthis.props.clickHandler(this.props.group);\n\t}\n\n\trender() {\n\n\t\tlet groupTypeIcon = null;\n\t\tif (this.props.group.type === CometChat.GROUP_TYPE.PRIVATE) {\n\n\t\t\tgroupTypeIcon = ();\n\n\t\t} else if (this.props.group.type === CometChat.GROUP_TYPE.PASSWORD) {\n\n\t\t\tgroupTypeIcon = ();\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t
    this.toggleTooltip(event, true)} onMouseLeave={event => this.toggleTooltip(event, false)}>\n\t\t\t\t\t\t

    {this.props.group.name}

    \n\t\t\t\t\t\t
    {groupTypeIcon}
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    {`${this.props.group.membersCount} ${Translator.translate(\"MEMBERS\", this.context.language)}`}
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatGroupListItem.defaultProps = {\n\ttheme: theme,\n\tgroup: {},\n\tselectedGroup: {},\n\tclickHandler: () => { }\n};\n\nCometChatGroupListItem.propTypes = {\n\ttheme: PropTypes.object,\n\tselectedGroup: PropTypes.oneOfType([PropTypes.object, PropTypes.shape(CometChat.Group)]),\n\tgroup: PropTypes.oneOfType([PropTypes.object, PropTypes.shape(CometChat.Group)]),\n\tclickHandler: PropTypes.func\n}\n\nexport { CometChatGroupListItem };","export const modalWrapperStyle = (context) => {\n\n const mq = context.theme.breakPoints.map(x => `@media ${x}`);\n\n return {\n minWidth: \"350px\",\n minHeight: \"450px\",\n width: \"50%\",\n height: \"40%\",\n overflow: \"hidden\",\n backgroundColor: `${context.theme.backgroundColor.white}`,\n position: \"fixed\",\n left: \"50%\",\n top: \"50%\",\n transform: \"translate(-50%, -50%)\",\n zIndex: \"1002\",\n margin: \"0 auto\",\n boxShadow: \"rgba(20, 20, 20, 0.2) 0 16px 32px, rgba(20, 20, 20, 0.04) 0 0 0 1px\",\n borderRadius: \"12px\",\n display: \"block\",\n [mq[1]]: {\n width: \"100%\",\n height: \"100%\"\n },\n [mq[2]]: {\n width: \"100%\",\n height: \"100%\"\n },\n [mq[3]]: {\n width: \"100%\",\n height: \"100%\"\n }\n }\n}\n\nexport const modalCloseStyle = (img, context) => {\n\n return {\n position: \"absolute\",\n width: \"32px\",\n height: \"32px\",\n borderRadius: \"50%\",\n top: \"16px\",\n right: \"16px\",\n mask: `url(${img}) center center no-repeat`,\n backgroundColor: `${context.theme.primaryColor}`,\n cursor: \"pointer\",\n }\n}\n\nexport const modalBodyStyle = () => {\n\n return {\n padding: \"24px\",\n height: \"100%\",\n width: \"100%\"\n }\n}\n\nexport const modalCaptionStyle = (dir) => {\n\n const textAlignStyle = (dir === \"rtl\") ? {\n textAlign: \"right\",\n paddingRight: \"32px\",\n } : {\n textAlign: \"left\",\n };\n\n return {\n fontSize: \"20px\",\n marginBottom: \"16px\",\n fontWeight: \"bold\",\n ...textAlignStyle,\n width: \"100%\",\n }\n}\n\nexport const modalErrorStyle = context => {\n\treturn {\n\t\tfontSize: \"12px\",\n\t\tcolor: `${context.theme.color.red}`,\n\t\ttextAlign: \"center\",\n\t\tpadding: \"8px 0\",\n\t\twidth: \"100%\",\n height: \"31px\"\n\t};\n};\n\nexport const modalListStyle = () => {\n\n return {\n width: \"100%\",\n height: \"calc(100% - 70px)\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n alignItems: \"flex-start\",\n }\n}\n\nexport const listHeaderStyle = (context) => {\n\n return {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n fontWeight: \"bold\",\n padding: \"8px\",\n width: \"100%\",\n border: `1px solid ${context.theme.borderColor.primary}`,\n }\n}\n\nexport const listStyle = () => {\n\n return {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n alignItems: \"flex-start\",\n width: \"100%\",\n height: \"calc(100% - 33px)\",\n overflowY: \"auto\",\n }\n}\n\nexport const nameColumnStyle = (context, editAccess) => {\n\n const mq = context.theme.breakPoints.map(x => `@media ${x}`);\n\n const widthProp = (editAccess === null) ? {\n\n width: \"calc(100% - 180px)\",\n [mq[1]]: {\n width: \"calc(100% - 140px)\",\n },\n [mq[2]]: {\n width: \"calc(100% - 180px)\",\n }\n\n } : {\n width: \"calc(100% - 260px)\",\n [mq[1]]: {\n width: \"calc(100% - 220px)\",\n },\n [mq[2]]: {\n width: \"calc(100% - 260px)\",\n },\n [mq[3]]: {\n width: \"calc(100% - 240px)\",\n }\n };\n\n return {\n ...widthProp\n }\n}\n\nexport const scopeColumnStyle = (context) => {\n\n const mq = context.theme.breakPoints.map(x => `@media ${x}`);\n\n return {\n width: \"180px\",\n marginRight: \"8px\",\n [mq[1]]: {\n width: \"140px\"\n },\n [mq[2]]: {\n width: \"180px\",\n },\n [mq[3]]: {\n width: \"120px\",\n }\n }\n}\n\nexport const actionColumnStyle = (context) => {\n\n const mq = context.theme.breakPoints.map(x => `@media ${x}`);\n\n return {\n width: \"70px\",\n [mq[1]]: {\n width: \"40px\"\n },\n [mq[2]]: {\n width: \"40px\"\n }\n }\n}","export default __webpack_public_path__ + \"static/media/close.0b0b6f95.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatViewGroupMemberListItem } from \"../../Groups\";\nimport { CometChatBackdrop } from \"../../Shared\";\n\nimport * as enums from \"../../../util/enums.js\";\nimport { CometChatContext } from \"../../../util/CometChatContext\";\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n modalWrapperStyle,\n modalCloseStyle,\n modalBodyStyle,\n modalCaptionStyle,\n modalListStyle,\n listHeaderStyle,\n listStyle,\n nameColumnStyle,\n scopeColumnStyle,\n actionColumnStyle,\n modalErrorStyle\n} from \"./style\";\n\nimport clearIcon from \"./resources/close.svg\";\n\nclass CometChatViewGroupMemberList extends React.Component {\n\n static contextType = CometChatContext;\n\n constructor(props, context) {\n\n super(props, context);\n this._isMounted = false;\n const chatWindow = context.UIKitSettings.chatWindow;\n this.mq = chatWindow.matchMedia(this.context.theme.breakPoints[1]);\n \n let userColumnTitle = Translator.translate(\"NAME\", context.language);\n if (this.mq.matches) {\n userColumnTitle = Translator.translate(\"AVATAR\", context.language)\n }\n\n this.state = {\n userColumnTitle: userColumnTitle,\n errorMessage: \"\"\n }\n }\n\n componentWillUnmount() {\n this._isMounted = false;\n }\n\n handleScroll = (e) => {\n\n const bottom = Math.round(e.currentTarget.scrollHeight - e.currentTarget.scrollTop) === Math.round(e.currentTarget.clientHeight);\n if (bottom) {\n this.props.actionGenerated(enums.ACTIONS[\"FETCH_GROUP_MEMBERS\"]);\n }\n }\n\n updateMembers = (action, member, scope) => {\n\n switch(action) {\n case enums.ACTIONS[\"BAN_GROUP_MEMBER\"]:\n this.banMember(member);\n break;\n case enums.ACTIONS[\"KICK_GROUP_MEMBER\"]:\n this.kickMember(member);\n break;\n case enums.ACTIONS[\"CHANGE_SCOPE_GROUP_MEMBER\"]:\n this.changeScope(member, scope);\n break;\n default:\n break;\n }\n }\n\n banMember = (memberToBan) => {\n\n const guid = this.context.item.guid;\n CometChat.banGroupMember(guid, memberToBan.uid).then(response => {\n \n if(response) {\n\n this.context.setToastMessage(\"success\", \"BAN_GROUPMEMBER_SUCCESS\");\n this.props.actionGenerated(enums.ACTIONS[\"BAN_GROUPMEMBER_SUCCESS\"], memberToBan);\n\n } else {\n this.setState({ errorMessage: Translator.translate(\"SOMETHING_WRONG\", this.context.language) });\n }\n\n }).catch(error => this.setState({ errorMessage: Translator.translate(\"SOMETHING_WRONG\", this.context.language) }));\n }\n\n kickMember = (memberToKick) => {\n\n const guid = this.context.item.guid;\n CometChat.kickGroupMember(guid, memberToKick.uid).then(response => {\n \n if(response) {\n this.props.actionGenerated(enums.ACTIONS[\"KICK_GROUPMEMBER_SUCCESS\"], memberToKick);\n } else {\n this.setState({ errorMessage: Translator.translate(\"SOMETHING_WRONG\", this.context.language) });\n }\n \n }).catch(error => this.setState({ errorMessage: Translator.translate(\"SOMETHING_WRONG\", this.context.language) }));\n }\n\n changeScope = (member, scope) => {\n\n const guid = this.context.item.guid;\n CometChat.updateGroupMemberScope(guid, member.uid, scope).then(response => {\n \n if(response) {\n\n this.context.setToastMessage(\"success\", \"SCOPECHANGE_GROUPMEMBER_SUCCESS\");\n const updatedMember = Object.assign({}, member, {scope: scope});\n this.props.actionGenerated(enums.ACTIONS[\"SCOPECHANGE_GROUPMEMBER_SUCCESS\"], updatedMember);\n } else {\n this.setState({ errorMessage: Translator.translate(\"SOMETHING_WRONG\", this.context.language) });\n }\n \n }).catch(error => this.setState({ errorMessage: Translator.translate(\"SOMETHING_WRONG\", this.context.language) }));\n }\n\n setUserColumnTitle = (editAccess) => {\n\n if (this._isMounted) {\n \n if (editAccess !== null && this.mq.matches) {\n this.setState({ userColumnTitle: Translator.translate(\"AVATAR\", this.context.language) });\n } else {\n this.setState({ userColumnTitle: Translator.translate(\"NAME\", this.context.language) });\n }\n }\n }\n\n render() {\n\n const membersList = [...this.context.groupMembers];\n \n const groupMembers = membersList.map((member, key) => {\n \n return (\n \n );\n });\n\n let editAccess = null;\n if(this.context.item.scope !== CometChat.GROUP_MEMBER_SCOPE.PARTICIPANT) {\n\n editAccess = (\n \n
    {Translator.translate(\"BAN\", this.context.language)}
    \n
    {Translator.translate(\"KICK\", this.context.language)}
    \n
    \n );\n\n if (this.props.enableKickGroupMembers === false && this.props.enableBanGroupMembers === false) {\n editAccess = null;\n }\n }\n\n this.mq.addListener(editAccess => this.setUserColumnTitle(editAccess));\n\n return (\n \n \n
    \n \n
    \n
    {Translator.translate(\"GROUP_MEMBERS\", this.context.language)}
    \n
    {this.state.errorMessage}
    \n
    \n
    \n
    {this.state.userColumnTitle}
    \n
    {Translator.translate(\"SCOPE\", this.context.language)}
    \n {editAccess}\n
    \n
    \n {groupMembers}\n
    \n
    \n
    \n
    \n
    \n );\n }\n}\n\n// Specifies the default values for props:\nCometChatViewGroupMemberList.defaultProps = {\n\ttheme: theme,\n\tuserColumnTitle: \"\",\n\tenableChangeScope: false,\n\tenableKickGroupMembers: false,\n\tenableBanGroupMembers: false\n};\n\nCometChatViewGroupMemberList.propTypes = {\n\ttheme: PropTypes.object,\n\tuserColumnTitle: PropTypes.string,\n\tenableChangeScope: PropTypes.bool,\n\tenableKickGroupMembers: PropTypes.bool,\n\tenableBanGroupMembers: PropTypes.bool\n};\n\nexport { CometChatViewGroupMemberList };","export const modalRowStyle = (context) => {\n\n return {\n borderLeft: `1px solid ${context.theme.borderColor.primary}`,\n borderRight: `1px solid ${context.theme.borderColor.primary}`,\n borderBottom: `1px solid ${context.theme.borderColor.primary}`,\n display: \"flex\",\n width: \"100%\",\n fontSize: \"14px\",\n flexDirection: \"row\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n padding: \"8px\",\n }\n}\n\nexport const nameColumnStyle = (context, participantView) => {\n\n const mq = context.theme.breakPoints.map(x => `@media ${x}`);\n\n const widthProp = (participantView) ? {\n\n width: \"calc(100% - 180px)\",\n [mq[1]]: {\n width: \"calc(100% - 140px)\",\n },\n [mq[2]]: {\n width: \"calc(100% - 180px)\",\n }\n\n } : {\n width: \"calc(100% - 260px)\",\n [mq[1]]: {\n width: \"calc(100% - 220px)\",\n },\n [mq[2]]: {\n width: \"calc(100% - 260px)\",\n },\n [mq[3]]: {\n width: \"calc(100% - 240px)\",\n }\n };\n\n return {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n ...widthProp\n }\n}\n\nexport const avatarStyle = (context, participantView) => {\n\n const mq = context.theme.breakPoints.map(x => `@media ${x}`);\n\n const marginProp = (participantView) ? {\n marginRight: \"8px\",\n } : {\n marginRight: \"8px\",\n [mq[1]]: {\n marginRight: \"0\",\n }\n };\n\n return {\n width: \"36px\",\n height: \"36px\",\n flexShrink: \"0\",\n ...marginProp\n }\n}\n\nexport const nameStyle = (context, participantView) => {\n\n const mq = context.theme.breakPoints.map(x => `@media ${x}`);\n\n const widthProp = (participantView) ? {\n width: \"100%\"\n } : {\n width: \"calc(100% - 50px)\"\n };\n\n const displayProp = (participantView) ? {\n display: \"inline\",\n [mq[1]]: {\n display: \"inline\"\n }\n\n } : {\n display: \"inline\",\n [mq[1]]: {\n display: \"none\"\n }\n }\n \n return {\n margin: \"8px 0\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n ...widthProp,\n ...displayProp\n }\n}\n\nexport const scopeColumnStyle = (context) => {\n\n const mq = context.theme.breakPoints.map(x => `@media ${x}`);\n\n return {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n width: \"180px\",\n \"img\": {\n width: \"24px\",\n height: \"24px\",\n cursor: \"pointer\",\n },\n [mq[1]]: {\n width: \"140px\"\n },\n [mq[2]]: {\n width: \"180px\",\n },\n [mq[3]]: {\n width: \"120px\",\n }\n }\n}\n\nexport const scopeWrapperStyle = () => {\n\n return {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: \"100%\",\n transition: \"opacity .1s linear\",\n \"img\": {\n margin: \"0px 4px\",\n }\n }\n}\n\nexport const scopeSelectionStyle = () => {\n\n return {\n width: \"65%\",\n border: \"0\",\n boxShadow: \"rgba(20, 20, 20, 0.04) 0 0 0 1px inset\",\n borderRadius: \"8px\",\n backgroundColor: `rgba(20, 20, 20, 0.04)`,\n padding: \"8px\",\n color: `rgba(20, 20, 20, 0.6)`,\n float: \"left\",\n }\n}\n\nexport const scopeIconStyle = (img, context) => {\n\n return {\n width: \"24px\",\n height: \"24px\",\n display: \"inline-block\",\n cursor: \"pointer\",\n mask: `url(${img}) center center no-repeat`,\n backgroundColor: `${context.theme.secondaryTextColor}`,\n };\n}\n\nexport const roleStyle = () => {\n\n return {\n fontSize: \"12px\",\n maxWidth: \"calc(100% - 20px)\"\n }\n}\n\nexport const actionColumnStyle = (context) => {\n\n const mq = context.theme.breakPoints.map(x => `@media ${x}`);\n\n return {\n width: \"70px\",\n [mq[1]]: {\n width: \"40px\"\n },\n [mq[2]]: {\n width: \"40px\"\n }\n }\n}\n\nexport const banIconStyle = (img, context) => {\n\n return {\n width: \"24px\",\n height: \"24px\",\n display: \"inline-block\",\n cursor: \"pointer\",\n mask: `url(${img}) center center no-repeat`,\n backgroundColor: `${context.theme.secondaryTextColor}`,\n };\n}\n\nexport const kickIconStyle = (img, context) => {\n\treturn {\n\t\twidth: \"24px\",\n\t\theight: \"24px\",\n\t\tdisplay: \"inline-block\",\n\t\tcursor: \"pointer\",\n\t\tbackground: `url(${img}) center center no-repeat`,\n\t};\n};","export default __webpack_public_path__ + \"static/media/edit.35ebcb35.svg\";","export default __webpack_public_path__ + \"static/media/done.bf5ee0cc.svg\";","export default __webpack_public_path__ + \"static/media/close.0b0b6f95.svg\";","export default __webpack_public_path__ + \"static/media/ban-member.f8856b3d.svg\";","export default __webpack_public_path__ + \"static/media/delete.9436ff08.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatAvatar, CometChatUserPresence } from \"../../Shared\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n modalRowStyle,\n nameColumnStyle,\n avatarStyle,\n nameStyle,\n roleStyle,\n scopeColumnStyle,\n scopeIconStyle,\n actionColumnStyle,\n banIconStyle,\n kickIconStyle,\n scopeWrapperStyle,\n scopeSelectionStyle\n} from \"./style\";\n\nimport scopeIcon from \"./resources/edit.svg\";\nimport doneIcon from \"./resources/done.svg\";\nimport clearIcon from \"./resources/close.svg\";\nimport banIcon from \"./resources/ban-member.svg\";\nimport kickIcon from \"./resources/delete.svg\";\n\nclass CometChatViewGroupMemberListItem extends React.Component {\n\n static contextType = CometChatContext;\n\n constructor(props, context) {\n\n super(props, context);\n\n this.changeScopeDropDown = (\n \n )\n\n this.state = {\n showChangeScope: false,\n scope: null\n }\n\n this.roles = context.roles;\n }\n\n toggleChangeScope = (flag) => {\n this.setState({ showChangeScope: flag });\n }\n\n scopeChangeHandler = (event) => {\n this.setState({scope: event.target.value});\n }\n\n updateMemberScope = () => {\n this.props.actionGenerated(enums.ACTIONS[\"CHANGE_SCOPE_GROUP_MEMBER\"], this.props.member, this.state.scope);\n this.toggleChangeScope();\n }\n\n toggleTooltip = (event, flag) => {\n\n const elem = event.currentTarget;\n \n if (elem.classList.contains(\"name\")) {\n\n const scrollWidth = elem.scrollWidth;\n const clientWidth = elem.clientWidth;\n \n if (scrollWidth <= clientWidth) {\n return false;\n }\n }\n\n if(flag) {\n elem.setAttribute(\"title\", this.props.member.name);\n } else {\n elem.removeAttribute(\"title\");\n }\n }\n\n render() {\n\n let editClassName = \"\";\n \n let name = this.props.member.name;\n let scope = ({this.roles[this.props.member.scope]});\n let changescope = null;\n let ban = ( { this.props.actionGenerated(enums.ACTIONS[\"BAN_GROUP_MEMBER\"], this.props.member)}}>);\n let kick = ( { this.props.actionGenerated(enums.ACTIONS[\"KICK_GROUP_MEMBER\"], this.props.member)}}>);\n \n\n if(this.state.showChangeScope) {\n\n let options = (\n \n \n \n \n \n );\n\n if (this.context.item.scope === CometChat.GROUP_MEMBER_SCOPE.MODERATOR\n && this.props.member.scope === CometChat.GROUP_MEMBER_SCOPE.PARTICIPANT) {\n\n options = (\n \n \n \n \n );\n }\n\n changescope = (\n
    \n \n \n this.toggleChangeScope(false)}>\n
    \n );\n\n } else {\n\n if (this.context.item.scope === CometChat.GROUP_MEMBER_SCOPE.PARTICIPANT) {\n changescope = scope;\n } else {\n changescope = (\n \n {scope}\n this.toggleChangeScope(true)}>\n \n );\n }\n }\n\n //disable change scope, kick, ban of group owner\n if (this.context.item.owner === this.props.member.uid) {\n scope = ({Translator.translate(\"OWNER\", this.context.language)});\n changescope = scope;\n ban = null;\n kick = null;\n }\n\n //disable change scope, kick, ban of self\n if (this.props.loggedinuser.uid === this.props.member.uid) {\n name = Translator.translate(\"YOU\", this.context.language);\n changescope = scope;\n ban = null;\n kick = null;\n }\n\n //if the loggedin user is moderator, don't allow to change scope, ban, kick group moderators or administrators\n if (this.context.item.scope === CometChat.GROUP_MEMBER_SCOPE.MODERATOR \n && (this.props.member.scope === CometChat.GROUP_MEMBER_SCOPE.ADMIN || this.props.member.scope === CometChat.GROUP_MEMBER_SCOPE.MODERATOR)) {\n changescope = scope;\n ban = null;\n kick = null;\n }\n\n //if the loggedin user is administrator but not group owner, don't allow to change scope, ban, kick group administrators\n if (this.context.item.scope === CometChat.GROUP_MEMBER_SCOPE.ADMIN\n && this.context.item.owner !== this.props.loggedinuser.uid \n && this.props.member.scope === CometChat.GROUP_MEMBER_SCOPE.ADMIN) {\n changescope = scope;\n ban = null;\n kick = null;\n }\n \n let editAccess = null;\n //if the loggedin user is participant, don't show the option to change scope, ban, or kick group members\n if (this.context.item.scope === CometChat.GROUP_MEMBER_SCOPE.PARTICIPANT) {\n editAccess = null;\n editClassName = \"true\";\n } else {\n\n editAccess = (\n \n
    {ban}
    \n
    {kick}
    \n
    \n );\n\n /**\n * if kick and ban feature is disabled\n */\n if (this.props.enableBanGroupMembers === false && this.props.enableKickGroupMembers === false) {\n editAccess = null;\n } else if (this.props.enableBanGroupMembers === false) { //if ban feature is disabled\n editAccess = (\n
    {kick}
    \n );\n } else if (this.props.enableKickGroupMembers === false) { //if kick feature is disabled\n editAccess = (\n
    {ban}
    \n );\n }\n\n /**\n * if promote_demote_members feature is disabled\n */\n if (this.props.enableChangeScope === false) {\n changescope = scope;\n }\n }\n\n let userPresence = (\n \n );\n \n return (\n
    \n
    \n
    this.toggleTooltip(event, true)}\n onMouseLeave={event => this.toggleTooltip(event, false)}>\n \n {userPresence}\n
    \n
    this.toggleTooltip(event, true)}\n onMouseLeave={event => this.toggleTooltip(event, false)}>{name}
    \n
    \n
    {changescope}
    \n {editAccess}\n
    \n );\n }\n}\n\n// Specifies the default values for props:\nCometChatViewGroupMemberListItem.defaultProps = {\n\tloggedinuser: {},\n\tenableChangeScope: false,\n};\n\nCometChatViewGroupMemberListItem.propTypes = {\n\tloggedinuser: PropTypes.shape(CometChat.User),\n\tenableChangeScope: PropTypes.bool\n};\n\nexport { CometChatViewGroupMemberListItem };","import { CometChat } from \"@cometchat-pro/chat\";\n\nimport {UIKitSettings} from \"../../../util/UIKitSettings\";\n\nexport class AddMembersManager {\n\tmembersRequest = null;\n\tuserListenerId = new Date().getTime();\n\n\tconstructor(context, searchKey) {\n\n\t\tthis.context = context;\n\t\tthis.searchKey = searchKey;\n\t}\n\n\tinitializeMembersRequest = () => {\n\n\t\tconst userListMode = this.context.UIKitSettings.userListMode;\n\t\tconst userListModeOptions = UIKitSettings.userListFilterOptions;\n\n\t\treturn new Promise((resolve, reject) => {\n\n\t\t\tif (userListMode === userListModeOptions[\"ALL\"]) {\n\n\t\t\t\tif (this.searchKey) {\n\t\t\t\t\tthis.membersRequest = new CometChat.UsersRequestBuilder().setLimit(30).setSearchKeyword(this.searchKey).build();\n\t\t\t\t} else {\n\t\t\t\t\tthis.membersRequest = new CometChat.UsersRequestBuilder().setLimit(30).build();\n\t\t\t\t}\n\n\t\t\t\treturn resolve(this.membersRequest);\n\t\t\t} else if (userListMode === userListModeOptions[\"FRIENDS\"]) {\n\n\t\t\t\tif (this.searchKey) {\n\t\t\t\t\tthis.membersRequest = new CometChat.UsersRequestBuilder().setLimit(30).friendsOnly(true).setSearchKeyword(this.searchKey).build();\n\t\t\t\t} else {\n\t\t\t\t\tthis.membersRequest = new CometChat.UsersRequestBuilder().setLimit(30).friendsOnly(true).build();\n\t\t\t\t}\n\n\t\t\t\treturn resolve(this.membersRequest);\n\t\t\t} else {\n\t\t\t\treturn reject({message: \"Invalid filter for userlist\"});\n\t\t\t}\n\t\t});\n\t};\n\n\tfetchNextUsers() {\n\t\treturn this.membersRequest.fetchNext();\n\t}\n\n\tattachListeners(callback) {\n\t\tCometChat.addUserListener(\n\t\t\tthis.userListenerId,\n\t\t\tnew CometChat.UserListener({\n\t\t\t\tonUserOnline: onlineUser => {\n\t\t\t\t\t/* when someuser/friend comes online, user will be received here */\n\t\t\t\t\tcallback(onlineUser);\n\t\t\t\t},\n\t\t\t\tonUserOffline: offlineUser => {\n\t\t\t\t\t/* when someuser/friend went offline, user will be received here */\n\t\t\t\t\tcallback(offlineUser);\n\t\t\t\t},\n\t\t\t}),\n\t\t);\n\t}\n\n\tremoveListeners() {\n\t\tCometChat.removeUserListener(this.userListenerId);\n\t}\n}","export const modalWrapperStyle = (context) => {\n\n const mq = context.theme.breakPoints.map(x => `@media ${x}`);\n\n return {\n minWidth: \"350px\",\n minHeight: \"450px\",\n width: \"40%\",\n height: \"40%\",\n overflow: \"hidden\",\n backgroundColor: `${context.theme.backgroundColor.white}`,\n position: \"fixed\",\n left: \"50%\",\n top: \"50%\",\n transform: \"translate(-50%, -50%)\",\n zIndex: \"1002\",\n margin: \"0 auto\",\n boxShadow: \"rgba(20, 20, 20, 0.2) 0 16px 32px, rgba(20, 20, 20, 0.04) 0 0 0 1px\",\n borderRadius: \"12px\",\n display: \"block\",\n [mq[0]]: {\n width: \"100%\",\n height: \"100%\"\n },\n [mq[1]]: {\n width: \"100%\",\n height: \"100%\"\n },\n [mq[2]]: {\n width: \"100%\",\n height: \"100%\"\n }\n }\n}\n\nexport const modalCloseStyle = (img, context) => {\n\n return {\n position: \"absolute\",\n width: \"32px\",\n height: \"32px\",\n borderRadius: \"50%\",\n top: \"16px\",\n right: \"16px\",\n mask: `url(${img}) center center no-repeat`,\n backgroundColor: `${context.theme.primaryColor}`,\n cursor: \"pointer\",\n }\n}\n\nexport const modalBodyStyle = () => {\n\n return {\n padding: \"24px\",\n height: \"100%\",\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"center\",\n alignItems: \"flex-start\",\n }\n}\n\nexport const modalCaptionStyle = (dir) => {\n\n const textAlignStyle = (dir === \"rtl\") ? {\n textAlign: \"right\",\n paddingRight: \"32px\",\n } : { \n textAlign: \"left\", \n };\n\n return {\n fontSize: \"20px\",\n marginBottom: \"16px\",\n fontWeight: \"bold\",\n ...textAlignStyle,\n width: \"100%\",\n }\n}\n\nexport const modalErrorStyle = (context) => {\n\n return {\n fontSize: \"12px\",\n color: `${context.theme.color.red}`,\n textAlign: \"center\",\n margin: \"8px 0\",\n width: \"100%\",\n };\n}\n\nexport const modalSearchStyle = () => {\n\treturn {\n\t\tfontWeight: \"normal\",\n\t\tmarginBottom: \"16px\",\n\t\twidth: \"100%\",\n height: \"35px\",\n\t\tborderRadius: \"8px\",\n\t\tboxShadow: \"rgba(20, 20, 20, 0.04) 0 0 0 1px inset\",\n\t\tbackgroundColor: \"rgba(20, 20, 20, 0.04)\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n\t};\n};\n\nexport const searchButtonStyle = (img, context) => {\n\n return {\n width: \"30px\",\n height: \"100%\",\n padding: \"8px\",\n cursor: \"default\",\n mask: `url(${img}) 10px center no-repeat`,\n backgroundColor: `${context.theme.secondaryTextColor}!important`,\n }\n}\n\nexport const searchInputStyle = () => {\n\n return {\n width: \"calc(100% - 30px)\",\n height: \"100%\",\n padding: \"8px\",\n fontSize: \"15px\",\n outline: \"none\",\n border: \"none\",\n backgroundColor: \"transparent\",\n };\n}\n\nexport const modalListStyle = (context) => {\n\n const mq = [...context.theme.breakPoints];\n\n return {\n height: \"calc(100% - 125px)\",\n overflowY: \"auto\",\n display: \"flex\",\n width: \"100%\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n alignItems: \"flex-start\",\n [`@media ${mq[1]}, ${mq[2]}`]: {\n height: \"100%\"\n }\n }\n}\n\nexport const modalFootStyle = (props, state, img, context) => {\n\n const loadingState = (state.addingMembers) ? {\n disabled: \"true\",\n pointerEvents: \"none\",\n background: `url(${img}) ${context.theme.primaryColor} no-repeat right 10px center`,\n } : {};\n\n const textMargin = state.addingMembers ? { marginRight: \"24px\" } : {};\n \n return {\n margin: \"24px auto 0 auto\",\n \"button\": {\n cursor: \"pointer\",\n padding: \"8px 16px\",\n backgroundColor: `${context.theme.primaryColor}`,\n borderRadius: \"5px\",\n color: \"white\",\n fontSize: \"14px\",\n outline: \"0\",\n border: \"0\",\n ...loadingState,\n \"span\": {\n ...textMargin\n }\n },\n }\n}\n\nexport const contactMsgStyle = () => {\n\n return {\n overflow: \"hidden\",\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: \"55%\",\n }\n}\n\nexport const contactMsgTxtStyle = context => {\n\treturn {\n\t\tmargin: \"0\",\n\t\theight: \"30px\",\n\t\tcolor: `${context.theme.color.secondary}`,\n\t\tfontSize: \"20px!important\",\n\t\tfontWeight: \"600\",\n\t};\n};","export default __webpack_public_path__ + \"static/media/adding.446449d0.svg\";","export default __webpack_public_path__ + \"static/media/search.61b1c747.svg\";","export default __webpack_public_path__ + \"static/media/close.0b0b6f95.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { AddMembersManager } from \"./controller\";\n\nimport { CometChatAddGroupMemberListItem } from \"../\";\nimport { CometChatBackdrop } from \"../../Shared\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport Translator from \"../../../resources/localization/translator\";\nimport { theme } from \"../../../resources/theme\";\n\nimport {\n modalWrapperStyle,\n modalCloseStyle,\n modalBodyStyle,\n modalCaptionStyle,\n modalSearchStyle,\n searchButtonStyle,\n searchInputStyle,\n modalListStyle,\n modalFootStyle,\n contactMsgStyle,\n contactMsgTxtStyle,\n modalErrorStyle\n} from \"./style\";\n\nimport addingIcon from \"./resources/adding.svg\";\nimport searchIcon from \"./resources/search.svg\";\nimport clearIcon from \"./resources/close.svg\";\n\nclass CometChatAddGroupMemberList extends React.Component {\n\n static contextType = CometChatContext;\n\n constructor(props, context) {\n super(props, context);\n\n this.state = {\n userlist: [],\n membersToAdd: [],\n filteredlist: [],\n addingMembers: false,\n decoratorMessage: Translator.translate(\"LOADING\", context.language),\n errorMessage: \"\"\n }\n }\n\n componentDidMount() {\n\n this.AddMembersManager = new AddMembersManager(this.context);\n this.AddMembersManager.initializeMembersRequest().then(() => {\n\n this.getUsers();\n this.AddMembersManager.attachListeners(this.userUpdated);\n });\n }\n\n componentWillUnmount() {\n\n this.AddMembersManager.removeListeners();\n this.AddMembersManager = null;\n }\n\n userUpdated = (user) => {\n \n let userlist = [...this.state.userlist];\n \n //search for user\n let userKey = userlist.findIndex((u, k) => u.uid === user.uid);\n \n //if found in the list, update user object\n if(userKey > -1) {\n\n let userObj = userlist[userKey];\n let newUserObj = Object.assign({}, userObj, user);\n userlist.splice(userKey, 1, newUserObj);\n \n this.setState({ userlist: userlist });\n }\n }\n\n handleScroll = (e) => {\n const bottom =\n Math.round(e.currentTarget.scrollHeight - e.currentTarget.scrollTop) === Math.round(e.currentTarget.clientHeight);\n if (bottom) this.getUsers();\n }\n \n searchUsers = (e) => {\n \n if (this.timeout) {\n clearTimeout(this.timeout);\n }\n\n let val = e.target.value;\n \n this.AddMembersManager = new AddMembersManager(this.context, val);\n this.AddMembersManager.initializeMembersRequest().then(() => {\n\n this.timeout = setTimeout(() => {\n this.setState({ userlist: [], membersToAdd: [], membersToRemove: [], filteredlist: [], decoratorMessage: Translator.translate(\"LOADING\", this.context.language) }, () => this.getUsers());\n }, 500);\n\t\t\t\t\t\t\t\n });\n }\n \n getUsers = () => {\n \n this.AddMembersManager.fetchNextUsers()\n .then(userList => {\n const filteredUserList = userList.filter(user => {\n const found = this.context.groupMembers.find(member => user.uid === member.uid);\n const foundbanned = this.context.bannedGroupMembers.find(member => user.uid === member.uid);\n if (found || foundbanned) {\n return false;\n }\n return true;\n });\n\n if (filteredUserList.length === 0) {\n this.setState({ decoratorMessage: Translator.translate(\"NO_USERS_FOUND\", this.context.language) });\n }\n\n this.setState({ userlist: [...this.state.userlist, ...userList], filteredlist: [...this.state.filteredlist, ...filteredUserList] });\n })\n .catch(error => this.setState({ decoratorMessage: Translator.translate(\"SOMETHING_WRONG\", this.context.language) }));\n }\n\n membersUpdated = (user, userState) => {\n\n if(userState) {\n\n const members = [...this.state.membersToAdd];\n members.push(user);\n this.setState({membersToAdd: [...members]});\n\n } else {\n\n const membersToAdd = [...this.state.membersToAdd];\n const IndexFound = membersToAdd.findIndex(member => member.uid === user.uid);\n if(IndexFound > -1) {\n membersToAdd.splice(IndexFound, 1);\n this.setState({membersToAdd: [...membersToAdd]})\n }\n }\n }\n\n updateMembers = () => {\n \n const guid = this.context.item.guid;\n const membersList = [];\n\n this.state.membersToAdd.forEach(newmember => {\n //if a selected member is already part of the member list, don't add\n const IndexFound = this.context.groupMembers.findIndex(member => member.uid === newmember.uid);\n if(IndexFound === -1) {\n \n const newMember = new CometChat.GroupMember(newmember.uid, CometChat.GROUP_MEMBER_SCOPE.PARTICIPANT);\n membersList.push(newMember);\n\n newmember[\"type\"] = \"add\";\n }\n });\n\n if(membersList.length) {\n\n this.setState({ addingMembers: true });\n\n const membersToAdd = [];\n CometChat.addMembersToGroup(guid, membersList, []).then(response => {\n\n if (Object.keys(response).length) {\n \n for (const member in response) {\n\n if(response[member] === \"success\") {\n\n const found = this.state.userlist.find(user => user.uid === member);\n found[\"scope\"] = CometChat.GROUP_MEMBER_SCOPE.PARTICIPANT;\n membersToAdd.push(found);\n }\n }\n\n this.props.actionGenerated(enums.ACTIONS[\"ADD_GROUP_MEMBER_SUCCESS\"], membersToAdd);\n }\n this.setState({ addingMembers: false });\n this.props.close();\n\n }).catch(error => {\n \n this.setState({ addingMembers: false, errorMessage: Translator.translate(\"SOMETHING_WRONG\", this.context.language) });\n \n });\n }\n }\n\n render() {\n\n const createText = this.state.addingMembers ? Translator.translate(\"ADDING\", this.context.language) : Translator.translate(\"ADD\", this.context.language);\n let addGroupMemberBtn = (\n
    \n \n
    \n );\n\n let messageContainer = null;\n if (this.state.filteredlist.length === 0) {\n\n messageContainer = (\n
    \n

    {this.state.decoratorMessage}

    \n
    \n );\n addGroupMemberBtn = null;\n }\n\n let currentLetter = \"\";\n const filteredUserList = [...this.state.filteredlist];\n const users = filteredUserList.map(user => {\n\n const chr = user.name[0].toUpperCase();\n let firstLetter = null;\n if(chr !== currentLetter) {\n currentLetter = chr;\n firstLetter = currentLetter;\n }\n\n return (\n \n \n \n )\n });\n\n return (\n \n \n
    \n \n
    \n
    {Translator.translate(\"USERS\", this.context.language)}
    \n
    {this.state.errorMessage}
    \n
    \n
    \n {messageContainer}\n
    {users}
    \n {addGroupMemberBtn}\n
    \n
    \n
    \n );\n }\n}\n\n// Specifies the default values for props:\nCometChatAddGroupMemberList.defaultProps = {\n theme: theme\n};\n\nCometChatAddGroupMemberList.propTypes = {\n theme: PropTypes.object\n}\n\nexport { CometChatAddGroupMemberList };\n","export const modalRowStyle = (theme) => {\n\n return {\n border: `1px solid ${theme.borderColor.primary}`,\n display: \"flex\",\n width: \"100%\",\n fontSize: \"14px\",\n flexDirection: \"row\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n \"&:not(:last-child)\": {\n borderBottom: \"none\"\n }\n }\n}\n\nexport const modalColumnStyle = () => {\n\n return {\n padding: \"8px\",\n width: \"calc(100% - 50px)\",\n }\n}\n\nexport const avatarStyle = () => {\n\n return {\n display: \"inline-block\",\n float: \"left\",\n width: \"36px\",\n height: \"36px\",\n marginRight: \"8px\",\n }\n}\n\nexport const nameStyle = () => {\n\n return {\n margin: \"10px\",\n width: \"calc(100% - 50px)\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n }\n}\n\nexport const selectionColumnStyle = () => {\n\n return {\n padding: \"8px\",\n width: \"50px\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n }\n}\n\nexport const selectionBoxStyle = (inactiveStateImg, activeStateImg, theme) => {\n\n return {\n display: \"none\",\n \" + label\": {\n display: \"block\",\n cursor: \"pointer\",\n userSelect: \"none\",\n padding: \"8px\",\n width: \"100%\",\n mask: `url(${inactiveStateImg}) center center no-repeat`,\n backgroundColor: `${theme.secondaryTextColor}`,\n },\n \"&:checked + label\": {\n width: \"100%\",\n mask: `url(${activeStateImg}) center center no-repeat`,\n backgroundColor: `${theme.secondaryTextColor}`,\n }\n }\n}","export default __webpack_public_path__ + \"static/media/group-member-unselect.ecb59147.svg\";","export default __webpack_public_path__ + \"static/media/group-member-select.301a1077.svg\";","import { useState, useContext } from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\n\nimport { CometChatAvatar, CometChatUserPresence } from \"../../Shared\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\n\nimport { theme } from \"../../../resources/theme\";\n\nimport {\n\tmodalRowStyle,\n\tmodalColumnStyle,\n\tavatarStyle,\n\tnameStyle,\n\tselectionColumnStyle,\n\tselectionBoxStyle\n} from \"./style\";\n\nimport inactiveIcon from \"./resources/group-member-unselect.svg\";\nimport activeIcon from \"./resources/group-member-select.svg\";\n\nconst CometChatAddGroupMemberListItem = (props) => {\n\n\tconst { groupMembers, theme } = useContext(CometChatContext);\n\n\tconst [checked, setChecked] = useState(() => {\n\t\tconst found = groupMembers.find(member => member.uid === props.user.uid);\n\t\tconst value = (found) ? true : false;\n\n\t\treturn value;\n\t});\n\n\tconst handleCheck = (event) => {\n\n\t\tconst value = (checked === true) ? false : true;\n\t\tsetChecked(value);\n\t\tprops.changed(props.user, value);\n\t}\n\n\tconst toggleTooltip = (event, flag) => {\n\n\t\tconst elem = event.currentTarget;\n\t\tconst nameContainer = elem.lastChild;\n\n\t\tconst scrollWidth = nameContainer.scrollWidth;\n\t\tconst clientWidth = nameContainer.clientWidth;\n\t\t\n\t\tif(scrollWidth <= clientWidth) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif(flag) {\n\t\t\tnameContainer.setAttribute(\"title\", nameContainer.textContent);\n\t\t} else {\n\t\t\tnameContainer.removeAttribute(\"title\");\n\t\t}\n\t}\n\t\n\treturn (\n\t\t
    \n\t\t\t
    toggleTooltip(event, true)} onMouseLeave={event => toggleTooltip(event, false)}>\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{props.user.name}\n\t\t\t\t
    \n\t\t\t
    \n\t\t\t
    \n\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t
    \n\t);\n}\n\n// Specifies the default values for props:\nCometChatAddGroupMemberListItem.defaultProps = {\n\ttheme: theme\n};\n\nCometChatAddGroupMemberListItem.propTypes = {\n\ttheme: PropTypes.object\n}\n\nexport { CometChatAddGroupMemberListItem };","export const modalWrapperStyle = (context) => {\n\n const mq = context.theme.breakPoints.map(x => `${x}`);\n\n return {\n minWidth: \"350px\",\n minHeight: \"450px\",\n width: \"40%\",\n height: \"40%\",\n overflow: \"hidden\",\n backgroundColor: `${context.theme.backgroundColor.white}`,\n position: \"fixed\",\n left: \"50%\",\n top: \"50%\",\n transform: \"translate(-50%, -50%)\",\n zIndex: \"1002\",\n margin: \"0 auto\",\n boxShadow: \"rgba(20, 20, 20, 0.2) 0 16px 32px, rgba(20, 20, 20, 0.04) 0 0 0 1px\",\n borderRadius: \"12px\",\n display: \"block\",\n [`@media ${mq[1]}, ${mq[2]}`]: {\n width: \"100%\",\n height: \"100%\"\n }\n }\n}\n\nexport const modalCloseStyle = (img, context) => {\n\n return {\n position: \"absolute\",\n width: \"32px\",\n height: \"32px\",\n borderRadius: \"50%\",\n top: \"16px\",\n right: \"16px\",\n mask: `url(${img}) center center no-repeat`,\n backgroundColor: `${context.theme.primaryColor}`,\n cursor: \"pointer\",\n }\n}\n\nexport const modalBodyStyle = () => {\n\n return {\n padding: \"24px\",\n height: \"100%\",\n width: \"100%\"\n }\n}\n\nexport const modalCaptionStyle = (dir) => {\n\n const textAlignStyle = (dir === \"rtl\") ? {\n textAlign: \"right\",\n paddingRight: \"32px\",\n } : {\n textAlign: \"left\",\n };\n\n return {\n fontSize: \"20px\",\n marginBottom: \"8px\",\n fontWeight: \"bold\",\n ...textAlignStyle,\n width: \"100%\",\n }\n}\n\nexport const modalErrorStyle = context => {\n\n\treturn {\n\t\tfontSize: \"12px\",\n\t\tcolor: `${context.theme.color.red}`,\n\t\ttextAlign: \"center\",\n\t\tpadding: \"8px 0\",\n\t\twidth: \"100%\",\n\t\theight: \"31px\",\n\t};\n};\n\nexport const modalListStyle = () => {\n\n return {\n width: \"100%\",\n height: \"calc(100% - 70px)\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n alignItems: \"flex-start\",\n }\n}\n\nexport const listHeaderStyle = (context) => {\n\n return {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n fontWeight: \"bold\",\n padding: \"8px\",\n width: \"100%\",\n border: `1px solid ${context.theme.borderColor.primary}`,\n };\n}\n\nexport const nameColumnStyle = (context) => {\n\n const mq = context.theme.breakPoints.map(x => `@media ${x}`);\n\n return {\n width: \"calc(100% - 220px)\",\n [mq[0]]: {\n width: \"calc(100% - 185px)\",\n },\n [mq[1]]: {\n width: \"calc(100% - 185px)\",\n },\n [mq[2]]: {\n width: \"calc(100% - 185px)\",\n },\n };\n}\n\nexport const roleColumnStyle = context => {\n\n\tconst mq = context.theme.breakPoints.map(x => `@media ${x}`);\n\n\treturn {\n\t\twidth: \"150px\",\n\t\t[mq[0]]: {\n\t\t\twidth: \"115px\",\n\t\t},\n\t\t[mq[1]]: {\n\t\t\twidth: \"115px\",\n\t\t},\n\t\t[mq[2]]: {\n\t\t\twidth: \"115px\",\n\t\t},\n\t};\n};\n\nexport const actionColumnStyle = () => {\n\n return {\n width: \"70px\"\n }\n}\n\nexport const listStyle = () => {\n\n return {\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"flex-start\",\n alignItems: \"flex-start\",\n width: \"100%\",\n height: \"calc(100% - 33px)\",\n overflowY: \"auto\", \n }\n}\n\nexport const contactMsgStyle = () => {\n\n return {\n overflow: \"hidden\",\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n height: \"55%\",\n }\n}\n\nexport const contactMsgTxtStyle = (context) => {\n\n return {\n margin: \"0\",\n height: \"30px\",\n color: `${context.theme.color.secondary}`,\n fontSize: \"20px!important\",\n fontWeight: \"600\"\n }\n}","export default __webpack_public_path__ + \"static/media/close.0b0b6f95.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatBanGroupMemberListItem } from \"../\";\nimport { CometChatBackdrop } from \"../../Shared\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport Translator from \"../../../resources/localization/translator\";\nimport { theme } from \"../../../resources/theme\";\n\nimport {\n modalWrapperStyle,\n modalCloseStyle,\n modalBodyStyle,\n contactMsgStyle,\n contactMsgTxtStyle,\n modalErrorStyle,\n modalCaptionStyle,\n modalListStyle,\n listHeaderStyle,\n nameColumnStyle,\n roleColumnStyle,\n actionColumnStyle,\n listStyle,\n} from \"./style\";\n\nimport clearIcon from \"./resources/close.svg\";\n\nclass CometChatBanGroupMemberList extends React.Component {\n\n static contextType = CometChatContext;\n\n constructor(props) {\n\n super(props);\n\n this.state = {\n membersToBan: [],\n membersToUnBan: [],\n decoratorMessage: Translator.translate(\"LOADING\", Translator.getDefaultLanguage()),\n errorMessage: \"\"\n }\n }\n\n componentDidMount() {\n\n if (this.context.bannedGroupMembers.length === 0) {\n this.setState({ decoratorMessage: Translator.translate(\"NO_BANNED_MEMBERS_FOUND\", this.context.language) });\n } else {\n this.setState({ decoratorMessage: \"\" });\n }\n }\n\n componentDidUpdate() {\n \n if (this.context.bannedGroupMembers.length === 0 && this.state.decoratorMessage === \"\") {\n this.setState({ decoratorMessage: Translator.translate(\"NO_BANNED_MEMBERS_FOUND\", this.context.language) });\n } else if (this.context.bannedGroupMembers.length && this.state.decoratorMessage.length) {\n this.setState({ decoratorMessage: \"\" });\n }\n }\n\n unbanMember = (memberToUnBan) => {\n\n const guid = this.context.item.guid;\n CometChat.unbanGroupMember(guid, memberToUnBan.uid).then(response => {\n \n if(response) {\n this.props.actionGenerated(enums.ACTIONS[\"UNBAN_GROUP_MEMBER_SUCCESS\"], [memberToUnBan]);\n } else {\n this.setState({ errorMessage: Translator.translate(\"SOMETHING_WRONG\", this.context.language) });\n }\n\n }).catch(error => this.setState({ errorMessage: Translator.translate(\"SOMETHING_WRONG\", this.context.language) }));\n }\n\n updateMembers = (action, member) => {\n\n switch(action) {\n case enums.ACTIONS[\"UNBAN_GROUP_MEMBER\"]:\n this.unbanMember(member);\n break;\n default:\n break;\n }\n }\n\n handleScroll = (e) => {\n\n const bottom = Math.round(e.currentTarget.scrollHeight - e.currentTarget.scrollTop) === Math.round(e.currentTarget.clientHeight);\n if (bottom) {\n this.props.actionGenerated(enums.ACTIONS[\"FETCH_BANNED_GROUP_MEMBERS\"]);\n }\n }\n \n render() {\n \n const membersList = [...this.context.bannedGroupMembers];\n const bannedMembers = membersList.map((member, key) => {\n\n return (\n );\n\n });\n\n let messageContainer = null;\n if (this.state.decoratorMessage.length !== 0) {\n\n messageContainer = (\n
    \n

    {this.state.decoratorMessage}

    \n
    \n );\n }\n \n return (\n \n \n
    \n \n\n
    \n
    \n {Translator.translate(\"BANNED_MEMBERS\", this.context.language)}\n
    \n
    \n {this.state.errorMessage}\n
    \n\n
    \n
    \n
    \n {Translator.translate(\"NAME\", this.context.language)}\n
    \n
    \n {Translator.translate(\"SCOPE\", this.context.language)}\n
    \n
    \n {Translator.translate(\"UNBAN\", this.context.language)}\n
    \n
    \n {messageContainer}\n
    \n {bannedMembers}\n
    \n
    \n\n
    \n
    \n
    \n );\n }\n}\n\n// Specifies the default values for props:\nCometChatBanGroupMemberList.defaultProps = {\n theme: theme\n};\n\nCometChatBanGroupMemberList.propTypes = {\n theme: PropTypes.object\n}\n\nexport { CometChatBanGroupMemberList };\n","export const modalRowStyle = (context) => {\n\n return {\n borderLeft: `1px solid ${context.theme.borderColor.primary}`,\n borderRight: `1px solid ${context.theme.borderColor.primary}`,\n borderBottom: `1px solid ${context.theme.borderColor.primary}`,\n display: \"flex\",\n width: \"100%\",\n fontSize: \"14px\",\n flexDirection: \"row\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n padding: \"8px\",\n };\n}\n\nexport const userStyle = context => {\n \n\tconst mq = context.theme.breakPoints.map(x => `@media ${x}`);\n\n\treturn {\n\t\twidth: \"calc(100% - 220px)\",\n\t\t[mq[0]]: {\n\t\t\twidth: \"calc(100% - 185px)\",\n\t\t},\n\t\t[mq[1]]: {\n\t\t\twidth: \"calc(100% - 185px)\",\n\t\t},\n\t\t[mq[2]]: {\n\t\t\twidth: \"calc(100% - 185px)\",\n\t\t},\n\t};\n};\n\nexport const avatarStyle = () => {\n\n return {\n display: \"inline-block\",\n float: \"left\",\n width: \"36px\",\n height: \"36px\",\n marginRight: \"8px\",\n }\n}\n\nexport const nameStyle = () => {\n\n return {\n margin: \"10px 0 0 0\",\n width: \"calc(100% - 50px)\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\"\n }\n}\n\nexport const roleStyle = (context) => {\n\n const mq = context.theme.breakPoints.map(x => `${x}`);\n\n return {\n width: \"150px\",\n fontSize: \"12px\",\n [`@media ${mq[1]}, ${mq[2]}`]: {\n width: \"115px\"\n }\n }\n}\n\nexport const actionStyle = (img, context) => {\n\n return {\n width: \"70px\",\n \"i\": {\n width: \"24px\",\n height: \"24px\",\n cursor: \"pointer\",\n mask: `url(${img}) center center no-repeat`,\n backgroundColor: `${context.theme.secondaryTextColor}`,\n display: \"inline-block\"\n },\n };\n}","export default __webpack_public_path__ + \"static/media/ban-member.f8856b3d.svg\";","import { useContext } from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatAvatar, CometChatUserPresence } from \"../../Shared\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport Translator from \"../../../resources/localization/translator\";\nimport { theme } from \"../../../resources/theme\";\n\nimport {\n modalRowStyle,\n userStyle,\n avatarStyle,\n nameStyle,\n roleStyle,\n actionStyle\n} from \"./style\";\n\nimport unban from \"./resources/ban-member.svg\";\n\nconst CometChatBanGroupMemberListItem = (props) => {\n\n const context = useContext(CometChatContext);\n\n let name = props.member.name;\n let scope = context.roles[props.member.scope];\n let unBan = ( { props.actionGenerated(enums.ACTIONS[\"UNBAN_GROUP_MEMBER\"], props.member)}} />);\n\n //if the loggedin user is moderator, don't allow unban of banned moderators or administrators\n if (context.item.scope === CometChat.GROUP_MEMBER_SCOPE.MODERATOR \n && (props.member.scope === CometChat.GROUP_MEMBER_SCOPE.ADMIN || props.member.scope === CometChat.GROUP_MEMBER_SCOPE.MODERATOR)) {\n unBan = null;\n }\n\n //if the loggedin user is administrator, don't allow unban of banned administrators\n if (context.item.scope === CometChat.GROUP_MEMBER_SCOPE.ADMIN && props.member.scope === CometChat.GROUP_MEMBER_SCOPE.ADMIN) {\n if (context.item.owner !== props.loggedinuser.uid) {\n unBan = null;\n }\n }\n\n const toggleTooltip = (event, flag) => {\n\n const elem = event.currentTarget;\n const nameContainer = elem.lastChild;\n \n const scrollWidth = nameContainer.scrollWidth;\n const clientWidth = nameContainer.clientWidth;\n \n if(scrollWidth <= clientWidth) {\n return false;\n }\n \n if(flag) {\n nameContainer.setAttribute(\"title\", nameContainer.textContent);\n } else {\n nameContainer.removeAttribute(\"title\");\n }\n }\n \n return (\n
    \n
    toggleTooltip(event, true)}\n onMouseLeave={event => toggleTooltip(event, false)}>\n
    \n \n \n
    \n
    {name}
    \n
    \n
    {scope}
    \n
    {unBan}
    \n
    \n );\n}\n\n// Specifies the default values for props:\nCometChatBanGroupMemberListItem.defaultProps = {\n theme: theme\n};\n\nCometChatBanGroupMemberListItem.propTypes = {\n theme: PropTypes.object\n}\n\nexport { CometChatBanGroupMemberListItem };\n","export const groupScreenStyle = (props) => {\n\n return {\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n boxSizing: \"border-box\",\n fontFamily: `${props.theme.fontFamily}`,\n border: `1px solid ${props.theme.borderColor.primary}`,\n \"*\": {\n boxSizing: \"border-box\",\n fontFamily: `${props.theme.fontFamily}`,\n \"::-webkit-scrollbar\": {\n width: \"8px\",\n height: \"4px\",\n },\n \"::-webkit-scrollbar-track\": {\n background: \"#ffffff00\"\n },\n \"::-webkit-scrollbar-thumb\": {\n background: \"#ccc\",\n \"&:hover\": {\n background: \"#aaa\"\n }\n }\n }\n }\n}\n\nexport const groupScreenSidebarStyle = (state, props) => {\n\n const sidebarView = (state.sidebarview) ? {\n left: \"0\",\n boxShadow: \"rgba(0, 0, 0, .4) -30px 0 30px 30px\"\n } : {};\n\n const mq = [...props.theme.breakPoints];\n\n return {\n\n width: \"280px\",\n borderRight: `1px solid ${props.theme.borderColor.primary}`,\n height: \"100%\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n \".groups\": {\n height: \"calc(100% - 5px)\",\n },\n [`@media ${mq[0]}`]: {\n position: \"absolute!important\",\n left: \"-100%\",\n top: \"0\",\n bottom: \"0\",\n width: \"100%!important\",\n zIndex: \"2\",\n backgroundColor: `${props.theme.backgroundColor.white}`,\n transition: \"all .3s ease-out\",\n ...sidebarView\n }\n }\n}\n\nexport const groupScreenMainStyle = (state, props) => {\n\n const mq = [...props.theme.breakPoints];\n\n return {\n width: \"calc(100% - 280px)\",\n height: \"100%\",\n order: \"2\",\n display: \"flex\",\n flexDirection: \"row\",\n [`@media ${mq[1]}, ${mq[2]}`]: {\n width: \"100%\",\n }\n }\n}","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatGroupList } from \"../\";\nimport { CometChatMessages } from \"../../Messages\";\nimport { CometChatIncomingDirectCall } from \"../../Calls\";\n\nimport { CometChatContextProvider } from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n\tgroupScreenStyle,\n\tgroupScreenSidebarStyle,\n\tgroupScreenMainStyle,\n} from \"./style\"\n\nclass CometChatGroupListWithMessages extends React.Component {\n\n\tloggedInUser = null;\n\n\tconstructor(props) {\n\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tsidebarview: false,\n\t\t}\n\n\t\tthis.groupListRef = React.createRef();\n\t}\n\n\tcomponentDidMount() {\n\n\t\tif (this.props.chatWithGroup.length === 0) {\n\t\t\tthis.toggleSideBar();\n\t\t}\n\t}\n\n\titemClicked = (group, type) => {\n\t\t\n\t\tthis.contextProviderRef.setTypeAndItem(type, group);\n\t\tthis.toggleSideBar()\n\t}\n\n\tactionHandler = (action, item, count, ...otherProps) => {\n\t\t\n\t\tswitch(action) {\n\t\t\tcase enums.ACTIONS[\"TOGGLE_SIDEBAR\"]:\n\t\t\t\tthis.toggleSideBar();\n\t\t\tbreak;\n\t\t\tcase enums.GROUP_MEMBER_SCOPE_CHANGED:\n\t\t\tcase enums.GROUP_MEMBER_KICKED:\n\t\t\tcase enums.GROUP_MEMBER_BANNED:\n\t\t\t\tthis.groupUpdated(action, item, count, ...otherProps);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\tbreak;\n\t\t}\n\t}\n\n\ttoggleSideBar = () => {\n\n\t\tconst sidebarview = this.state.sidebarview;\n\t\tthis.setState({ sidebarview: !sidebarview });\n\t}\n\n\t/**\n\t If the logged in user is banned, kicked or scope changed, update the chat window accordingly\n\t*/\n\tgroupUpdated = (key, message, group, options) => {\n\t\t\n\t\tswitch(key) {\n\t\t\tcase enums.GROUP_MEMBER_BANNED:\n\t\t\tcase enums.GROUP_MEMBER_KICKED: {\n\n\t\t\t\tif (this.contextProviderRef.type === CometChat.ACTION_TYPE.TYPE_GROUP\n\t\t\t\t&& this.contextProviderRef.item.guid === group.guid\n\t\t\t\t&& options.user.uid === this.loggedInUser.uid) {\n\n\t\t\t\t\tthis.contextProviderRef.setItem({});\n\t\t\t\t\tthis.contextProviderRef.setType(\"\");\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase enums.GROUP_MEMBER_SCOPE_CHANGED: {\n\t\t\t\t\n\t\t\t\tif (this.contextProviderRef.type === CometChat.ACTION_TYPE.TYPE_GROUP\n\t\t\t\t&& this.contextProviderRef.item.guid === group.guid\n\t\t\t\t&& options.user.uid === this.loggedInUser.uid) {\n\n\t\t\t\t\tconst newObject = Object.assign({}, this.contextProviderRef.item, {\"scope\": options[\"scope\"]})\n\t\t\t\t\tthis.contextProviderRef.setItem(newObject);\n\t\t\t\t\tthis.contextProviderRef.setType(CometChat.ACTION_TYPE.TYPE_GROUP);\n\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\tbreak;\n\t\t}\n\t}\n\n\trender() {\n\n\t\tlet messageScreen = (\n\t\t\t\n\t\t);\n\n\t\treturn (\n\t\t\t (this.contextProviderRef = el)} group={this.props.chatWithGroup} language={this.props.lang}>\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t (this.groupListRef = el)} _parent=\"glwm\" theme={this.props.theme} lang={this.props.lang} onItemClick={this.itemClicked} actionGenerated={this.actionHandler} />\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{messageScreen}\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatGroupListWithMessages.defaultProps = {\n\tlang: Translator.getDefaultLanguage(),\n\ttheme: theme,\n\tchatWithGroup: \"\",\n};\n\nCometChatGroupListWithMessages.propTypes = {\n\tlang: PropTypes.string,\n\ttheme: PropTypes.object,\n\tchatWithGroup: PropTypes.string,\n}\n\nexport { CometChatGroupListWithMessages };","export const modalWrapperStyle = (props, context) => {\n\n\tconst mq = [`@media (min-width : 320px) and (max-width: 767px)`];\n\treturn {\n\t\tminWidth: \"350px\",\n\t\tminHeight: \"450px\",\n\t\twidth: \"40%\",\n\t\theight: \"40%\",\n\t\toverflow: \"hidden\",\n\t\tbackgroundColor: `${context.theme.backgroundColor.white}`,\n\t\tposition: \"fixed\",\n\t\tleft: \"50%\",\n\t\ttop: \"50%\",\n\t\ttransform: \"translate(-50%, -50%)\",\n\t\tzIndex: \"1002\",\n\t\tmargin: \"0 auto\",\n\t\tboxShadow: \"rgba(20, 20, 20, 0.2) 0 16px 32px, rgba(20, 20, 20, 0.04) 0 0 0 1px\",\n\t\tborderRadius: \"12px\",\n\t\tdisplay: \"block\",\n\t\t[mq[0]]: {\n\t\t\twidth: \"100%\",\n\t\t\theight: \"100%\",\n\t\t},\n\t};\n};\n\nexport const modalCloseStyle = (img, context) => {\n\treturn {\n\t\tposition: \"absolute\",\n\t\twidth: \"32px\",\n\t\theight: \"32px\",\n\t\tborderRadius: \"50%\",\n\t\ttop: \"16px\",\n\t\tright: \"16px\",\n\t\tmask: `url(${img}) center center no-repeat`,\n\t\tbackgroundColor: `${context.theme.primaryColor}`,\n\t\tcursor: \"pointer\",\n\t};\n};\n\nexport const modalBodyStyle = () => {\n\treturn {\n\t\tpadding: \"24px\",\n\t\theight: \"100%\",\n\t\twidth: \"100%\",\n\t};\n};\n\nexport const modalCaptionStyle = dir => {\n\tconst textAlignStyle =\n\t\tdir === \"rtl\" ? {\n\t\t\ttextAlign: \"right\",\n\t\t\tpaddingRight: \"32px\",\n\t\t}\n\t\t: {\n\t\t\ttextAlign: \"left\",\n\t\t};\n\n\treturn {\n\t\tfontSize: \"20px\",\n\t\tmarginBottom: \"8px\",\n\t\tfontWeight: \"bold\",\n\t\t...textAlignStyle,\n\t\twidth: \"100%\",\n\t};\n};\n\nexport const modalErrorStyle = context => {\n\treturn {\n\t\tfontSize: \"12px\",\n\t\tcolor: `${context.theme.color.red}`,\n\t\ttextAlign: \"center\",\n\t\tpadding: \"8px 0\",\n\t\theight: \"31px\",\n\t\twidth: \"100%\",\n\t};\n};\n\nexport const modalListStyle = (context) => {\n\treturn {\n\t\twidth: \"100%\",\n\t\theight: \"calc(100% - 120px)\",\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"column\",\n\t\tjustifyContent: \"flex-start\",\n\t\talignItems: \"flex-start\",\n\t};\n};\n\nexport const listHeaderStyle = context => {\n\treturn {\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"flex-start\",\n\t\talignItems: \"center\",\n\t\tfontWeight: \"bold\",\n\t\tpadding: \"8px\",\n\t\twidth: \"100%\",\n\t\tborder: `1px solid ${context.theme.borderColor.primary}`,\n\t};\n};\n\nexport const listStyle = () => {\n\treturn {\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"column\",\n\t\tjustifyContent: \"flex-start\",\n\t\talignItems: \"flex-start\",\n\t\twidth: \"100%\",\n\t\theight: \"calc(100% - 100px)\",\n\t\toverflowY: \"auto\",\n\t};\n};\n\nexport const nameColumnStyle = (props, context) => {\n\n\tconst mq = context.theme.breakPoints.map(x => `@media ${x}`);\n\treturn {\n\t\twidth: \"calc(100% - 180px)\",\n\t\t[mq[1]]: {\n\t\t\twidth: \"calc(100% - 140px)\",\n\t\t},\n\t\t[mq[2]]: {\n\t\t\twidth: \"calc(100% - 180px)\",\n\t\t},\n\t\t[mq[3]]: {\n\t\t\twidth: \"calc(100% - 120px)\",\n\t\t},\n\t};\n};\n\nexport const scopeColumnStyle = (context) => {\n\n\tconst mq = context.theme.breakPoints.map(x => `@media ${x}`);\n\treturn {\n\t\twidth: \"180px\",\n\t\t[mq[1]]: {\n\t\t\twidth: \"140px\",\n\t\t},\n\t\t[mq[2]]: {\n\t\t\twidth: \"180px\",\n\t\t},\n\t\t[mq[3]]: {\n\t\t\twidth: \"120px\",\n\t\t},\n\t};\n};\n\n\n\nexport const modalFootStyle = (state, context, img) => {\n\n\tconst btnState = !state.newGroupOwner || state.transferringOwnership ? { \n\t\tdisabled: \"true\",\n\t\tpointerEvents: \"none\",\n\t} : {};\n\n\tconst loadingState = state.transferringOwnership ? {\n\t\tbackground: `url(${img}) no-repeat right 10px center ${context.theme.backgroundColor.blue}`,\n\t} : {};\n\n\tconst textMargin = state.transferringOwnership ? { marginRight: \"24px\" } : {};\n\n\treturn {\n\t\tpaddingTop: \"24px\",\n\t\ttextAlign: \"center\",\n\t\tbutton: {\n\t\t\tcursor: \"pointer\",\n\t\t\tpadding: \"8px 16px\",\n\t\t\tbackgroundColor: `${context.theme.backgroundColor.blue}`,\n\t\t\tborderRadius: \"5px\",\n\t\t\tcolor: `${context.theme.color.white}`,\n\t\t\tfontSize: \"14px\",\n\t\t\toutline: \"0\",\n\t\t\tborder: \"0\",\n\t\t\t...btnState,\n\t\t\t...loadingState,\n\t\t\tspan: {\n\t\t\t\t...textMargin,\n\t\t\t},\n\t\t},\n\t};\n};","export default __webpack_public_path__ + \"static/media/close.0b0b6f95.svg\";","export default __webpack_public_path__ + \"static/media/transferring.446449d0.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatTransferOwnershipMemberListItem } from \"../\";\nimport { CometChatBackdrop } from \"../../Shared\";\n\nimport * as enums from \"../../../util/enums.js\";\nimport { CometChatContext } from \"../../../util/CometChatContext\";\n\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n modalWrapperStyle,\n modalCloseStyle,\n modalBodyStyle,\n modalCaptionStyle,\n modalListStyle,\n listHeaderStyle,\n listStyle,\n nameColumnStyle,\n scopeColumnStyle,\n\tmodalFootStyle,\n\tmodalErrorStyle\n} from \"./style\";\n\nimport clearIcon from \"./resources/close.svg\";\nimport transferIcon from \"./resources/transferring.svg\";\n\nclass CometChatTransferOwnershipMemberList extends React.Component {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props, context) {\n\t\tsuper(props, context);\n\n\t\tthis._isMounted = false;\n\t\tconst chatWindow = context.UIKitSettings.chatWindow;\n\t\tthis.mq = chatWindow.matchMedia(context.theme.breakPoints[1]);\n\n\t\tlet userColumnTitle = Translator.translate(\"NAME\", context.language);\n\t\tif (this.mq.matches) {\n\t\t\tuserColumnTitle = Translator.translate(\"AVATAR\", context.language);\n\t\t}\n\n\t\tthis.state = {\n\t\t\tuserColumnTitle: userColumnTitle,\n\t\t\tnewGroupOwner: null,\n\t\t\ttransferringOwnership: false,\n\t\t\terrorMessage: \"\",\n\t\t};\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis._isMounted = false;\n\t}\n\n\thandleScroll = e => {\n\t\tconst bottom = Math.round(e.currentTarget.scrollHeight - e.currentTarget.scrollTop) === Math.round(e.currentTarget.clientHeight);\n\t\tif (bottom) {\n\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"FETCH_GROUP_MEMBERS\"]);\n\t\t}\n\t};\n\n\tupdateMembers = (action, member, scope) => {\n\t\tswitch (action) {\n\t\t\tcase enums.ACTIONS[\"CHANGE_OWNERSHIP_GROUP_MEMBER\"]:\n\t\t\t\tthis.changeOwnership(member, scope);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\tupdateGroupOwner = member => {\n\t\tthis.setState({ newGroupOwner: member?.uid });\n\t};\n\n\ttransferOwnership = () => {\n\n\t\tconst guid = this.context?.item?.guid;\n\t\tconst uid = this.state.newGroupOwner;\n\n\t\tif (!guid || !uid) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.setState({ transferringOwnership: true });\n\t\tCometChat.transferGroupOwnership(guid, uid).then(response => {\n\t\t\tthis.setState({ transferringOwnership: false });\n\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"OWNERSHIP_TRANSFERRED\"], uid);\n\n\t\t}).catch(error => {\n\t\t\tthis.setState({ transferringOwnership: false, errorMessage: Translator.translate(\"SOMETHING_WRONG\", this.context.language) });\n\t\t});\n\t};\n\n\tchangeOwnership = () => {};\n\n\tsetUserColumnTitle = editAccess => {\n\t\tif (this._isMounted) {\n\t\t\tif (editAccess !== null && this.mq.matches) {\n\t\t\t\tthis.setState({ userColumnTitle: Translator.translate(\"AVATAR\", this.context.language) });\n\t\t\t} else {\n\t\t\t\tthis.setState({ userColumnTitle: Translator.translate(\"NAME\", this.context.language) });\n\t\t\t}\n\t\t}\n\t};\n\n\trender() {\n\n\t\tconst memberList = [...this.context.groupMembers];\n\t\tconst groupMembers = memberList\n\t\t\t.filter(member => member?.uid !== this.props?.loggedinuser?.uid)\n\t\t\t.map(member => {\n\t\t\t\treturn ;\n\t\t\t});\n\n\t\tlet transferBtn = null;\n\t\tif(memberList.length) {\n\n\t\t\tconst transferText = this.state.transferringOwnership ? Translator.translate(\"TRANSFERRING\", this.context.language) : Translator.translate(\"TRANSFER\", this.context.language);\n\t\t\ttransferBtn = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t
    {Translator.translate(\"GROUP_MEMBERS\", this.context.language)}
    \n\t\t\t\t\t\t
    {this.state.errorMessage}
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{this.state.userColumnTitle}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{Translator.translate(\"SCOPE\", this.context.language)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{groupMembers}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{transferBtn}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\nexport { CometChatTransferOwnershipMemberList };\n","export const modalRowStyle = (props, context) => {\n\treturn {\n\t\tdisplay: \"flex\",\n\t\twidth: \"100%\",\n\t\tfontSize: \"14px\",\n\t\tpadding: \"8px\",\n\t\tflexDirection: \"row\",\n\t\tjustifyContent: \"flex-start\",\n\t\talignItems: \"center\",\n\t\tborderLeft: `1px solid ${context.theme.borderColor.primary}`,\n\t\tborderRight: `1px solid ${context.theme.borderColor.primary}`,\n\t\tborderBottom: `1px solid ${context.theme.borderColor.primary}`,\n\t};\n};\n\nexport const modalColumnStyle = context => {\n\n\tconst mq = context.theme.breakPoints.map(x => `@media ${x}`);\n\treturn {\n\t\twidth: \"calc(100% - 180px)\",\n\t\t[mq[1]]: {\n\t\t\twidth: \"calc(100% - 140px)\",\n\t\t},\n\t\t[mq[2]]: {\n\t\t\twidth: \"calc(100% - 180px)\",\n\t\t},\n\t\t[mq[3]]: {\n\t\t\twidth: \"calc(100% - 120px)\",\n\t\t},\n\t};\n};\n\nexport const avatarStyle = () => {\n\treturn {\n\t\tdisplay: \"inline-block\",\n\t\tfloat: \"left\",\n\t\twidth: \"36px\",\n\t\theight: \"36px\",\n\t\tmarginRight: \"8px\",\n\t};\n};\n\nexport const nameStyle = () => {\n\treturn {\n\t\tmargin: \"10px\",\n\t\twidth: \"calc(100% - 50px)\",\n\t\toverflow: \"hidden\",\n\t\ttextOverflow: \"ellipsis\",\n\t\twhiteSpace: \"nowrap\",\n\t};\n};\n\nexport const selectionColumnStyle = context => {\n\n\tconst mq = context.theme.breakPoints.map(x => `@media ${x}`);\n\treturn {\n\t\twidth: \"180px\",\n\t\tdisplay: \"flex\",\n\t\tjustifyContent: \"flex-start\",\n\t\talignItems: \"center\",\n\t\t\"span\": {\n\t\t\tfontSize: \"12px\",\n\t\t\tdisplay: \"block\",\n\t\t\tpaddingRight: \"8px\",\n\t\t},\n\t\t[mq[1]]: {\n\t\t\twidth: \"140px\",\n\t\t},\n\t\t[mq[2]]: {\n\t\t\twidth: \"180px\",\n\t\t},\n\t\t[mq[3]]: {\n\t\t\twidth: \"120px\",\n\t\t},\n\t};\n\n};\n\nexport const selectionBoxStyle = (inactiveStateImg, activeStateImg, context) => {\n\treturn {\n\t\tdisplay: \"none\",\n\t\t\" + label\": {\n\t\t\tdisplay: \"block\",\n\t\t\tcursor: \"pointer\",\n\t\t\tmask: `url(${inactiveStateImg}) center center no-repeat`,\n\t\t\tbackgroundColor: `${context.theme.secondaryTextColor}`,\n\t\t\tuserSelect: \"none\",\n\t\t\tpadding: \"8px\",\n\t\t},\n\t\t\"&:checked + label\": {\n\t\t\tmask: `url(${activeStateImg}) center center no-repeat`,\n\t\t\tbackgroundColor: `${context.theme.secondaryTextColor}`,\n\t\t\tpadding: \"8px\",\n\t\t},\n\t};\n};","export default __webpack_public_path__ + \"static/media/group-member-unselect.ecb59147.svg\";","export default __webpack_public_path__ + \"static/media/group-member-select.301a1077.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport { CometChatAvatar, CometChatUserPresence } from \"../../Shared\";\n\nimport { modalRowStyle, modalColumnStyle, avatarStyle, nameStyle, selectionColumnStyle, selectionBoxStyle } from \"./style\";\n\nimport inactiveIcon from \"./resources/group-member-unselect.svg\";\nimport activeIcon from \"./resources/group-member-select.svg\";\n\nclass CometChatTransferOwnershipMemberListItem extends React.Component {\n\tstatic contextType = CometChatContext;\n\tconstructor(props, context) {\n\t\tsuper(props, context);\n\n\t\tthis.state = {\n\t\t\tisSelected: false,\n\t\t};\n\t}\n\n\thandleCheck = e => {\n\t\t\n\t\tthis.setState(this.toggleSelectedState);\n\t\tthis.props.checked(this.props.member);\n\t};\n\n\ttoggleSelectedState = state => {\n\t\treturn {\n\t\t\tisSelected: !state.isSelected,\n\t\t};\n\t};\n\n\ttoggleTooltip = (event, flag) => {\n\t\tconst elem = event.currentTarget;\n\t\tconst nameContainer = elem.lastChild;\n\n\t\tconst scrollWidth = nameContainer.scrollWidth;\n\t\tconst clientWidth = nameContainer.clientWidth;\n\n\t\tif (scrollWidth <= clientWidth) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (flag) {\n\t\t\tnameContainer.setAttribute(\"title\", nameContainer.textContent);\n\t\t} else {\n\t\t\tnameContainer.removeAttribute(\"title\");\n\t\t}\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    this.toggleTooltip(event, true)} onMouseLeave={event => this.toggleTooltip(event, false)}>\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{this.props.member.name}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{this.context.roles[this.props.member.scope]}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\nexport { CometChatTransferOwnershipMemberListItem };","export const chatWrapperStyle = (props, state) => {\n\n\tlet borderStyle = {};\n\tif (props._parent.trim().length === 0) {\n\t\tif (state.viewdetailscreen || state.threadmessageview) {\n\t\t\tborderStyle = {\n\t\t\t\tborderLeft: `1px solid ${props.theme.borderColor.primary}`,\n\t\t\t\tborderBottom: `1px solid ${props.theme.borderColor.primary}`,\n\t\t\t};\n\t\t} else {\n\t\t\tborderStyle = {\n\t\t\t\tborderLeft: `1px solid ${props.theme.borderColor.primary}`,\n\t\t\t\tborderRight: `1px solid ${props.theme.borderColor.primary}`,\n\t\t\t\tborderBottom: `1px solid ${props.theme.borderColor.primary}`,\n\t\t\t};\n\t\t}\n\t}\n\n\tconst mq = [...props.theme.breakPoints];\n\n\tconst secondaryViewWidth = (state.threadmessageview || state.viewdetailscreen) ? {\n width: \"calc(100% - 400px)\",\n [`@media ${mq[1]}, ${mq[2]}`]: {\n width: \"100%\",\n },\n [`@media ${mq[3]}, ${mq[4]}`]: {\n width: \"0\",\n display: \"none\",\n },\n } : {\n width: \"100%\",\n };\n\n\treturn {\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"column\",\n\t\theight: \"100%\",\n\t\tboxSizing: \"border-box\",\n\t\tposition: \"relative\",\n\t\tfontFamily: `${props.theme.fontFamily}`,\n\t\t...borderStyle,\n\t\t...secondaryViewWidth,\n\t\t\"*\": {\n\t\t\tboxSizing: \"border-box\",\n\t\t\tfontFamily: `${props.theme.fontFamily}`,\n\t\t\t\"::-webkit-scrollbar\": {\n\t\t\t\twidth: \"8px\",\n\t\t\t\theight: \"4px\",\n\t\t\t},\n\t\t\t\"::-webkit-scrollbar-track\": {\n\t\t\t\tbackground: \"#ffffff00\",\n\t\t\t},\n\t\t\t\"::-webkit-scrollbar-thumb\": {\n\t\t\t\tbackground: \"#ccc\",\n\t\t\t\t\"&:hover\": {\n\t\t\t\t\tbackground: \"#aaa\",\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t};\n};\n\nexport const chatSecondaryStyle = (props) => {\n\n const borderStyle = (props._parent.trim().length === 0) ? {\n borderRight: `1px solid ${props.theme.borderColor.primary}`,\n borderBottom: `1px solid ${props.theme.borderColor.primary}`\n } : {};\n\n const mq = [...props.theme.breakPoints];\n\n return {\n float: \"right\",\n borderLeft: `1px solid ${props.theme.borderColor.primary}`,\n height: \"100%\",\n width: \"400px\",\n display: \"flex\",\n flexDirection: \"column\",\n order: \"3\",\n ...borderStyle,\n [`@media ${mq[1]}, ${mq[2]}, ${mq[3]}, ${mq[4]}`]: {\n position: \"absolute!important\",\n right: \"0!important\",\n top: \"0\",\n bottom: \"0\",\n width: \"100%!important\",\n zIndex: \"2\",\n backgroundColor: `${props.theme.backgroundColor.white}`,\n }\n }\n}\n\nexport const reactionsWrapperStyle = () => {\n\n return {\n position: \"absolute\", \n width: \"100%\", \n height: \"100%\", \n top: \"0\", \n right: \"0\",\n zIndex: \"2\",\n display: \"flex\",\n justifyContent: \"left\",\n alignItems: \"center\"\n }\n}\n\n\nexport const messagePaneTopStyle = () => {\n\n return {\n top: \"75px\",\n position: \"absolute\",\n width: \"auto\",\n right: \"auto\",\n left: \"50%\",\n fontWeight: \"700\",\n zIndex: \"200\",\n transform: \"translateX(-50%)\",\n }\n}\n\nexport const messagePaneBannerStyle = props => {\n\n\treturn {\n\t\tmarginBottom: \"0\",\n\t\tdisplay: \"block\",\n\t\tfontSize: \"13px\",\n\t\tflex: \"1\",\n\t\tbackground: `${props.theme.color.blue}`,\n\t\tborderRadius: \"6px\",\n\t\tzIndex: 200,\n\t};\n};\n\nexport const messagePaneUnreadBannerStyle = () => {\n\n return {\n height: \"28px\",\n borderRadius: \"14px\",\n display: \"flex\",\n flex: \"1\",\n alignItems: \"center\",\n }\n}\n\nexport const messagePaneUnreadBannerMessageStyle = props => {\n\n\treturn {\n\t\tpadding: \"0 16px\",\n\t\tflex: \"1\",\n\t\ttextAlign: \"center\",\n\t\ttextShadow: \"0 1px rgba(0, 0, 0, .15)\",\n\t\twhiteSpace: \"nowrap\",\n\t\toverflow: \"hidden\",\n\t\ttextOverflow: \"ellipsis\",\n\t\tcolor: `${props.theme.color.white}`,\n\t};\n};\n\nexport const iconArrowDownStyle = () => {\n\n return {\n position: \"relative\",\n display: \"inline-flex\",\n height: \"20px\",\n alignItems: \"center\",\n justifyContent: \"center\",\n paddingRight: \"8px\",\n }\n}\n\nexport const chatContainerStyle = () => {\n\n return {\n display: \"flex\", \n width: \"100%\", \n height: \"100%\"\n }\n}","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport {jsx} from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport {CometChat} from \"@cometchat-pro/chat\";\n\nimport {\n\tCometChatMessageHeader, \n\tCometChatMessageList, \n\tCometChatMessageComposer, \n\tCometChatLiveReactions, \n\tCometChatMessageThread, \n\tCometChatImageViewer\n} from \"../\";\n\nimport {\n\tCometChatIncomingCall, \n\tCometChatOutgoingCall, \n\tCometChatOutgoingDirectCall, \n\tCometChatIncomingDirectCall\n} from \"../../Calls\";\n\nimport {CometChatUserDetails} from \"../../Users\";\nimport {CometChatGroupDetails} from \"../../Groups\";\nimport { CometChatToastNotification } from \"../../Shared\";\n\nimport {CometChatContextProvider, CometChatContext} from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\nimport {checkMessageForExtensionsData} from \"../../../util/common\";\nimport {SoundManager} from \"../../../util/SoundManager\";\nimport { CometChatEvent } from \"../../../util/CometChatEvent\";\n\nimport {theme} from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n\tchatWrapperStyle, \n\tchatSecondaryStyle, \n\treactionsWrapperStyle, \n\tmessagePaneTopStyle, \n\tmessagePaneBannerStyle, \n\tmessagePaneUnreadBannerStyle, \n\tmessagePaneUnreadBannerMessageStyle, \n\ticonArrowDownStyle, \n\tchatContainerStyle\n} from \"./style\";\n\nclass CometChatMessages extends React.PureComponent {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\n\t\tsuper(props);\n\n\t\tCometChat.getLoggedinUser()\n\t\t\t.then(user => (this.loggedInUser = user))\n\t\t\t.catch(error => this.errorHandler(\"SOMETHING_WRONG\"));\n\n\t\tthis.state = {\n\t\t\tmessageList: [],\n\t\t\tscrollToBottom: true,\n\t\t\tmessageToBeEdited: \"\",\n\t\t\treplyPreview: null,\n\t\t\tliveReaction: false,\n\t\t\tmessageToReact: null,\n\t\t\tunreadMessages: [],\n\t\t\tviewdetailscreen: false,\n\t\t\tthreadmessageview: false,\n\t\t\tthreadmessagetype: null,\n\t\t\tthreadmessageitem: {},\n\t\t\tthreadmessageparent: {},\n\t\t\tviewOriginalImage: false,\n\t\t\tenableGroupActionMessages: false,\n\t\t\tenableCallActionMessages: false,\n\t\t\tenableSendingOneOnOneMessage: false,\n\t\t\tenableSendingGroupMessage: false,\n\t\t\tenableHideDeletedMessages: false,\n\t\t};\n\n\t\tthis.contextProviderRef = React.createRef();\n\t\tthis.composerRef = React.createRef();\n\t\tthis.messageListRef = React.createRef();\n\t\tthis.outgoingCallRef = React.createRef();\n\t\tthis.outgoingDirectCallRef = React.createRef();\n\t\tthis.toastRef = React.createRef();\n\n\t\tthis.reactionName = \"heart\";\n\t}\n\n\tcomponentDidMount() {\n\t\t\n\n\t\tthis.type = this.getContext().type;\n\t\tthis.item = this.getContext().item;\n\n\t\tthis.enableGroupActionMessages();\n\t\tthis.enableCallActionMessages();\n\t\tthis.enableSendingOneOnOneMessage();\n\t\tthis.enableSendingGroupMessage();\n\t\tthis.enableHideDeletedMessages();\n\t}\n\n\tcomponentDidUpdate(prevProps, prevState) {\n\t\t\n\t\tif (Object.keys(this.item).length) {\n\t\t\tconst ifChatWindowChanged = () => {\n\t\t\t\tlet output = false;\n\n\t\t\t\tif (this.getContext().type === CometChat.ACTION_TYPE.TYPE_USER && this.getContext().item.uid !== this.item.uid) {\n\t\t\t\t\toutput = true;\n\t\t\t\t} else if (this.getContext().type === CometChat.ACTION_TYPE.TYPE_GROUP && this.getContext().item.guid !== this.item.guid) {\n\t\t\t\t\toutput = true;\n\t\t\t\t} else if (this.type !== this.getContext().type) {\n\t\t\t\t\toutput = true;\n\t\t\t\t}\n\n\t\t\t\treturn output;\n\t\t\t};\n\n\t\t\tif (ifChatWindowChanged() === true) {\n\t\t\t\tthis.setState({ messageList: [], scrollToBottom: true, messageToBeEdited: \"\", threadmessageview: false, viewdetailscreen: false, unreadMessages: [] });\n\t\t\t}\n\t\t}\n\n\t\tthis.type = this.getContext().type;\n\t\tthis.item = this.getContext().type === CometChat.ACTION_TYPE.TYPE_USER || CometChat.ACTION_TYPE.TYPE_GROUP ? this.getContext().item : {};\n\n\t\tthis.enableGroupActionMessages();\n\t\tthis.enableCallActionMessages();\n\t\tthis.enableSendingOneOnOneMessage();\n\t\tthis.enableSendingGroupMessage();\n\t\tthis.enableHideDeletedMessages();\n\n\t\t/**\n\t\t * Custom message to be appended or updated for direct calling\n\t\t */\n\t\tif (Object.keys(this.props.widgetsettings).length) {\n\t\t\tif (\n\t\t\t\tObject.keys(this.getContext().directCallCustomMessage).length &&\n\t\t\t\tthis.getContext().directCallCustomMessageAction.trim().length &&\n\t\t\t\t(this.getContext().directCallCustomMessage !== this.directCallCustomMessage || this.getContext().directCallCustomMessageAction !== this.directCallCustomMessageAction)\n\t\t\t) {\n\t\t\t\tconst customMessage = this.getContext().directCallCustomMessage;\n\t\t\t\tconst messageAction = this.getContext().directCallCustomMessageAction.trim();\n\n\t\t\t\tswitch (messageAction) {\n\t\t\t\t\tcase enums.ACTIONS[\"MESSAGE_COMPOSED\"]:\n\t\t\t\t\t\tthis.appendMessage(customMessage);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase enums.ACTIONS[\"MESSAGE_SENT\"]:\n\t\t\t\t\tcase enums.ACTIONS[\"ERROR_IN_SENDING_MESSAGE\"]: {\n\t\t\t\t\t\tthis.messageSent(customMessage);\n\t\t\t\t\t\t//this.getContext().setLastMessage(customMessage[0]);\n\t\t\t\t\t\tCometChatEvent.triggerHandler(\"updateLastMessage\", { ...customMessage[0] });\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tthis.getContext().setDirectCallCustomMessage({}, \"\");\n\t\t\t\t\t\t}, 1000);\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.directCallCustomMessage = this.getContext().directCallCustomMessage;\n\t\t\tthis.directCallCustomMessageAction = this.getContext().directCallCustomMessageAction.trim();\n\t\t}\n\t}\n\n\tenableGroupActionMessages = () => {\n\t\tthis.getContext()\n\t\t\t.FeatureRestriction.isGroupActionMessagesEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableGroupActionMessages) {\n\t\t\t\t\tthis.setState({ enableGroupActionMessages: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableGroupActionMessages !== false) {\n\t\t\t\t\tthis.setState({ enableGroupActionMessages: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableCallActionMessages = () => {\n\t\tthis.getContext()\n\t\t\t.FeatureRestriction.isCallActionMessagesEnabled()\n\t\t\t.then(response => {\n\t\t\t\t/**\n\t\t\t\t * Don't update state if the response has the same value\n\t\t\t\t */\n\t\t\t\tif (response !== this.state.enableCallActionMessages) {\n\t\t\t\t\tthis.setState({ enableCallActionMessages: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableCallActionMessages !== false) {\n\t\t\t\t\tthis.setState({ enableCallActionMessages: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableSendingOneOnOneMessage = () => {\n\t\tthis.getContext()\n\t\t\t.FeatureRestriction.isOneOnOneChatEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enableSendingOneOnOneMessage) {\n\t\t\t\t\tthis.setState({ enableSendingOneOnOneMessage: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableSendingOneOnOneMessage !== false) {\n\t\t\t\t\tthis.setState({ enableSendingOneOnOneMessage: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableSendingGroupMessage = () => {\n\t\tthis.getContext()\n\t\t\t.FeatureRestriction.isGroupChatEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enableSendingGroupMessage) {\n\t\t\t\t\tthis.setState({ enableSendingGroupMessage: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableSendingGroupMessage !== false) {\n\t\t\t\t\tthis.setState({ enableSendingGroupMessage: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableHideDeletedMessages = () => {\n\t\tthis.getContext()\n\t\t\t.FeatureRestriction.isHideDeletedMessagesEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enableHideDeletedMessages) {\n\t\t\t\t\tthis.setState({ enableHideDeletedMessages: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableHideDeletedMessages !== false) {\n\t\t\t\t\tthis.setState({ enableHideDeletedMessages: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tgetContext = () => {\n\t\tif (this.props._parent.length) {\n\t\t\treturn this.context;\n\t\t} else {\n\t\t\treturn this.contextProviderRef.state;\n\t\t}\n\t};\n\n\tactionHandler = (action, messages, key, group, options) => {\n\n\t\tswitch (action) \n\t\t{\n\t\t\tcase enums.ACTIONS[\"CUSTOM_MESSAGE_RECEIVED\"]:\n\t\t\tcase enums.ACTIONS[\"MESSAGE_RECEIVED\"]:\n\t\t\t\t{\n\t\t\t\t\tconst message = messages[0];\n\t\t\t\t\tif (message.parentMessageId) {\n\t\t\t\t\t\tthis.updateReplyCount(messages);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.smartReplyPreview(messages);\n\t\t\t\t\t\tthis.appendMessage(messages);\n\t\t\t\t\t}\n\n\t\t\t\t\tSoundManager.play(enums.CONSTANTS.AUDIO[\"INCOMING_MESSAGE\"], this.getContext());\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"MESSAGE_READ\"]: {\n\t\t\t\tif (this.props?.actionGenerated) {\n\t\t\t\t\tthis.props?.actionGenerated(action, messages);\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase enums.ACTIONS[\"MESSAGE_COMPOSED\"]: {\n\t\t\t\tthis.appendMessage(messages);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase enums.ACTIONS[\"MESSAGE_SENT\"]:\n\t\t\t\tthis.messageSent(messages);\n\t\t\t\tCometChatEvent.triggerHandler(\"updateLastMessage\", { ...messages[0] });\n\t\t\t\t//this.getContext().setLastMessage(messages[0]);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"ERROR_IN_SENDING_MESSAGE\"]:\n\t\t\t\tthis.messageSent(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"ON_MESSAGE_READ_DELIVERED\"]:\n\t\t\t\tthis.updateMessages(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"ON_MESSAGE_EDITED\"]: {\n\t\t\t\tthis.updateMessages(messages);\n\t\t\t\t//update the parent message of thread message\n\t\t\t\tthis.updateParentThreadedMessage(key, \"edit\");\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase enums.ACTIONS[\"ON_MESSAGE_DELETED\"]: {\n\t\t\t\tthis.removeMessages(messages);\n\t\t\t\t//remove the thread message\n\t\t\t\tthis.updateParentThreadedMessage(messages[0], \"delete\");\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase enums.ACTIONS[\"MESSAGES_FETCHED\"]:\n\t\t\t\tthis.prependMessages(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"MESSAGES_INITIAL_FETCH\"]:\n\t\t\t\tthis.prependMessagesAndScrollToBottom(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"REFRESHING_MESSAGES\"]:\n\t\t\t\tthis.refreshingMessages();\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"MESSAGES_REFRESHED\"]:\n\t\t\t\tthis.messageRefreshed(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"NEW_MESSAGES\"]:\n\t\t\t\tthis.newMessagesArrived(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"CLEAR_UNREAD_MESSAGES\"]:\n\t\t\t\tthis.jumpToMessages(true);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"DELETE_MESSAGE\"]:\n\t\t\t\tthis.deleteMessage(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"EDIT_MESSAGE\"]:\n\t\t\t\tthis.editMessage(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"MESSAGE_EDITED\"]:\n\t\t\t\tthis.messageEdited(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"CLEAR_EDIT_PREVIEW\"]:\n\t\t\t\tthis.clearEditPreview();\n\t\t\t\tbreak;\n\t\t\tcase enums.GROUP_MEMBER_SCOPE_CHANGED:\n\t\t\tcase enums.GROUP_MEMBER_KICKED:\n\t\t\tcase enums.GROUP_MEMBER_BANNED:\n\t\t\tcase enums.GROUP_MEMBER_UNBANNED:\n\t\t\tcase enums.GROUP_MEMBER_ADDED:\n\t\t\tcase enums.GROUP_MEMBER_LEFT:\n\t\t\tcase enums.GROUP_MEMBER_JOINED:\n\t\t\t\tthis.groupUpdated(action, messages, group, options);\n\t\t\t\tbreak;\n\t\t\tcase enums.INCOMING_CALL_RECEIVED:\n\t\t\tcase enums.INCOMING_CALL_CANCELLED:\n\t\t\tcase enums.OUTGOING_CALL_ACCEPTED:\n\t\t\tcase enums.OUTGOING_CALL_REJECTED:\n\t\t\t\tthis.appendCallMessage(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"VIEW_ORIGINAL_IMAGE\"]:\n\t\t\t\tthis.toggleOriginalImageView(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"INITIATE_AUDIO_CALL\"]:\n\t\t\t\tthis.audioCall();\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"INITIATE_VIDEO_CALL\"]:\n\t\t\t\tthis.videoCall();\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"VIEW_DETAIL\"]:\n\t\t\tcase enums.ACTIONS[\"CLOSE_GROUP_DETAIL\"]:\n\t\t\tcase enums.ACTIONS[\"CLOSE_USER_DETAIL\"]:\n\t\t\t\tthis.toggleDetailView();\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"TOGGLE_SIDEBAR\"]:\n\t\t\t\tthis.toggleDetailView();\n\t\t\t\tthis.props.actionGenerated(action);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"SEND_LIVE_REACTION\"]:\n\t\t\t\tthis.toggleReaction(true);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"STOP_LIVE_REACTION\"]:\n\t\t\t\tthis.toggleReaction(false);\n\t\t\t\tbreak;\n\t\t\tcase enums.TRANSIENT_MESSAGE_RECEIVED:\n\t\t\t\tthis.liveReactionReceived(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"REACT_TO_MESSAGE\"]:\n\t\t\t\tthis.reactToMessage(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"OUTGOING_CALL_ACCEPTED\"]:\n\t\t\tcase enums.ACTIONS[\"USER_JOINED_CALL\"]:\n\t\t\tcase enums.ACTIONS[\"USER_LEFT_CALL\"]:\n\t\t\tcase enums.ACTIONS[\"OUTGOING_CALL_ENDED\"]:\n\t\t\tcase enums.ACTIONS[\"OUTGOING_CALL_REJECTED\"]:\n\t\t\tcase enums.ACTIONS[\"OUTGOING_CALL_CANCELLED\"]:\n\t\t\tcase enums.ACTIONS[\"INCOMING_CALL_ACCEPTED\"]:\n\t\t\tcase enums.ACTIONS[\"INCOMING_CALL_ENDED\"]:\n\t\t\tcase enums.ACTIONS[\"INCOMING_CALL_REJECTED\"]:\n\t\t\tcase enums.ACTIONS[\"DIRECT_CALL_ENDED\"]:\n\t\t\tcase enums.ACTIONS[\"DIRECT_CALL_ERROR\"]:\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"JOIN_DIRECT_CALL\"]: {\n\t\t\t\t//if used in a chat widget, trigger the event to the app component as directcall component is included outside of iframe\n\t\t\t\tif (Object.keys(this.props.widgetsettings).length) {\n\t\t\t\t\tthis.props.actionGenerated(action, messages);\n\t\t\t\t} else {\n\t\t\t\t\tconst sessionID = this.getContext().type === CometChat.ACTION_TYPE.TYPE_GROUP ? this.getContext().item.guid : null;\n\t\t\t\t\tthis.outgoingDirectCallRef.joinCall(sessionID);\n\t\t\t\t}\n\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase enums.ACTIONS[\"VIEW_THREADED_MESSAGE\"]:\n\t\t\t\tthis.viewThreadedMessage(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"THREAD_MESSAGE_COMPOSED\"]:\n\t\t\t\tthis.threadMessageComposed(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"CLOSE_THREADED_MESSAGE\"]:\n\t\t\t\tthis.closeThreadedMessage();\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"ADD_GROUP_MEMBER_SUCCESS\"]:\n\t\t\t\tthis.appendMemberAddedMessage(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"UNBAN_GROUP_MEMBER_SUCCESS\"]:\n\t\t\t\tthis.appendMemberUnbannedMessage(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"SCOPECHANGE_GROUPMEMBER_SUCCESS\"]:\n\t\t\t\tthis.appendMemberScopeChangedMessage(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"KICK_GROUPMEMBER_SUCCESS\"]:\n\t\t\t\tthis.appendMemberKickedMessage(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"BAN_GROUPMEMBER_SUCCESS\"]:\n\t\t\t\tthis.appendMemberBannedMessage(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"ERROR\"]:\n\t\t\t\tthis.errorHandler(key);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"INFO\"]:\n\t\t\t\tthis.infoMessageHandler(key);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\terrorHandler = errorCode => {\n\t\tif (typeof this.toastRef.setError === \"function\") {\n\t\t\tthis.toastRef?.setError(errorCode);\n\t\t}\n\t};\n\n\tinfoMessageHandler = infoCode => {\n\t\tif (typeof this.toastRef.setInfo === \"function\") {\n\t\t\tthis.toastRef?.setInfo(infoCode);\n\t\t}\n\t};\n\n\tappendMemberAddedMessage = messages => {\n\t\t//if group action messages are disabled\n\t\tif (this.state.enableGroupActionMessages === false) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst messageList = [];\n\t\tmessages.forEach(eachMember => {\n\t\t\tconst sentAt = (new Date() / 1000) | 0;\n\t\t\tconst messageObj = {\n\t\t\t\treceiver: { ...this.context.item },\n\t\t\t\treceiverId: this.context.item.guid,\n\t\t\t\treceiverType: CometChat.RECEIVER_TYPE.GROUP,\n\t\t\t\tsender: { ...this.loggedInUser },\n\t\t\t\tcategory: CometChat.CATEGORY_ACTION,\n\t\t\t\ttype: CometChat.ACTION_TYPE.TYPE_GROUP_MEMBER,\n\t\t\t\tsentAt: sentAt,\n\t\t\t\taction: CometChat.ACTION_TYPE.MEMBER_ADDED,\n\t\t\t\tactionBy: { ...this.loggedInUser },\n\t\t\t\tactionOn: { ...eachMember },\n\t\t\t\tactionFor: { ...this.context.item },\n\t\t\t};\n\n\t\t\tmessageList.push(messageObj);\n\t\t});\n\n\t\tthis.appendMessage(messageList);\n\t};\n\n\tappendMemberUnbannedMessage = messages => {\n\t\t//if group action messages are disabled\n\t\tif (this.state.enableGroupActionMessages === false) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst messageList = [];\n\t\tmessages.forEach(eachMember => {\n\t\t\tconst sentAt = (new Date() / 1000) | 0;\n\t\t\tconst messageObj = {\n\t\t\t\treceiver: { ...this.context.item },\n\t\t\t\treceiverId: this.context.item.guid,\n\t\t\t\treceiverType: CometChat.RECEIVER_TYPE.GROUP,\n\t\t\t\tsender: { ...this.loggedInUser },\n\t\t\t\tcategory: CometChat.CATEGORY_ACTION,\n\t\t\t\ttype: CometChat.ACTION_TYPE.TYPE_GROUP_MEMBER,\n\t\t\t\tsentAt: sentAt,\n\t\t\t\taction: CometChat.ACTION_TYPE.MEMBER_UNBANNED,\n\t\t\t\tactionBy: { ...this.loggedInUser },\n\t\t\t\tactionOn: { ...eachMember },\n\t\t\t};\n\n\t\t\tmessageList.push(messageObj);\n\t\t});\n\n\t\tthis.appendMessage(messageList);\n\t};\n\n\tappendMemberScopeChangedMessage = messages => {\n\t\t//if group action messages are disabled\n\t\tif (this.state.enableGroupActionMessages === false) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst messageList = [];\n\t\tmessages.forEach(eachMember => {\n\t\t\tconst newScope = Translator.translate(eachMember.scope, this.props.lang);\n\n\t\t\tconst sentAt = (new Date() / 1000) | 0;\n\t\t\tconst messageObj = {\n\t\t\t\treceiver: { ...this.context.item },\n\t\t\t\treceiverId: this.context.item.guid,\n\t\t\t\treceiverType: CometChat.RECEIVER_TYPE.GROUP,\n\t\t\t\tsender: { ...this.loggedInUser },\n\t\t\t\tcategory: CometChat.CATEGORY_ACTION,\n\t\t\t\ttype: CometChat.ACTION_TYPE.TYPE_GROUP_MEMBER,\n\t\t\t\tsentAt: sentAt,\n\t\t\t\taction: CometChat.ACTION_TYPE.MEMBER_SCOPE_CHANGED,\n\t\t\t\tactionBy: { ...this.loggedInUser },\n\t\t\t\tactionOn: { ...eachMember },\n\t\t\t\tnewScope: newScope,\n\t\t\t};\n\t\t\tmessageList.push(messageObj);\n\t\t});\n\n\t\tthis.appendMessage(messageList);\n\t};\n\n\tappendMemberKickedMessage = messages => {\n\t\t//if group action messages are disabled\n\t\tif (this.state.enableGroupActionMessages === false) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst messageList = [];\n\t\tmessages.forEach(eachMember => {\n\t\t\tconst sentAt = (new Date() / 1000) | 0;\n\t\t\tconst messageObj = {\n\t\t\t\treceiver: { ...this.context.item },\n\t\t\t\treceiverId: this.context.item.guid,\n\t\t\t\treceiverType: CometChat.RECEIVER_TYPE.GROUP,\n\t\t\t\tsender: { ...this.loggedInUser },\n\t\t\t\tcategory: CometChat.CATEGORY_ACTION,\n\t\t\t\ttype: CometChat.ACTION_TYPE.TYPE_GROUP_MEMBER,\n\t\t\t\tsentAt: sentAt,\n\t\t\t\taction: CometChat.ACTION_TYPE.MEMBER_KICKED,\n\t\t\t\tactionBy: { ...this.loggedInUser },\n\t\t\t\tactionOn: { ...eachMember },\n\t\t\t\tactionFor: { ...this.context.item },\n\t\t\t};\n\t\t\tmessageList.push(messageObj);\n\t\t});\n\n\t\tthis.appendMessage(messageList);\n\t};\n\n\tappendMemberBannedMessage = messages => {\n\t\t//if group action messages are disabled\n\t\tif (this.state.enableGroupActionMessages === false) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst messageList = [];\n\t\tmessages.forEach(eachMember => {\n\t\t\tconst sentAt = (new Date() / 1000) | 0;\n\t\t\tconst messageObj = {\n\t\t\t\treceiver: { ...this.context.item },\n\t\t\t\treceiverId: this.context.item.guid,\n\t\t\t\treceiverType: CometChat.RECEIVER_TYPE.GROUP,\n\t\t\t\tsender: { ...this.loggedInUser },\n\t\t\t\tcategory: CometChat.CATEGORY_ACTION,\n\t\t\t\ttype: CometChat.ACTION_TYPE.TYPE_GROUP_MEMBER,\n\t\t\t\tsentAt: sentAt,\n\t\t\t\taction: CometChat.ACTION_TYPE.MEMBER_BANNED,\n\t\t\t\tactionBy: { ...this.loggedInUser },\n\t\t\t\tactionOn: { ...eachMember },\n\t\t\t\tactionFor: { ...this.context.item },\n\t\t\t};\n\t\t\tmessageList.push(messageObj);\n\t\t});\n\n\t\tthis.appendMessage(messageList);\n\t};\n\n\ttoggleOriginalImageView = message => {\n\t\tthis.setState({ viewOriginalImage: message });\n\t};\n\n\ttoggleDetailView = () => {\n\t\tlet viewdetail = !this.state.viewdetailscreen;\n\t\tthis.setState({ viewdetailscreen: viewdetail, threadmessageview: false });\n\t};\n\n\tviewThreadedMessage = parentMessage => {\n\t\tconst message = { ...parentMessage };\n\t\tconst threaditem = { ...this.getContext().item };\n\t\tthis.setState({\n\t\t\tthreadmessageview: true,\n\t\t\tthreadmessageparent: message,\n\t\t\tthreadmessageitem: threaditem,\n\t\t\tthreadmessagetype: this.getContext().type,\n\t\t\tviewdetailscreen: false,\n\t\t});\n\t};\n\n\tthreadMessageComposed = messages => {\n\t\tif (this.getContext().type !== this.state.threadmessagetype) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif ((this.state.threadmessagetype === CometChat.ACTION_TYPE.TYPE_GROUP && this.getContext().item.guid !== this.state.threadmessageitem.guid) || (this.state.threadmessagetype === CometChat.ACTION_TYPE.TYPE_USER && this.getContext().item.uid !== this.state.threadmessageitem.uid)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.updateReplyCount(messages);\n\t};\n\n\tcloseThreadedMessage = () => {\n\t\tthis.setState({ threadmessageview: false, viewdetailscreen: false });\n\t};\n\n\t/*\n\tUpdating parent message of threaded conversation, when the message is edited or deleted\n\t*/\n\tupdateParentThreadedMessage = (message, action) => {\n\t\tif (this.state.threadmessageview === false || message.id !== this.state.threadmessageparent.id) {\n\t\t\treturn false;\n\t\t}\n\n\t\tif (action === \"delete\") {\n\t\t\tthis.setState({ threadmessageparent: { ...message }, threadmessageview: false });\n\t\t} else {\n\t\t\tthis.setState({ threadmessageparent: { ...message } });\n\t\t}\n\t};\n\n\tgetReceiverDetails = () => {\n\t\tlet receiverId;\n\t\tlet receiverType;\n\n\t\tif (this.getContext().type === CometChat.ACTION_TYPE.TYPE_USER) {\n\t\t\treceiverId = this.getContext().item.uid;\n\t\t\treceiverType = CometChat.RECEIVER_TYPE.USER;\n\t\t} else if (this.getContext().type === CometChat.ACTION_TYPE.TYPE_GROUP) {\n\t\t\treceiverId = this.getContext().item.guid;\n\t\t\treceiverType = CometChat.RECEIVER_TYPE.GROUP;\n\t\t}\n\n\t\treturn { receiverId: receiverId, receiverType: receiverType };\n\t};\n\n\taudioCall = () => {\n\t\tconst { receiverId, receiverType } = this.getReceiverDetails();\n\t\tconst call = new CometChat.Call(receiverId, CometChat.CALL_TYPE.AUDIO, receiverType);\n\t\tCometChat.initiateCall(call)\n\t\t\t.then(outgoingCall => {\n\t\t\t\t//when this component is part of chat widget trigger an event.. (outgoingcall component is used separately in chat widget)\n\t\t\t\tif (Object.keys(this.props.widgetsettings).length) {\n\t\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"START_AUDIO_CALL\"], outgoingCall);\n\t\t\t\t} else {\n\t\t\t\t\tthis.outgoingCallRef.startCall(outgoingCall);\n\t\t\t\t\tthis.appendCallMessage(outgoingCall);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => this.errorHandler(\"SOMETHING_WRONG\"));\n\t};\n\n\tvideoCall = () => {\n\t\t/*\n\t\tDirect calling for groups\n\t\t*/\n\t\tif (this.getContext().type === CometChat.RECEIVER_TYPE.GROUP) {\n\t\t\tif (Object.keys(this.props.widgetsettings).length) {\n\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"START_DIRECT_CALL\"]);\n\t\t\t} else {\n\t\t\t\tconst sessionID = this.getContext().type === CometChat.ACTION_TYPE.TYPE_GROUP ? this.getContext().item.guid : null;\n\t\t\t\tthis.outgoingDirectCallRef.startCall(sessionID);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t/*\n\t\tDefault calling for one-on-one\n\t\t*/\n\t\tconst { receiverId, receiverType } = this.getReceiverDetails();\n\t\tconst call = new CometChat.Call(receiverId, CometChat.CALL_TYPE.VIDEO, receiverType);\n\t\tCometChat.initiateCall(call)\n\t\t\t.then(outgoingCall => {\n\t\t\t\t//when this component is part of chat widget trigger an event.. (outgoingcall component is used separately in chat widget)\n\t\t\t\tif (Object.keys(this.props.widgetsettings).length) {\n\t\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"START_VIDEO_CALL\"], outgoingCall);\n\t\t\t\t} else {\n\t\t\t\t\tthis.outgoingCallRef.startCall(outgoingCall);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => this.errorHandler(\"SOMETHING_WRONG\"));\n\t};\n\n\ttoggleReaction = flag => {\n\t\tthis.setState({ liveReaction: flag });\n\t};\n\n\tliveReactionReceived = reaction => {\n\n\t\tconst stopReaction = () => {\n\t\t\tthis.toggleReaction(false);\n\t\t}\n\n\t\tif (reaction.data.type === enums.CONSTANTS[\"METADATA_TYPE_LIVEREACTION\"]) {\n\n\t\t\tthis.reactionName = reaction.data.reaction;\n\t\t\tthis.toggleReaction(true);\n\n\t\t\tconst liveReactionInterval = enums.CONSTANTS[\"LIVE_REACTION_INTERVAL\"];\n\t\t\tsetTimeout(stopReaction, liveReactionInterval);\n\t\t}\n\t};\n\n\tdeleteMessage = message => {\n\t\tconst messageId = message.id;\n\t\tCometChat.deleteMessage(messageId)\n\t\t\t.then(deletedMessage => {\n\t\t\t\t//remove edit preview when message is deleted\n\t\t\t\tif (deletedMessage.id === this.state.messageToBeEdited.id) {\n\t\t\t\t\tthis.setState({ messageToBeEdited: \"\" });\n\t\t\t\t}\n\n\t\t\t\tconst messageList = [...this.state.messageList];\n\t\t\t\tlet messageKey = messageList.findIndex(m => m.id === message.id);\n\n\t\t\t\tif (messageList.length - messageKey === 1 && !message.replyCount) {\n\t\t\t\t\tCometChatEvent.triggerHandler(\"updateLastMessage\", { ...deletedMessage });\n\t\t\t\t\t//this.getContext().setLastMessage(deletedMessage);\n\t\t\t\t}\n\n\t\t\t\tthis.removeMessages([deletedMessage]);\n\t\t\t\tthis.updateParentThreadedMessage(deletedMessage, \"delete\");\n\t\t\t})\n\t\t\t.catch(error => this.errorHandler(\"SOMETHING_WRONG\"));\n\t};\n\n\teditMessage = message => {\n\t\tthis.setState({ messageToBeEdited: message, replyPreview: null });\n\t};\n\n\tmessageEdited = message => {\n\t\tconst messageList = [...this.state.messageList];\n\t\tlet messageKey = messageList.findIndex(m => m.id === message.id);\n\t\tif (messageKey > -1) {\n\t\t\tconst messageObj = messageList[messageKey];\n\n\t\t\tconst newMessageObj = Object.assign({}, messageObj, message);\n\n\t\t\tmessageList.splice(messageKey, 1, newMessageObj);\n\t\t\tthis.updateMessages(messageList);\n\n\t\t\tthis.updateParentThreadedMessage(newMessageObj, \"edit\");\n\n\t\t\tif (messageList.length - messageKey === 1 && !message.replyCount) {\n\t\t\t\tCometChatEvent.triggerHandler(\"updateLastMessage\", { ...newMessageObj });\n\t\t\t\t//this.getContext().setLastMessage(newMessageObj);\n\t\t\t}\n\t\t}\n\t};\n\n\tmessageSent = messages => {\n\t\tconst message = messages[0];\n\t\tconst messageList = [...this.state.messageList];\n\n\t\tlet messageKey = messageList.findIndex(m => m._id === message._id);\n\t\tif (messageKey > -1) {\n\t\t\tconst newMessageObj = { ...message };\n\n\t\t\tmessageList.splice(messageKey, 1, newMessageObj);\n\t\t\tmessageList.sort((a, b) => a.id - b.id);\n\t\t\tthis.setState({ messageList: messageList, scrollToBottom: true });\n\t\t}\n\t};\n\n\trefreshingMessages = () => {\n\t\tthis.setState({ messageList: [], messageToBeEdited: \"\", replyPreview: null, liveReaction: false, messageToReact: null });\n\t\tCometChatEvent.triggerHandler(enums.EVENTS[\"CLEAR_UNREAD_MESSAGES\"], {});\n\t};\n\n\tmessageRefreshed = messages => {\n\t\tconst messageList = [...messages];\n\t\tthis.setState({ messageList: messageList, scrollToBottom: true });\n\t};\n\n\tnewMessagesArrived = newMessage => {\n\t\tlet unreadMessages = [...this.state.unreadMessages];\n\t\tunreadMessages.push(newMessage[0]);\n\n\t\tthis.setState({ unreadMessages: unreadMessages });\n\n\t\tCometChatEvent.triggerHandler(enums.EVENTS[\"NEW_MESSAGES\"], { unreadMessages: unreadMessages });\n\t};\n\n\tmarkMessagesAsRead = scrollToBottom => {\n\t\tif (this.state.unreadMessages.length === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet unreadMessages = [...this.state.unreadMessages];\n\t\tlet messageList = [...this.state.messageList];\n\n\t\tunreadMessages.forEach(unreadMessage => {\n\t\t\tif (unreadMessage.receiverType === CometChat.RECEIVER_TYPE.USER) {\n\t\t\t\tif (this.messageListRef) {\n\t\t\t\t\tmessageList.push(unreadMessage);\n\t\t\t\t\tthis.messageListRef.markMessageAsRead(unreadMessage, CometChat.ACTION_TYPE.TYPE_USER);\n\t\t\t\t}\n\t\t\t} else if (unreadMessage.receiverType === CometChat.RECEIVER_TYPE.GROUP) {\n\t\t\t\tif (this.messageListRef) {\n\t\t\t\t\tmessageList.push(unreadMessage);\n\t\t\t\t\tthis.messageListRef.markMessageAsRead(unreadMessage, CometChat.ACTION_TYPE.TYPE_GROUP);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis.setState({ messageList: messageList, scrollToBottom: scrollToBottom, unreadMessages: [] });\n\t};\n\n\tjumpToMessages = () => {\n\t\tif (this.state.unreadMessages.length === 0) {\n\t\t\treturn false;\n\t\t}\n\n\t\tlet unreadMessages = [...this.state.unreadMessages];\n\t\tlet messageList = [...this.state.messageList];\n\t\tmessageList = messageList.concat(unreadMessages);\n\n\t\tCometChatEvent.triggerHandler(enums.EVENTS[\"CLEAR_UNREAD_MESSAGES\"], {});\n\n\t\tif (messageList.length > enums.CONSTANTS[\"MAX_MESSAGE_COUNT\"]) {\n\t\t\tif (this.messageListRef) {\n\t\t\t\tthis.messageListRef.reInitializeMessageBuilder();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.markMessagesAsRead(true);\n\t\t}\n\t};\n\n\t//messages are deleted\n\tremoveMessages = messages => {\n\t\tconst deletedMessage = messages[0];\n\t\tconst messagelist = [...this.state.messageList];\n\n\t\tlet messageKey = messagelist.findIndex(message => message.id === deletedMessage.id);\n\t\tif (messageKey > -1) {\n\t\t\tif (this.state.enableHideDeletedMessages) {\n\t\t\t\tmessagelist.splice(messageKey, 1);\n\t\t\t} else {\n\t\t\t\tlet messageObj = { ...messagelist[messageKey] };\n\t\t\t\tlet newMessageObj = Object.assign({}, messageObj, deletedMessage);\n\n\t\t\t\tmessagelist.splice(messageKey, 1, newMessageObj);\n\t\t\t}\n\n\t\t\tthis.setState({ messageList: messagelist, scrollToBottom: false });\n\t\t}\n\t};\n\n\t//messages are fetched, scroll to bottom\n\tprependMessagesAndScrollToBottom = messages => {\n\t\tconst messageList = [...messages, ...this.state.messageList];\n\t\tthis.setState({ messageList: messageList, scrollToBottom: true });\n\t};\n\n\t//messages are fetched from backend\n\tprependMessages = messages => {\n\t\tconst messageList = [...messages, ...this.state.messageList];\n\t\tthis.setState({ messageList: messageList, scrollToBottom: false });\n\t};\n\n\t//message is received or composed & sent\n\tappendMessage = message => {\n\t\tlet messages = [...this.state.messageList, ...message];\n\t\tthis.setState({ messageList: messages, scrollToBottom: true });\n\t};\n\n\t//message status is updated\n\tupdateMessages = messages => {\n\t\tthis.setState({ messageList: messages, scrollToBottom: false });\n\t};\n\n\tgroupUpdated = (action, message, group, options) => {\n\t\t//if group action messages are disabled\n\t\tif (this.state.enableGroupActionMessages === true) {\n\t\t\tthis.appendMessage([message]);\n\t\t}\n\n\t\tthis.props.actionGenerated(action, message, group, options);\n\t};\n\n\tappendCallMessage = message => {\n\t\t//if call action messages are disabled\n\t\tif (this.state.enableCallActionMessages === false) {\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.appendMessage([message]);\n\t};\n\n\tupdateReplyCount = messages => {\n\t\tconst receivedMessage = messages[0];\n\n\t\tlet messageList = [...this.state.messageList];\n\t\tlet messageKey = messageList.findIndex(m => m.id === receivedMessage.parentMessageId);\n\t\tif (messageKey > -1) {\n\t\t\tconst messageObj = messageList[messageKey];\n\t\t\tlet replyCount = messageObj.hasOwnProperty(\"replyCount\") ? messageObj.replyCount : 0;\n\t\t\treplyCount = replyCount + 1;\n\t\t\tconst newMessageObj = Object.assign({}, messageObj, { replyCount: replyCount });\n\n\t\t\tmessageList.splice(messageKey, 1, newMessageObj);\n\t\t\tthis.setState({ messageList: messageList, scrollToBottom: false });\n\t\t}\n\t};\n\n\tsmartReplyPreview = messages => {\n\t\tconst message = messages[0];\n\t\tif (message.sender.uid === this.loggedInUser.uid || message.category === CometChat.CATEGORY_CUSTOM) {\n\t\t\treturn false;\n\t\t}\n\n\t\t/**\n\t\t * If smart-replies feature is enabled\n\t\t */\n\t\tthis.getContext()\n\t\t\t.FeatureRestriction.isSmartRepliesEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response === true) {\n\t\t\t\t\tconst smartReplyData = checkMessageForExtensionsData(message, \"smart-reply\");\n\t\t\t\t\tif (smartReplyData && smartReplyData.hasOwnProperty(\"error\") === false) {\n\t\t\t\t\t\tthis.setState({ replyPreview: message });\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.setState({ replyPreview: null });\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tclearEditPreview = () => {\n\t\tthis.setState({ messageToBeEdited: \"\" });\n\t};\n\n\treactToMessage = message => {\n\t\tthis.setState({ messageToReact: message });\n\n\t\tif (this.composerRef) {\n\t\t\tthis.composerRef.toggleEmojiPicker();\n\t\t}\n\t};\n\n\trender() {\n\t\t/**\n\t\t * If used as standalone component\n\t\t */\n\t\tif (this.props._parent.trim().length === 0 && this.props.chatWithUser.trim().length === 0 && this.props.chatWithGroup.trim().length === 0) {\n\t\t\treturn (\n\t\t\t\t (this.contextProviderRef = el)} _component={enums.CONSTANTS[\"MESSAGES_COMPONENT\"]} user={this.props.chatWithUser} group={this.props.chatWithGroup}>\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t);\n\t\t} else if (this.props._parent.trim().length && Object.keys(this.getContext().item).length === 0) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet messageComposer = (\n\t\t\t {\n\t\t\t\t\tthis.composerRef = el;\n\t\t\t\t}}\n\t\t\t\tmessageToBeEdited={this.state.messageToBeEdited}\n\t\t\t\treplyPreview={this.state.replyPreview}\n\t\t\t\treaction={this.reactionName}\n\t\t\t\tmessageToReact={this.state.messageToReact}\n\t\t\t\tactionGenerated={this.actionHandler} />\n\t\t);\n\n\t\tlet newMessageIndicator = null;\n\t\tif (this.state.unreadMessages.length) {\n\t\t\tconst unreadMessageCount = this.state.unreadMessages.length;\n\t\t\tconst messageText = unreadMessageCount > 1 ? `${unreadMessageCount} ${Translator.translate(\"NEW_MESSAGES\", this.props.lang)}` : `${unreadMessageCount} ${Translator.translate(\"NEW_MESSAGE\", this.props.lang)}`;\n\t\t\tnewMessageIndicator = (\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\t//if sending messages are disabled for chat wigdet in dashboard\n\t\tif ((this.getContext()?.type === CometChat.ACTION_TYPE.TYPE_USER && this.state.enableSendingOneOnOneMessage === false) || (this.getContext()?.type === CometChat.ACTION_TYPE.TYPE_GROUP && this.state.enableSendingGroupMessage === false)) {\n\t\t\tmessageComposer = null;\n\t\t}\n\n\t\tlet liveReactionView = null;\n\t\tif (this.state.liveReaction) {\n\t\t\tliveReactionView = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\t/*\n\t\tIf used as a standalone component\n\t\t*/\n\t\tlet incomingCallView = null;\n\t\tlet incomingDirectCallView = null;\n\t\tif (this.props._parent.trim().length === 0) {\n\t\t\tincomingCallView = ;\n\n\t\t\tincomingDirectCallView = ;\n\t\t}\n\n\t\t//don't include it when opened in chat widget\n\t\tlet outgoingDirectCallView = null;\n\t\tlet outgoingCallView = null;\n\t\tif (Object.keys(this.props.widgetsettings).length === 0) {\n\t\t\toutgoingCallView = (this.outgoingCallRef = el)} lang={this.props.lang} actionGenerated={this.actionHandler} />;\n\t\t\toutgoingDirectCallView = (this.outgoingDirectCallRef = el)} lang={this.props.lang} actionGenerated={this.actionHandler} />;\n\t\t}\n\n\t\tlet detailScreen = null;\n\t\tif (this.state.viewdetailscreen) {\n\t\t\tif (this.getContext().type === CometChat.ACTION_TYPE.TYPE_USER) {\n\t\t\t\tdetailScreen = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t} else if (this.getContext().type === CometChat.ACTION_TYPE.TYPE_GROUP) {\n\t\t\t\tdetailScreen = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet threadMessageView = null;\n\t\tif (this.state.threadmessageview) {\n\t\t\tthreadMessageView = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tlet originalImageView = null;\n\t\tif (this.state.viewOriginalImage) {\n\t\t\toriginalImageView = this.toggleOriginalImageView(false)} message={this.state.viewOriginalImage} />;\n\t\t}\n\n\t\tlet messageComponent = (\n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t {\n\t\t\t\t\t\t\tthis.messageListRef = el;\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tmessages={this.state.messageList}\n\t\t\t\t\t\tscrollToBottom={this.state.scrollToBottom}\n\t\t\t\t\t\tactionGenerated={this.actionHandler}\n\t\t\t\t\t/>\n\t\t\t\t\t{liveReactionView}\n\t\t\t\t\t{messageComposer}\n\t\t\t\t\t{newMessageIndicator}\n\t\t\t\t
    \n\t\t\t\t (this.toastRef = el)} lang={this.props.lang} />\n\t\t\t\t{originalImageView}\n\t\t\t\t{detailScreen}\n\t\t\t\t{threadMessageView}\n\t\t\t\t{incomingCallView}\n\t\t\t\t{outgoingCallView}\n\t\t\t\t{incomingDirectCallView}\n\t\t\t\t{outgoingDirectCallView}\n\t\t\t
    \n\t\t);\n\n\t\tlet messageWrapper = messageComponent;\n\t\t/*\n\t\tIf used as a standalone component\n\t\t**/\n\t\tif (this.props._parent.trim().length === 0) {\n\t\t\tmessageWrapper = (\n\t\t\t\t (this.contextProviderRef = el)} user={this.props.chatWithUser} group={this.props.chatWithGroup} language={this.props.lang}>\n\t\t\t\t\t
    {messageComponent}
    \n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\treturn messageWrapper;\n\t}\n}\n\n// Specifies the default values for props:\nCometChatMessages.defaultProps = {\n\tlang: Translator.getDefaultLanguage(),\n\ttheme: theme,\n\t_parent: \"\",\n\twidgetsettings: {},\n\tchatWithUser: \"\",\n\tchatWithGroup: \"\",\n};\n\nCometChatMessages.propTypes = {\n\tlang: PropTypes.string,\n\ttheme: PropTypes.object,\n\t_parent: PropTypes.string,\n\twidgetsettings: PropTypes.object,\n\tchatWithUser: PropTypes.string,\n\tchatWithGroup: PropTypes.string,\n};\n\nexport {CometChatMessages};","export const wrapperStyle = context => {\n\n\treturn {\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"column\",\n\t\theight: \"100%\",\n\t\tboxSizing: \"border-box\",\n\t\tfontFamily: `${context.theme.fontFamily}`,\n\t\t\"*\": {\n\t\t\tboxSizing: \"border-box\",\n\t\t\tfontFamily: `${context.theme.fontFamily}`,\n\t\t},\n\t};\n};\n\nexport const headerStyle = context => {\n\n\treturn {\n\t\tpadding: \"16px\",\n\t\twidth: \"100%\",\n\t\tbackgroundColor: `${context.theme.backgroundColor.white}`,\n\t\tzIndex: \"1\",\n\t\tborderBottom: `1px solid ${context.theme.borderColor.primary}`,\n\t\theight: \" 69px\",\n\t\tdisplay: \"flex\",\n\t};\n};\n\nexport const headerWrapperStyle = () => {\n\n return {\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n width: \"100%\",\n }\n}\n\nexport const headerDetailStyle = () => {\n\n return {\n display: \"flex\",\n flexDirection: \"column\",\n width: \"calc(100% - 40px)\",\n }\n}\n\nexport const headerTitleStyle = () => {\n\n return {\n margin: \"0\",\n fontSize: \"15px\",\n fontWight: \"600\",\n lineHeight: \"22px\",\n width: \"100%\",\n }\n}\n\nexport const headerNameStyle = () => {\n\n return {\n fontSize: \"13px\",\n lineHeight: \"20px\",\n width: \"100%\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n }\n}\n\nexport const headerCloseStyle = (img, context) => {\n\n return {\n cursor: \"pointer\",\n width: \"24px\",\n height: \"24px\",\n mask: `url(${img}) center center no-repeat`,\n backgroundColor: `${context.theme.primaryColor}`\n }\n}\n\nexport const messageContainerStyle = (event) => {\n\n return {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\",\n overflowX: \"hidden\",\n overflowY: \"auto\",\n transition: \"background .3s ease-out .1s\",\n width: \"100%\",\n zIndex: \"100\",\n minHeight: \"calc(100% - 68px)\",\n order: \"2\",\n \".chat__list\": {\n minHeight: \"250px\",\n \".list__wrapper\": {\n \"::-webkit-scrollbar\": {\n display: \"none\"\n },\n scrollbarWidth: \"none\"\n }\n },\n }\n}\n\nexport const parentMessageStyle = (message) => {\n\n const alignment = (message.messageFrom === \"sender\") ? {\n justifyContent: \"flex-end\",\n } : {\n justifyContent: \"flex-start\",\n };\n\n return {\n padding: \"14px 16px\",\n display: \"flex\",\n alignItems: \"center\",\n ...alignment,\n \".sender__message__container, .receiver__message__container\": {\n maxWidth: \"100%\",\n \"&:hover\": {\n \".message__actions\": {\n display: \"none\"\n }\n }\n },\n \".replycount\": {\n display: \"none\"\n }\n }\n}\n\nexport const messageSeparatorStyle = context => {\n\n\treturn {\n\t\tdisplay: \"flex\",\n\t\talignItems: \"center\",\n\t\tposition: \"relative\",\n\t\tmargin: \"7px 16px\",\n\t\theight: \"15px\",\n\t\thr: {\n\t\t\tflex: \"1\",\n\t\t\tmargin: \"1px 0 0 0\",\n\t\t\tborderTop: `1px solid ${context.theme.borderColor.primary}`,\n\t\t},\n\t};\n};\n\nexport const messageReplyStyle = () => {\n\n return {\n marginRight: \"12px\",\n fontSize: \"12px\",\n }\n}","export default __webpack_public_path__ + \"static/media/close.0b0b6f95.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { \n\tCometChatMessageList, CometChatMessageComposer,\n\tCometChatSenderTextMessageBubble, CometChatReceiverTextMessageBubble,\n\tCometChatSenderImageMessageBubble, CometChatReceiverImageMessageBubble,\n\tCometChatSenderFileMessageBubble, CometChatReceiverFileMessageBubble,\n\tCometChatSenderAudioMessageBubble, CometChatReceiverAudioMessageBubble,\n\tCometChatSenderVideoMessageBubble, CometChatReceiverVideoMessageBubble,\n\tCometChatSenderDirectCallBubble, CometChatReceiverDirectCallBubble,\n\tCometChatImageViewer\n} from \"../\";\n\nimport {\n\tCometChatSenderPollMessageBubble, CometChatReceiverPollMessageBubble,\n\tCometChatSenderStickerBubble, CometChatReceiverStickerMessageBubble,\n\tCometChatSenderDocumentBubble, CometChatReceiverDocumentBubble,\n\tCometChatSenderWhiteboardBubble, CometChatReceiverWhiteboardBubble,\n} from \"../Extensions\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport { checkMessageForExtensionsData } from \"../../../util/common\";\nimport * as enums from \"../../../util/enums.js\";\nimport { CometChatEvent } from \"../../../util/CometChatEvent\";\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n\twrapperStyle,\n\theaderStyle,\n\theaderWrapperStyle,\n\theaderDetailStyle,\n\theaderTitleStyle,\n\theaderNameStyle,\n\theaderCloseStyle,\n\tmessageContainerStyle,\n\tparentMessageStyle,\n\tmessageSeparatorStyle,\n\tmessageReplyStyle,\n} from \"./style\";\n\nimport clearIcon from \"./resources/close.svg\";\n\nclass CometChatMessageThread extends React.PureComponent {\n\tloggedInUser = null;\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tmessageList: [],\n\t\t\tscrollToBottom: true,\n\t\t\treplyCount: 0,\n\t\t\treplyPreview: null,\n\t\t\tmessageToBeEdited: null,\n\t\t\tparentMessage: props.parentMessage,\n\t\t\tviewOriginalImage: false,\n\t\t\tenableSendingOneOnOneMessage: false,\n\t\t\tenableSendingGroupMessage: false,\n\t\t\tenableHideDeletedMessages: false,\n\t\t};\n\n\t\tthis.composerRef = React.createRef();\n\t\tthis.toastRef = React.createRef();\n\n\t\tthis.loggedInUser = this.props.loggedInUser;\n\t}\n\n\tcomponentDidMount() {\n\t\tCometChat.getLoggedinUser()\n\t\t\t.then(user => (this.loggedInUser = user))\n\t\t\t.catch(error => this.errorHandler(\"SOMETHING_WRONG\"));\n\n\t\tthis.enableSendingOneOnOneMessage();\n\t\tthis.enableSendingGroupMessage();\n\t\tthis.enableHideDeletedMessages();\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\t\tthis.enableSendingOneOnOneMessage();\n\t\tthis.enableSendingGroupMessage();\n\t\tthis.enableHideDeletedMessages();\n\n\t\tif (prevProps.parentMessage !== this.props.parentMessage) {\n\t\t\tif (prevProps.parentMessage.id !== this.props.parentMessage.id) {\n\t\t\t\tthis.setState({ messageList: [], scrollToBottom: true, parentMessage: this.props.parentMessage });\n\t\t\t} else if (prevProps.parentMessage.data !== this.props.parentMessage.data) {\n\t\t\t\tthis.setState({ parentMessage: this.props.parentMessage });\n\t\t\t}\n\t\t}\n\t}\n\n\tenableSendingOneOnOneMessage = () => {\n\t\tthis.context.FeatureRestriction.isOneOnOneChatEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enableSendingOneOnOneMessage) {\n\t\t\t\t\tthis.setState({ enableSendingOneOnOneMessage: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableSendingOneOnOneMessage !== false) {\n\t\t\t\t\tthis.setState({ enableSendingOneOnOneMessage: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableSendingGroupMessage = () => {\n\t\tthis.context.FeatureRestriction.isGroupChatEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enableSendingGroupMessage) {\n\t\t\t\t\tthis.setState({ enableSendingGroupMessage: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableSendingGroupMessage !== false) {\n\t\t\t\t\tthis.setState({ enableSendingGroupMessage: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tenableHideDeletedMessages = () => {\n\t\tthis.context.FeatureRestriction.isHideDeletedMessagesEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enableHideDeletedMessages) {\n\t\t\t\t\tthis.setState({ enableHideDeletedMessages: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableHideDeletedMessages !== false) {\n\t\t\t\t\tthis.setState({ enableHideDeletedMessages: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\terrorHandler = errorCode => {\n\t\tthis.toastRef.setError(errorCode);\n\t};\n\n\tparentMessageEdited = message => {\n\t\tconst parentMessage = { ...this.props.parentMessage };\n\n\t\tif (parentMessage.id === message.id) {\n\t\t\tconst newMessageObj = { ...message };\n\t\t\tthis.setState({ parentMessage: newMessageObj });\n\t\t}\n\t};\n\n\tactionHandler = (action, messages) => {\n\t\tswitch (action) {\n\t\t\tcase enums.ACTIONS[\"CUSTOM_MESSAGE_RECEIVED\"]:\n\t\t\tcase enums.ACTIONS[\"MESSAGE_RECEIVED\"]:\n\t\t\t\t{\n\t\t\t\t\tconst message = messages[0];\n\t\t\t\t\tif (message.hasOwnProperty(\"parentMessageId\") && message.parentMessageId === this.state.parentMessage.id) {\n\t\t\t\t\t\tconst replyCount = this.state.parentMessage.hasOwnProperty(\"replyCount\") ? this.state.parentMessage.replyCount : 0;\n\t\t\t\t\t\tconst newReplyCount = replyCount + 1;\n\n\t\t\t\t\t\tlet messageObj = { ...this.state.parentMessage };\n\t\t\t\t\t\tlet newMessageObj = Object.assign({}, messageObj, { replyCount: newReplyCount });\n\t\t\t\t\t\tthis.setState({ parentMessage: newMessageObj });\n\n\t\t\t\t\t\tthis.smartReplyPreview(messages);\n\t\t\t\t\t\tthis.appendMessage(messages);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"MESSAGE_COMPOSED\"]:\n\t\t\t\t{\n\t\t\t\t\tconst replyCount = this.state.parentMessage.hasOwnProperty(\"replyCount\") ? this.state.parentMessage.replyCount : 0;\n\t\t\t\t\tconst newReplyCount = replyCount + 1;\n\n\t\t\t\t\tlet messageObj = { ...this.state.parentMessage };\n\t\t\t\t\tlet newMessageObj = Object.assign({}, messageObj, { replyCount: newReplyCount });\n\t\t\t\t\tthis.setState({ parentMessage: newMessageObj });\n\n\t\t\t\t\tthis.appendMessage(messages);\n\t\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"THREAD_MESSAGE_COMPOSED\"], messages);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"MESSAGE_SENT\"]:\n\t\t\tcase enums.ACTIONS[\"ERROR_IN_SENDING_MESSAGE\"]:\n\t\t\t\tthis.messageSent(messages);\n\t\t\t\tthis.props.actionGenerated(action, messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"ON_MESSAGE_READ_DELIVERED\"]:\n\t\t\t\tthis.updateMessages(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"ON_MESSAGE_EDITED\"]:\n\t\t\t\tthis.updateMessages(messages);\n\t\t\t\tbreak;\n\t\t\tcase \"messageFetched\":\n\t\t\t\tthis.prependMessages(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"MESSAGES_INITIAL_FETCH\"]:\n\t\t\t\tthis.prependMessagesAndScrollToBottom(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"ON_MESSAGE_DELETED\"]:\n\t\t\t\tthis.removeMessages(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"EDIT_MESSAGE\"]:\n\t\t\t\tthis.editMessage(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"MESSAGE_EDITED\"]:\n\t\t\t\tthis.messageEdited(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"CLEAR_EDIT_PREVIEW\"]:\n\t\t\t\tthis.clearEditPreview();\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"DELETE_MESSAGE\"]:\n\t\t\t\tthis.deleteMessage(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"REACT_TO_MESSAGE\"]:\n\t\t\t\tthis.reactToMessage(messages);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"VIEW_ORIGINAL_IMAGE\"]:\n\t\t\t\tthis.toggleOriginalImageView(messages);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\ttoggleOriginalImageView = message => {\n\t\tthis.setState({ viewOriginalImage: message });\n\t};\n\n\tmessageSent = messages => {\n\t\tconst message = messages[0];\n\t\tconst messageList = [...this.state.messageList];\n\t\tlet messageKey = messageList.findIndex(m => m._id === message._id);\n\t\tif (messageKey > -1) {\n\t\t\tconst newMessageObj = { ...message };\n\n\t\t\tmessageList.splice(messageKey, 1, newMessageObj);\n\t\t\tthis.updateMessages(messageList);\n\t\t}\n\t};\n\n\teditMessage = message => {\n\t\tthis.setState({ messageToBeEdited: message });\n\t};\n\n\tmessageEdited = message => {\n\t\tconst messageList = [...this.state.messageList];\n\t\tlet messageKey = messageList.findIndex(m => m.id === message.id);\n\t\tif (messageKey > -1) {\n\t\t\tconst messageObj = messageList[messageKey];\n\n\t\t\tconst newMessageObj = { ...messageObj, ...message };\n\n\t\t\tmessageList.splice(messageKey, 1, newMessageObj);\n\t\t\tthis.updateMessages(messageList);\n\n\t\t\tif (messageList.length - messageKey === 1) {\n\t\t\t\t//this.context.setLastMessage(newMessageObj);\n\t\t\t\tCometChatEvent.triggerHandler(\"updateLastMessage\", { ...newMessageObj });\n\t\t\t}\n\t\t}\n\t};\n\n\tclearEditPreview = () => {\n\t\tthis.setState({ messageToBeEdited: \"\" });\n\t};\n\n\tdeleteMessage = message => {\n\t\tconst messageId = message.id;\n\t\tCometChat.deleteMessage(messageId)\n\t\t\t.then(deletedMessage => {\n\t\t\t\tthis.removeMessages([deletedMessage]);\n\n\t\t\t\tconst messageList = [...this.state.messageList];\n\t\t\t\tlet messageKey = messageList.findIndex(m => m.id === message.id);\n\n\t\t\t\tif (messageList.length - messageKey === 1 && !message.replyCount) {\n\t\t\t\t\t//this.context.setLastMessage(deletedMessage);\n\t\t\t\t\tCometChatEvent.triggerHandler(\"updateLastMessage\", { ...deletedMessage });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => this.errorHandler(\"SOMETHING_WRONG\"));\n\t};\n\n\tsmartReplyPreview = messages => {\n\t\tconst message = messages[0];\n\n\t\tconst smartReplyData = checkMessageForExtensionsData(message, \"smart-reply\");\n\t\tif (smartReplyData && smartReplyData.hasOwnProperty(\"error\") === false) {\n\t\t\tthis.setState({ replyPreview: message });\n\t\t} else {\n\t\t\tthis.setState({ replyPreview: null });\n\t\t}\n\t};\n\n\t//message is received or composed & sent\n\tappendMessage = message => {\n\t\tlet messages = [...this.state.messageList];\n\t\tmessages = messages.concat(message);\n\t\tthis.setState({ messageList: messages, scrollToBottom: true });\n\t};\n\n\t//message status is updated\n\tupdateMessages = messages => {\n\t\tthis.setState({ messageList: messages });\n\t};\n\n\t//messages are fetched from backend\n\tprependMessages = messages => {\n\t\tconst messageList = [...messages, ...this.state.messageList];\n\t\tthis.setState({ messageList: messageList, scrollToBottom: false });\n\t};\n\n\t//messages are fetched, scroll to bottom\n\tprependMessagesAndScrollToBottom = messages => {\n\t\tconst messageList = [...messages, ...this.state.messageList];\n\t\tthis.setState({ messageList: messageList, scrollToBottom: true });\n\t};\n\n\t//messages are deleted\n\tremoveMessages = messages => {\n\t\tconst deletedMessage = messages[0];\n\t\tconst messagelist = [...this.state.messageList];\n\n\t\tlet messageKey = messagelist.findIndex(message => message.id === deletedMessage.id);\n\t\tif (messageKey > -1) {\n\t\t\t\n\t\t\tif (this.state.enableHideDeletedMessages) {\n\t\t\t\tmessagelist.splice(messageKey, 1);\n\t\t\t} else {\n\t\t\t\tlet messageObj = { ...messagelist[messageKey] };\n\t\t\t\tlet newMessageObj = Object.assign({}, messageObj, deletedMessage);\n\t\t\t\tmessagelist.splice(messageKey, 1, newMessageObj);\n\t\t\t}\n\n\t\t\tthis.setState({ messageList: messagelist, scrollToBottom: false });\n\t\t}\n\t};\n\n\tgetSenderMessageComponent = message => {\n\t\tlet component;\n\n\t\tswitch (message.type) {\n\t\t\tcase CometChat.MESSAGE_TYPE.TEXT:\n\t\t\t\tcomponent = ;\n\t\t\t\tbreak;\n\t\t\tcase CometChat.MESSAGE_TYPE.IMAGE:\n\t\t\t\tcomponent = ;\n\t\t\t\tbreak;\n\t\t\tcase CometChat.MESSAGE_TYPE.FILE:\n\t\t\t\tcomponent = ;\n\t\t\t\tbreak;\n\t\t\tcase CometChat.MESSAGE_TYPE.VIDEO:\n\t\t\t\tcomponent = ;\n\t\t\t\tbreak;\n\t\t\tcase CometChat.MESSAGE_TYPE.AUDIO:\n\t\t\t\tcomponent = ;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn component;\n\t};\n\n\tgetReceiverMessageComponent = message => {\n\t\tlet component;\n\n\t\tswitch (message.type) {\n\t\t\tcase \"message\":\n\t\t\tcase CometChat.MESSAGE_TYPE.TEXT:\n\t\t\t\tcomponent = ;\n\t\t\t\tbreak;\n\t\t\tcase CometChat.MESSAGE_TYPE.IMAGE:\n\t\t\t\tcomponent = ;\n\t\t\t\tbreak;\n\t\t\tcase CometChat.MESSAGE_TYPE.FILE:\n\t\t\t\tcomponent = ;\n\t\t\t\tbreak;\n\t\t\tcase CometChat.MESSAGE_TYPE.AUDIO:\n\t\t\t\tcomponent = ;\n\t\t\t\tbreak;\n\t\t\tcase CometChat.MESSAGE_TYPE.VIDEO:\n\t\t\t\tcomponent = ;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn component;\n\t};\n\n\tgetSenderCustomMessageComponent = message => {\n\t\tlet component;\n\n\t\tswitch (message.type) {\n\t\t\tcase enums.CUSTOM_TYPE_POLL:\n\t\t\t\tcomponent = ;\n\t\t\t\tbreak;\n\t\t\tcase enums.CUSTOM_TYPE_STICKER:\n\t\t\t\tcomponent = ;\n\t\t\t\tbreak;\n\t\t\tcase enums.CUSTOM_TYPE_DOCUMENT:\n\t\t\t\tcomponent = ;\n\t\t\t\tbreak;\n\t\t\tcase enums.CUSTOM_TYPE_WHITEBOARD:\n\t\t\t\tcomponent = ;\n\t\t\t\tbreak;\n\t\t\tcase enums.CUSTOM_TYPE_MEETING:\n\t\t\t\tcomponent = ;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn component;\n\t};\n\n\tgetReceiverCustomMessageComponent = message => {\n\t\tlet component;\n\t\tswitch (message.type) {\n\t\t\tcase enums.CUSTOM_TYPE_POLL:\n\t\t\t\tcomponent = ;\n\t\t\t\tbreak;\n\t\t\tcase enums.CUSTOM_TYPE_STICKER:\n\t\t\t\tcomponent = ;\n\t\t\t\tbreak;\n\t\t\tcase enums.CUSTOM_TYPE_DOCUMENT:\n\t\t\t\tcomponent = ;\n\t\t\t\tbreak;\n\t\t\tcase enums.CUSTOM_TYPE_WHITEBOARD:\n\t\t\t\tcomponent = ;\n\t\t\t\tbreak;\n\t\t\tcase enums.CUSTOM_TYPE_MEETING:\n\t\t\t\tcomponent = ;\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn component;\n\t};\n\n\tgetParentMessageComponent = message => {\n\t\tlet component = null;\n\n\t\tswitch (message.category) {\n\t\t\tcase CometChat.CATEGORY_MESSAGE:\n\t\t\t\tif (this.loggedInUser.uid === message.sender.uid) {\n\t\t\t\t\tcomponent = this.getSenderMessageComponent(message);\n\t\t\t\t} else {\n\t\t\t\t\tcomponent = this.getReceiverMessageComponent(message);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase CometChat.CATEGORY_CUSTOM:\n\t\t\t\tif (this.loggedInUser.uid === message.sender.uid) {\n\t\t\t\t\tcomponent = this.getSenderCustomMessageComponent(message);\n\t\t\t\t} else {\n\t\t\t\t\tcomponent = this.getReceiverCustomMessageComponent(message);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn component;\n\t};\n\n\treactToMessage = message => {\n\t\tthis.setState({ messageToReact: message });\n\n\t\tif (this.composerRef) {\n\t\t\tthis.composerRef.toggleEmojiPicker();\n\t\t}\n\t};\n\n\trender() {\n\t\tlet parentMessage = this.getParentMessageComponent(this.state.parentMessage);\n\n\t\tlet seperator = (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t\tif (this.state.parentMessage.hasOwnProperty(\"replyCount\")) {\n\t\t\tconst replyCount = this.state.parentMessage.replyCount;\n\t\t\tconst replyText = replyCount === 1 ? `${replyCount} ${Translator.translate(\"REPLY\", this.context.language)}` : `${replyCount} ${Translator.translate(\"REPLIES\", this.context.language)}`;\n\n\t\t\tseperator = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{replyText}\n\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tlet originalImageView = null;\n\t\tif (this.state.viewOriginalImage) {\n\t\t\toriginalImageView = this.toggleOriginalImageView(false)} message={this.state.viewOriginalImage} lang={this.context.language} />;\n\t\t}\n\n\t\tlet messageComposer = (\n\t\t\t {\n\t\t\t\t\tthis.composerRef = el;\n\t\t\t\t}}\n\t\t\t\tparentMessageId={this.props.parentMessage.id}\n\t\t\t\tmessageToBeEdited={this.state.messageToBeEdited}\n\t\t\t\treplyPreview={this.state.replyPreview}\n\t\t\t\tmessageToReact={this.state.messageToReact}\n\t\t\t\tactionGenerated={this.actionHandler}\n\t\t\t/>\n\t\t);\n\n\t\t//if send messages feature is disabled\n\t\tif ((this.context.type === CometChat.ACTION_TYPE.TYPE_USER && this.state.enableSendingOneOnOneMessage === false) || (this.context.type === CometChat.ACTION_TYPE.TYPE_GROUP && this.state.enableSendingGroupMessage === false)) {\n\t\t\tmessageComposer = null;\n\t\t}\n\n\t\treturn (\n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{Translator.translate(\"THREAD\", this.context.language)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t{this.props.threadItem.name}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    this.props.actionGenerated(enums.ACTIONS[\"CLOSE_THREADED_MESSAGE\"])}>
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{parentMessage}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t{seperator}\n\t\t\t\t\t\t\n\t\t\t\t\t\t{messageComposer}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t{originalImageView}\n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatMessageThread.defaultProps = {\n\ttheme: theme\n};\n\nCometChatMessageThread.propTypes = {\n\ttheme: PropTypes.object\n}\n\nexport { CometChatMessageThread };\n","export const msgTimestampStyle = (context, props, loggedInUser) => {\n\n const colorValue = (props.message?.sender?.uid !== loggedInUser?.uid) ? {\n color: `${context.theme.color.helpText}`,\n } : {};\n\n return {\n display: \"flex\",\n fontSize: \"11px\",\n fontWeight: \"500\",\n lineHeight: \"12px\",\n textTransform: \"uppercase\",\n ...colorValue,\n }\n}\n\nexport const iconStyle = (img, color) => {\n\n return {\n mask: `url(${img}) center center no-repeat`,\n backgroundColor: `${color}`,\n display: \"inline-block\",\n width: \"24px\",\n height: \"24px\"\n }\n}","export default __webpack_public_path__ + \"static/media/message-read.573b8c8c.svg\";","export default __webpack_public_path__ + \"static/media/message-delivered.fbc54350.svg\";","export default __webpack_public_path__ + \"static/media/message-sent.bf5ee0cc.svg\";","export default __webpack_public_path__ + \"static/media/wait.89c8da97.svg\";","export default __webpack_public_path__ + \"static/media/warning-small.6ad6a0ca.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { getMessageSentTime } from \"../../../util/common\";\nimport { CometChatContext } from \"../../../util/CometChatContext\"\n\nimport Translator from \"../../../resources/localization/translator\";\nimport { theme } from \"../../../resources/theme\";\n\nimport { msgTimestampStyle, iconStyle } from \"./style\";\n\nimport blueDoubleTick from \"./resources/message-read.svg\";\nimport greyDoubleTick from \"./resources/message-delivered.svg\";\nimport greyTick from \"./resources/message-sent.svg\";\nimport sendingTick from \"./resources/wait.svg\";\nimport errorTick from \"./resources/warning-small.svg\";\n\nclass CometChatReadReceipt extends React.PureComponent {\n\tstatic contextType = CometChatContext;\n\tloggedInUser;\n\n\tconstructor(props, context) {\n\t\tsuper(props, context);\n\t\tthis.state = {\n\t\t\treceipts: false,\n\t\t};\n\n\t\tthis.context.getLoggedinUser().then(user => {\n\t\t\tthis.loggedInUser = { ...user };\n\t\t});\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.toggleReadReceipts();\n\t}\n\n\tcomponentDidUpdate() {\n\t\tthis.toggleReadReceipts();\n\t}\n\n\ttoggleReadReceipts = () => {\n\t\t/**\n\t\t * if delivery receipts feature is disabled\n\t\t */\n\t\tthis.context.FeatureRestriction.isDeliveryReceiptsEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.receipts) {\n\t\t\t\t\tthis.setState({ receipts: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.receipts !== false) {\n\t\t\t\t\tthis.setState({ receipts: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\trender() {\n\t\t\n\t\tlet ticks,\n\t\t\treceiptText = null,\n\t\t\tdateField = null,\n\t\t\tcolor = null;\n\t\t\n\t\tif (this.props.message?.sender?.uid === this.loggedInUser?.uid) {\n\n\t\t\tif (this.props.message.receiverType === CometChat.RECEIVER_TYPE.GROUP) {\n\t\t\t\tif (this.props.message.hasOwnProperty(\"error\")) {\n\t\t\t\t\tticks = errorTick;\n\t\t\t\t\treceiptText = \"ERROR\";\n\t\t\t\t\tdateField = this.props.message._composedAt;\n\t\t\t\t\tcolor = this.context.theme.color.red;\n\t\t\t\t} else {\n\t\t\t\t\tticks = sendingTick;\n\t\t\t\t\treceiptText = \"SENDING\";\n\t\t\t\t\tdateField = this.props.message._composedAt;\n\t\t\t\t\tcolor = this.context.theme.secondaryTextColor;\n\t\t\t\t\tif (this.props.message.hasOwnProperty(\"sentAt\")) {\n\t\t\t\t\t\tticks = greyTick;\n\t\t\t\t\t\treceiptText = \"SENT\";\n\t\t\t\t\t\tdateField = this.props.message.sentAt;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this.props.message.hasOwnProperty(\"error\")) {\n\t\t\t\t\tticks = errorTick;\n\t\t\t\t\treceiptText = \"ERROR\";\n\t\t\t\t\tdateField = this.props.message._composedAt;\n\t\t\t\t\tcolor = this.context.theme.color.red;\n\t\t\t\t} else {\n\t\t\t\t\tticks = sendingTick;\n\t\t\t\t\treceiptText = \"SENDING\";\n\t\t\t\t\tdateField = this.props.message._composedAt;\n\t\t\t\t\tcolor = this.context.theme.secondaryTextColor;\n\n\t\t\t\t\tif (this.props.message.hasOwnProperty(\"readAt\")) {\n\n\t\t\t\t\t\tticks = blueDoubleTick;\n\t\t\t\t\t\treceiptText = \"SEEN\";\n\t\t\t\t\t\tcolor = this.context.theme.primaryColor;\n\t\t\t\t\t\tdateField = this.props.message.readAt;\n\n\t\t\t\t\t} else if (this.props.message.hasOwnProperty(\"deliveredAt\")) {\n\n\t\t\t\t\t\tticks = greyDoubleTick;\n\t\t\t\t\t\treceiptText = \"DELIVERED\";\n\t\t\t\t\t\tdateField = this.props.message.deliveredAt;\n\n\t\t\t\t\t} else if (this.props.message.hasOwnProperty(\"sentAt\")) {\n\n\t\t\t\t\t\tticks = greyTick;\n\t\t\t\t\t\treceiptText = \"SENT\";\n\t\t\t\t\t\tdateField = this.props.message.sentAt;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tdateField = this.props.message.sentAt;\n\t\t}\n\n\t\t//if delivery receipts are disabled\n\t\tif (this.state.receipts === false) {\n\t\t\tticks = null;\n\t\t}\n\n\t\tconst receipt = ticks ? : null;\n\n\t\tconst timestamp = getMessageSentTime(dateField, this.context.language);\n\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{timestamp}\n\t\t\t\t\n\t\t\t\t{receipt}\n\t\t\t\n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatReadReceipt.defaultProps = {\n\ttheme: theme,\n};\n\nCometChatReadReceipt.propTypes = {\n\ttheme: PropTypes.object,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatReadReceipt };","export const messageContainerStyle = () => {\n\n return {\n alignSelf: \"flex-start\",\n marginBottom: \"16px\",\n paddingLeft: \"16px\",\n paddingRight: \"16px\",\n maxWidth: \"65%\",\n clear: \"both\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageWrapperStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-start\",\n display: \"flex\",\n }\n}\n\nexport const messageThumbnailStyle = () => {\n\n return {\n width: \"36px\",\n height: \"36px\",\n margin: \"10px 5px\",\n float: \"left\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageDetailStyle = () => {\n\n return {\n flex: \"1 1\",\n display: \"flex\",\n flexDirection: \"column\",\n }\n}\n\nexport const nameWrapperStyle = (avatar) => {\n\n const paddingValue = (avatar) ? {\n padding: \"3px 5px\",\n } : {};\n\n return {\n alignSelf: \"flex-start\",\n ...paddingValue\n }\n}\n\nexport const nameStyle = context => {\n\n\treturn {\n\t\tfontSize: \"10px\",\n\t\tcolor: `${context.theme.color.helpText}`,\n\t};\n};\n\nexport const messageAudioContainerStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-start\",\n display: \"flex\",\n }\n}\n\nexport const messageAudioWrapperStyle = () => {\n\n return {\n display: \"inline-block\",\n borderRadius: \"12px\",\n alignSelf: \"flex-start\",\n \" > audio\": {\n maxWidth: \"250px\",\n display: \"inherit\",\n outline: \"none\",\n }\n }\n}\n\nexport const messageInfoWrapperStyle = () => {\n\n return {\n alignSelf: \"flex-start\",\n padding: \"4px 8px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n height: \"25px\"\n }\n}\n\nexport const messageReactionsWrapperStyle = () => {\n\n return {\n display: \"inline-flex\",\n alignSelf: \"flex-start\",\n width: \"100%\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-start\",\n }\n}","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatMessageActions, CometChatThreadedMessageReplyCount, CometChatReadReceipt } from \"../\";\nimport { CometChatMessageReactions } from \"../Extensions\";\nimport { CometChatAvatar } from \"../../Shared\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport { checkMessageForExtensionsData } from \"../../../util/common\";\n\nimport { theme } from \"../../../resources/theme\";\n\nimport {\n\tmessageContainerStyle,\n\tmessageWrapperStyle,\n\tmessageThumbnailStyle,\n\tmessageDetailStyle,\n\tnameWrapperStyle,\n\tnameStyle,\n\tmessageAudioContainerStyle,\n\tmessageAudioWrapperStyle,\n\tmessageInfoWrapperStyle,\n\tmessageReactionsWrapperStyle\n} from \"./style\";\n\nclass CometChatReceiverAudioMessageBubble extends React.Component {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tisHovering: false,\n\t\t};\n\t}\n\n\tshouldComponentUpdate(nextProps, nextState) {\n\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\t\tconst nextMessageStr = JSON.stringify(nextProps.message);\n\n\t\tif (currentMessageStr !== nextMessageStr \n\t\t|| this.state.isHovering !== nextState.isHovering) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\thandleMouseHover = () => {\n\t\tthis.setState(this.toggleHoverState);\n\t};\n\n\ttoggleHoverState = state => {\n\t\treturn {\n\t\t\tisHovering: !state.isHovering,\n\t\t};\n\t};\n\n\trender() {\n\t\tlet avatar = null,\n\t\t\tname = null;\n\t\tif (this.props.message.receiverType === CometChat.RECEIVER_TYPE.GROUP) {\n\t\t\tavatar = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\n\t\t\tname = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{this.props.message.sender.name}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tlet messageReactions = null;\n\t\tconst reactionsData = checkMessageForExtensionsData(this.props.message, \"reactions\");\n\t\tif (reactionsData) {\n\t\t\tif (Object.keys(reactionsData).length) {\n\t\t\t\tmessageReactions = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet toolTipView = null;\n\t\tif (this.state.isHovering) {\n\t\t\ttoolTipView = ;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{avatar}\n\t\t\t\t\t
    \n\t\t\t\t\t\t{name}\n\t\t\t\t\t\t{toolTipView}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t{messageReactions}\n\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatReceiverAudioMessageBubble.defaultProps = {\n\ttheme: theme,\n\tactionGenerated: {},\n};\n\nCometChatReceiverAudioMessageBubble.propTypes = {\n\ttheme: PropTypes.object,\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatReceiverAudioMessageBubble };","export const messageContainerStyle = () => {\n\n return {\n alignSelf: \"flex-start\",\n marginBottom: \"16px\",\n paddingLeft: \"16px\",\n paddingRight: \"16px\",\n maxWidth: \"305px\",\n clear: \"both\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageWrapperStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-start\",\n display: \"flex\",\n }\n}\n\nexport const messageThumbnailStyle = () => {\n\n return {\n width: \"36px\",\n height: \"36px\",\n margin: \"10px 5px\",\n float: \"left\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageDetailStyle = () => {\n\n return {\n flex: \"1 1\",\n display: \"flex\",\n flexDirection: \"column\",\n }\n}\n\nexport const nameWrapperStyle = (avatar) => {\n\n const paddingValue = (avatar) ? {\n padding: \"3px 5px\",\n } : {};\n\n return {\n alignSelf: \"flex-start\",\n ...paddingValue\n }\n}\n\nexport const nameStyle = context => {\n\n\treturn {\n\t\tfontSize: \"10px\",\n\t\tcolor: `${context.theme.color.helpText}`,\n\t};\n};\n\nexport const messageTxtContainerStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-start\",\n display: \"flex\",\n \"img\": {\n width: \"35px\"\n }\n }\n}\n\nexport const messageTxtWrapperStyle = context => {\n\n\treturn {\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"column\",\n\t\tborderRadius: \"12px\",\n\t\tbackgroundColor: `${context.theme.backgroundColor.secondary}`,\n\t\tpadding: \"16px\",\n\t\talignSelf: \"flex-start\",\n\t\twidth: \"100%\",\n\t\tminHeight: \"106px\",\n\t};\n};\n\nexport const messageTxtTitleStyle = context => {\n\n\treturn {\n\t\tdisplay: \"flex\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tcolor: `${context.theme.color.primary}`,\n\t};\n};\n\nexport const messageTxtStyle = () => {\n\n return {\n margin: \"0\",\n whiteSpace: \"pre-wrap\",\n wordWrap: \"break-word\",\n textAlign: \"left\",\n width: \"calc(100% - 30px)\",\n fontSize: \"14px\",\n marginLeft: \"8px\"\n }\n}\n\nexport const messageBtnStyle = context => {\n\n\treturn {\n\t\tlistStyleType: \"none\",\n\t\tpadding: \"0\",\n\t\tmargin: \"16px 0 0 0\",\n\t\tli: {\n\t\t\tbackgroundColor: `${context.theme.backgroundColor.white}`,\n\t\t\tborderRadius: \"8px\",\n\t\t\tdisplay: \"flex\",\n\t\t\tjustifyContent: \"center\",\n\t\t\talignItems: \"center\",\n\t\t\twidth: \"100%\",\n\t\t\tcursor: \"pointer\",\n\t\t\tposition: \"relative\",\n\t\t\tmargin: \"0\",\n\t\t\tpadding: \"8px\",\n\t\t\t\"> p\": {\n\t\t\t\tbackground: \"0 0\",\n\t\t\t\ttextAlign: \"center\",\n\t\t\t\tcolor: `${context.theme.primaryColor}`,\n\t\t\t\twidth: \"100%\",\n\t\t\t\tdisplay: \"inline-block\",\n\t\t\t\tfontSize: \"14px\",\n\t\t\t\tfontWeight: \"600\",\n\t\t\t\tmargin: \"0\",\n\t\t\t},\n\t\t},\n\t};\n};\n\n\nexport const messageInfoWrapperStyle = () => {\n\n return {\n alignSelf: \"flex-start\",\n padding: \"4px 8px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n height: \"25px\"\n }\n}\n\nexport const messageReactionsWrapperStyle = () => {\n\n return {\n display: \"inline-flex\",\n alignSelf: \"flex-start\",\n width: \"100%\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-start\",\n }\n}\n\nexport const iconStyle = (img, context) => {\n\treturn {\n\t\twidth: \"30px\",\n\t\theight: \"24px\",\n\t\tdisplay: \"inline-block\",\n\t\tmask: `url(${img}) center center no-repeat`,\n\t\tbackgroundColor: `${context.theme.primaryColor}`,\n\t};\n};","export default __webpack_public_path__ + \"static/media/video-call.0e4e774d.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatMessageActions, CometChatThreadedMessageReplyCount, CometChatReadReceipt } from \"../\";\nimport { CometChatMessageReactions } from \"../Extensions\";\nimport { CometChatAvatar } from \"../../Shared\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport { checkMessageForExtensionsData } from \"../../../util/common\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n\tmessageContainerStyle,\n\tmessageWrapperStyle,\n\tmessageThumbnailStyle,\n\tmessageDetailStyle,\n\tnameWrapperStyle,\n\tnameStyle,\n\tmessageTxtContainerStyle,\n\tmessageTxtWrapperStyle,\n\tmessageTxtTitleStyle,\n\tmessageTxtStyle,\n\tmessageBtnStyle,\n\tmessageInfoWrapperStyle,\n\tmessageReactionsWrapperStyle,\n\ticonStyle,\n} from \"./style\";\n\nimport callIcon from \"./resources/video-call.svg\";\n\nclass CometChatReceiverDirectCallBubble extends React.Component {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tisHovering: false,\n\t\t};\n\t}\n\n\tshouldComponentUpdate(nextProps, nextState) {\n\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\t\tconst nextMessageStr = JSON.stringify(nextProps.message);\n\n\t\tif (currentMessageStr !== nextMessageStr \n || this.state.isHovering !== nextState.isHovering) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\thandleMouseHover = () => {\n\t\tthis.setState(this.toggleHoverState);\n\t};\n\n\ttoggleHoverState = state => {\n\t\treturn {\n\t\t\tisHovering: !state.isHovering,\n\t\t};\n\t};\n\n\trender() {\n\t\tlet avatar = null,\n\t\t\tname = null;\n\t\tif (this.props.message.receiverType === CometChat.RECEIVER_TYPE.GROUP) {\n\t\t\tavatar = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\n\t\t\tname = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{this.props.message.sender.name}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tlet messageReactions = null;\n\t\tconst reactionsData = checkMessageForExtensionsData(this.props.message, \"reactions\");\n\t\tif (reactionsData) {\n\t\t\tif (Object.keys(reactionsData).length) {\n\t\t\t\tmessageReactions = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet toolTipView = null;\n\t\tif (this.state.isHovering) {\n\t\t\ttoolTipView = ;\n\t\t}\n\n\t\tconst messageTitle = `${this.props.message.sender.name} ${Translator.translate(\"INITIATED_GROUP_CALL\", this.context.language)}`;\n\n\t\tlet callMessage = null;\n\t\tconst joinCallMessage = Translator.translate(\"YOU_ALREADY_ONGOING_CALL\", this.context.language);\n\n\t\tif (this.context.checkIfDirectCallIsOngoing() === enums.CONSTANTS.CALLS[\"ONGOING_CALL_SAME_GROUP\"]) {\n\t\t\t//ongoing call in same group\n\t\t\tcallMessage = (\n\t\t\t\t
  • \n\t\t\t\t\t

    {Translator.translate(\"JOIN\", this.context.language)}

    \n\t\t\t\t
  • \n\t\t\t);\n\t\t} else if (this.context.checkIfDirectCallIsOngoing() === enums.CONSTANTS.CALLS[\"ONGOING_CALL_DIFF_GROUP\"]) {\n\t\t\t//ongoing call in different group\n\n\t\t\tcallMessage = (\n\t\t\t\t
  • \n\t\t\t\t\t

    {Translator.translate(\"JOIN\", this.context.language)}

    \n\t\t\t\t
  • \n\t\t\t);\n\t\t} else if (this.context.checkIfCallIsOngoing()) {\n\t\t\t//ongoing call\n\n\t\t\tcallMessage = (\n\t\t\t\t
  • \n\t\t\t\t\t

    {Translator.translate(\"JOIN\", this.context.language)}

    \n\t\t\t\t
  • \n\t\t\t);\n\t\t} else {\n\t\t\tcallMessage = (\n\t\t\t\t
  • this.props.actionGenerated(enums.ACTIONS[\"JOIN_DIRECT_CALL\"], this.props.message)}>\n\t\t\t\t\t

    {Translator.translate(\"JOIN\", this.context.language)}

    \n\t\t\t\t
  • \n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{avatar}\n\t\t\t\t\t
    \n\t\t\t\t\t\t{name}\n\t\t\t\t\t\t{toolTipView}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t\t\t{messageTitle}\n\t\t\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t\t\t{callMessage}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t{messageReactions}\n\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatReceiverDirectCallBubble.defaultProps = {\n\ttheme: theme,\n\tactionGenerated: {},\n};\n\nCometChatReceiverDirectCallBubble.propTypes = {\n\ttheme: PropTypes.object,\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatReceiverDirectCallBubble };","export const messageContainerStyle = () => {\n\n return {\n alignSelf: \"flex-start\",\n marginBottom: \"16px\",\n paddingLeft: \"16px\",\n paddingRight: \"16px\",\n maxWidth: \"65%\",\n clear: \"both\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageWrapperStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-start\",\n display: \"flex\",\n }\n}\n\nexport const messageThumbnailStyle = () => {\n\n return {\n width: \"36px\",\n height: \"36px\",\n margin: \"10px 5px\",\n float: \"left\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageDetailStyle = () => {\n\n return {\n flex: \"1 1\",\n display: \"flex\",\n flexDirection: \"column\",\n }\n}\n\nexport const nameWrapperStyle = (avatar) => {\n\n const paddingValue = (avatar) ? {\n padding: \"3px 5px\",\n } : {};\n\n return {\n alignSelf: \"flex-start\",\n ...paddingValue\n }\n}\n\nexport const nameStyle = context => {\n\n\treturn {\n\t\tfontSize: \"10px\",\n\t\tcolor: `${context.theme.color.helpText}`,\n\t};\n};\n\nexport const messageFileContainerStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-start\",\n display: \"flex\",\n }\n}\n\nexport const messageFileWrapperStyle = context => {\n\n\treturn {\n\t\tdisplay: \"inline-block\",\n\t\tborderRadius: \"12px\",\n\t\tcolor: `${context.theme.color.secondary}`,\n\t\tbackgroundColor: `${context.theme.backgroundColor.secondary}`,\n\t\tpadding: \"8px 16px\",\n\t\talignSelf: \"flex-start\",\n\t\twidth: \"auto\",\n\t\t\"> a\": {\n\t\t\tbackground: \"0 0\",\n\t\t\ttextDecoration: \"none\",\n\t\t\tbackgroundColor: \"transparent\",\n\t\t\tcolor: `${context.theme.color.primary}`,\n\t\t\twidth: \"auto\",\n\t\t\tfontSize: \"14px\",\n\t\t\tdisplay: \"flex\",\n\t\t\talignItems: \"center\",\n\t\t\tjustifyContent: \"center\",\n\t\t\t\"&:visited, &:active, &:hover\": {\n\t\t\t\tcolor: `${context.theme.color.primary}`,\n\t\t\t\ttextDecoration: \"none\",\n\t\t\t},\n\t\t\tlabel: {\n\t\t\t\tcursor: \"pointer\",\n\t\t\t},\n\t\t},\n\t};\n};\n\nexport const messageInfoWrapperStyle = () => {\n\n return {\n alignSelf: \"flex-start\",\n padding: \"4px 8px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n height: \"25px\"\n }\n}\n\nexport const messageReactionsWrapperStyle = () => {\n\n return {\n display: \"inline-flex\",\n alignSelf: \"flex-start\",\n width: \"100%\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-start\",\n }\n}\n\nexport const iconStyle = (img, context) => {\n\treturn {\n\t\twidth: \"24px\",\n\t\theight: \"24px\",\n\t\tdisplay: \"inline-block\",\n\t\tmask: `url(${img}) center center no-repeat`,\n\t\tbackgroundColor: `${context.theme.secondaryTextColor}`,\n\t\tmarginRight: \"8px\",\n\t};\n};","export default __webpack_public_path__ + \"static/media/file-upload.a68d497b.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatMessageActions, CometChatThreadedMessageReplyCount, CometChatReadReceipt } from \"../\";\nimport { CometChatMessageReactions } from \"../Extensions\";\nimport { CometChatAvatar } from \"../../Shared\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport { checkMessageForExtensionsData } from \"../../../util/common\";\n\nimport { theme } from \"../../../resources/theme\";\n\nimport { \n\tmessageContainerStyle,\n\tmessageWrapperStyle,\n\tmessageThumbnailStyle,\n\tmessageDetailStyle,\n\tnameWrapperStyle,\n\tnameStyle,\n\tmessageFileContainerStyle,\n\tmessageFileWrapperStyle,\n\tmessageInfoWrapperStyle,\n\tmessageReactionsWrapperStyle,\n\ticonStyle\n} from \"./style\";\n\nimport fileIcon from \"./resources/file-upload.svg\";\n\nclass CometChatReceiverFileMessageBubble extends React.Component {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tisHovering: false,\n\t\t};\n\t}\n\n\tshouldComponentUpdate(nextProps, nextState) {\n\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\t\tconst nextMessageStr = JSON.stringify(nextProps.message);\n\n\t\tif (currentMessageStr !== nextMessageStr \n\t\t|| this.state.isHovering !== nextState.isHovering) {\n\t\t\t\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\thandleMouseHover = () => {\n\t\tthis.setState(this.toggleHoverState);\n\t};\n\n\ttoggleHoverState = state => {\n\t\treturn {\n\t\t\tisHovering: !state.isHovering,\n\t\t};\n\t};\n\n\trender() {\n\t\tlet avatar = null,\n\t\t\tname = null;\n\t\tif (this.props.message.receiverType === CometChat.RECEIVER_TYPE.GROUP) {\n\t\t\tavatar = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\n\t\t\tname = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{this.props.message.sender.name}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tlet messageReactions = null;\n\t\tconst reactionsData = checkMessageForExtensionsData(this.props.message, \"reactions\");\n\t\tif (reactionsData) {\n\t\t\tif (Object.keys(reactionsData).length) {\n\t\t\t\tmessageReactions = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet toolTipView = null;\n\t\tif (this.state.isHovering) {\n\t\t\ttoolTipView = ;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{avatar}\n\t\t\t\t\t
    \n\t\t\t\t\t\t{name}\n\t\t\t\t\t\t{toolTipView}\n\t\t\t\t\t\t\n\n\t\t\t\t\t\t{messageReactions}\n\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatReceiverFileMessageBubble.defaultProps = {\n\ttheme: theme,\n\tactionGenerated: {},\n};\n\nCometChatReceiverFileMessageBubble.propTypes = {\n\ttheme: PropTypes.object,\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatReceiverFileMessageBubble };","export const messageContainerStyle = () => {\n\n return {\n alignSelf: \"flex-start\",\n marginBottom: \"16px\",\n paddingLeft: \"16px\",\n paddingRight: \"16px\",\n maxWidth: \"65%\",\n clear: \"both\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageWrapperStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-start\",\n display: \"flex\",\n }\n}\n\nexport const messageThumbnailStyle = () => {\n\n return {\n width: \"36px\",\n height: \"36px\",\n margin: \"10px 5px\",\n float: \"left\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageDetailStyle = () => {\n\n return {\n flex: \"1 1\",\n display: \"flex\",\n flexDirection: \"column\",\n }\n}\n\nexport const nameWrapperStyle = (avatar) => {\n\n const paddingValue = (avatar) ? {\n padding: \"3px 5px\",\n } : {};\n\n return {\n alignSelf: \"flex-start\",\n ...paddingValue\n }\n}\n\nexport const nameStyle = context => {\n\n\treturn {\n\t\tfontSize: \"10px\",\n\t\tcolor: `${context.theme.color.helpText}`,\n\t};\n};\n\nexport const messageImgContainerStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-start\",\n display: \"flex\",\n }\n}\n\nexport const messageImgWrapperStyle = context => {\n\n\tconst mq = [...context.theme.breakPoints];\n\n\treturn {\n\t\tdisplay: \"inline-block\",\n\t\talignSelf: \"flex-start\",\n\t\tmaxWidth: \"300px\",\n\t\theight: \"200px\",\n\t\tcursor: \"pointer\",\n\t\timg: {\n\t\t\tborderRadius: \"8px\",\n\t\t\theight: \"100%\",\n\t\t},\n\t\t[`@media ${mq[1]}, ${mq[2]}`]: {\n\t\t\tminWidth: \"50px\",\n\t\t\tmaxWidth: \"150px\",\n\t\t\theight: \"100px\",\n\t\t\tpadding: \"2px 2px\",\n\t\t},\n\t};\n};\n\nexport const messageInfoWrapperStyle = () => {\n\n return {\n alignSelf: \"flex-start\",\n padding: \"4px 8px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n height: \"25px\"\n }\n}\n\nexport const messageReactionsWrapperStyle = () => {\n\n return {\n display: \"inline-flex\",\n alignSelf: \"flex-start\",\n width: \"100%\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-start\",\n }\n}","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatMessageActions, CometChatThreadedMessageReplyCount, CometChatReadReceipt } from \"../\";\nimport { CometChatMessageReactions } from \"../Extensions\";\nimport { CometChatAvatar } from \"../../Shared\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\nimport { checkMessageForExtensionsData } from \"../../../util/common\";\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n\tmessageContainerStyle,\n\tmessageWrapperStyle,\n\tmessageThumbnailStyle,\n\tmessageDetailStyle,\n\tnameWrapperStyle,\n\tnameStyle,\n\tmessageImgContainerStyle,\n\tmessageImgWrapperStyle,\n\tmessageInfoWrapperStyle,\n\tmessageReactionsWrapperStyle\n} from \"./style\";\n\nimport srcIcon from \"./resources/1px.png\";\n\nclass CometChatReceiverImageMessageBubble extends React.Component {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props, context) {\n\n\t\tsuper(props, context);\n\t\tthis._isMounted = false;\n\t\tthis.imgRef = React.createRef();\n\n\t\tthis.state = {\n\t\t\timageUrl: srcIcon,\n\t\t\timageName: Translator.translate(\"LOADING\", this.context.language),\n\t\t\tisHovering: false,\n\t\t};\n\t}\n\n\tshouldComponentUpdate(nextProps, nextState) {\n\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\t\tconst nextMessageStr = JSON.stringify(nextProps.message);\n\n\t\tif (currentMessageStr !== nextMessageStr \n\t\t|| this.state.imageUrl !== nextState.imageUrl \n\t\t|| this.state.isHovering !== nextState.isHovering) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tcomponentDidMount() {\n\t\tthis._isMounted = true;\n\t\tthis.setImage();\n\t}\n\n\tcomponentDidUpdate(prevProps, prevState) {\n\n\t\tconst previousMessageStr = JSON.stringify(prevProps.message);\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\n\t\tif (previousMessageStr !== currentMessageStr) {\n\t\t\tthis.setImage();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis._isMounted = false;\n\t}\n\n\tchooseImage = thumbnailGenerationObject => {\n\t\tconst smallUrl = thumbnailGenerationObject[\"url_small\"];\n\t\tconst mediumUrl = thumbnailGenerationObject[\"url_medium\"];\n\n\t\tconst mq = window.matchMedia(this.props.theme.breakPoints[0]);\n\n\t\tlet imageToDownload = mediumUrl;\n\t\tif (mq.matches) {\n\t\t\timageToDownload = smallUrl;\n\t\t}\n\n\t\treturn imageToDownload;\n\t};\n\n\tsetImage = () => {\n\n\t\tconst thumbnailGenerationData = checkMessageForExtensionsData(this.props.message, \"thumbnail-generation\");\n\t\t\n\t\tif (thumbnailGenerationData) {\n\n\t\t\tlet imageName = \"\";\n\t\t\tif (this.props.message.data.attachments \n\t\t\t&& typeof this.props.message.data.attachments === \"object\" \n\t\t\t&& this.props.message.data.attachments.length) {\n\n\t\t\t\timageName = this.props.message.data.attachments[0]?.name;\n\t\t\t}\n\n\t\t\tconst mq = window.matchMedia(this.props.theme.breakPoints[0]);\n\t\t\tmq.addListener(() => {\n\t\t\t\tconst imageToDownload = this.chooseImage(thumbnailGenerationData);\n\t\t\t\tlet img = new Image();\n\t\t\t\timg.src = imageToDownload;\n\t\t\t\timg.onload = () => {\n\t\t\t\t\tif (this._isMounted && this.state.imageUrl !== img.src) {\n\t\t\t\t\t\tthis.setState({ imageUrl: img.src, imageName: imageName });\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t});\n\n\t\t\tconst imageToDownload = this.chooseImage(thumbnailGenerationData);\n\t\t\tthis.downloadImage(imageToDownload)\n\t\t\t\t.then(response => {\n\t\t\t\t\tlet img = new Image();\n\t\t\t\t\timg.src = imageToDownload;\n\t\t\t\t\timg.onload = () => {\n\t\t\t\t\t\tif (this._isMounted && this.state.imageUrl !== img.src) {\n\t\t\t\t\t\t\tthis.setState({ imageUrl: img.src, imageName: imageName });\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t\t\t.catch(error => console.error(error));\n\t\t} else {\n\t\t\tthis.setMessageImageUrl();\n\t\t}\n\t};\n\n\tsetMessageImageUrl = () => {\n\n\t\tif (this.props.message.data.attachments \n\t\t&& typeof this.props.message.data.attachments === \"object\" \n\t\t&& this.props.message.data.attachments.length) {\n\n\t\t\tlet img = new Image();\n\t\t\timg.src = this.props.message.data.attachments[0].url;\n\t\t\tconst imageName = this.props.message.data.attachments[0]?.name;\n\t\t\timg.onload = () => {\n\t\t\t\tif (this._isMounted && this.state.imageUrl !== img.src) {\n\t\t\t\t\tthis.setState({ imageUrl: img.src, imageName: imageName });\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t\t\n\t};\n\n\tdownloadImage(imgUrl) {\n\t\tconst promise = new Promise((resolve, reject) => {\n\t\t\tconst xhr = new XMLHttpRequest();\n\t\t\txhr.open(\"GET\", imgUrl, true);\n\t\t\txhr.responseType = \"blob\";\n\n\t\t\txhr.onload = () => {\n\t\t\t\tif (xhr.readyState === 4) {\n\t\t\t\t\tif (xhr.status === 200) {\n\t\t\t\t\t\tthis.timer = null;\n\t\t\t\t\t\tresolve(xhr.response);\n\t\t\t\t\t} else if (xhr.status === 403) {\n\t\t\t\t\t\tthis.timer = setTimeout(() => {\n\t\t\t\t\t\t\tthis.downloadImage(imgUrl)\n\t\t\t\t\t\t\t\t.then(response => resolve(response))\n\t\t\t\t\t\t\t\t.catch(error => reject(error));\n\t\t\t\t\t\t}, 800);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treject(xhr.statusText);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\txhr.onerror = event => reject(new Error(\"There was a network error.\", event));\n\t\t\txhr.ontimeout = event => reject(new Error(\"There was a timeout error.\", event));\n\t\t\txhr.send();\n\t\t});\n\n\t\treturn promise;\n\t}\n\n\topen = () => {\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"VIEW_ORIGINAL_IMAGE\"], this.props.message);\n\t};\n\n\thandleMouseHover = () => {\n\t\tthis.setState(this.toggleHoverState);\n\t};\n\n\ttoggleHoverState = state => {\n\t\treturn {\n\t\t\tisHovering: !state.isHovering,\n\t\t};\n\t};\n\n\trender() {\n\t\tlet avatar = null,\n\t\t\tname = null;\n\t\tif (this.props.message.receiverType === CometChat.RECEIVER_TYPE.GROUP) {\n\t\t\tavatar = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\n\t\t\tname = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{this.props.message.sender.name}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tlet messageReactions = null;\n\t\tconst reactionsData = checkMessageForExtensionsData(this.props.message, \"reactions\");\n\t\tif (reactionsData) {\n\t\t\tif (Object.keys(reactionsData).length) {\n\t\t\t\tmessageReactions = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet toolTipView = null;\n\t\tif (this.state.isHovering) {\n\t\t\ttoolTipView = ;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{avatar}\n\t\t\t\t\t
    \n\t\t\t\t\t\t{name}\n\t\t\t\t\t\t{toolTipView}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tthis.imgRef = el;\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t{messageReactions}\n\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatReceiverImageMessageBubble.defaultProps = {\n\ttheme: theme,\n\tactionGenerated: () => {},\n};\n\nCometChatReceiverImageMessageBubble.propTypes = {\n\ttheme: PropTypes.object,\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatReceiverImageMessageBubble };","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEXx7OqhaJO7AAAAAXRSTlPM0jRW/QAAAApJREFUeJxjYgAAAAYAAzY3fKgAAAAASUVORK5CYII=\"","export const messageContainerStyle = () => {\n\n return {\n alignSelf: \"flex-start\",\n marginBottom: \"16px\",\n paddingLeft: \"16px\",\n paddingRight: \"16px\",\n maxWidth: \"65%\",\n clear: \"both\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageWrapperStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-start\",\n display: \"flex\",\n }\n}\n\nexport const messageThumbnailStyle = () => {\n\n return {\n width: \"36px\",\n height: \"36px\",\n margin: \"10px 5px\",\n float: \"left\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageDetailStyle = () => {\n\n return {\n flex: \"1 1\",\n display: \"flex\",\n flexDirection: \"column\",\n }\n}\n\nexport const nameWrapperStyle = (avatar) => {\n\n const paddingValue = (avatar) ? {\n padding: \"3px 5px\",\n } : {};\n\n return {\n alignSelf: \"flex-start\",\n ...paddingValue\n }\n}\n\nexport const nameStyle = context => {\n\n\treturn {\n\t\tfontSize: \"10px\",\n\t\tcolor: `${context.theme.color.helpText}`,\n\t};\n};\n\nexport const messageTxtContainerStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n display: \"flex\",\n alignSelf: \"flex-start\",\n }\n}\n\nexport const messageTxtWrapperStyle = context => {\n\n\treturn {\n\t\tdisplay: \"inline-block\",\n\t\tborderRadius: \"12px\",\n\t\tbackgroundColor: `${context.theme.backgroundColor.secondary}`,\n\t\tpadding: \"8px 16px\",\n\t\twidth: \"auto\",\n\t};\n};\n\nexport const messageTxtStyle = (parsedMessage, emojiMessage, showVariation) => {\n\n let emojiAlignmentProp = {\n \" > img\": {\n width: \"24px\",\n height: \"24px\",\n display: \"inline-block\",\n verticalAlign: \"top\",\n zoom: \"1\",\n margin: \"0 2px\"\n }\n };\n\n let emojiProp = {};\n\n if (parsedMessage.length === emojiMessage.length && emojiMessage.length === 1) {\n emojiProp = {\n \"> img\": {\n width: \"48px\",\n height: \"48px\",\n }\n };\n } else if (parsedMessage.length === emojiMessage.length && emojiMessage.length === 2) {\n emojiProp = {\n \"> img\": {\n width: \"36px\",\n height: \"36px\",\n }\n };\n } else if (parsedMessage.length === emojiMessage.length && emojiMessage.length > 2) {\n emojiProp = {\n \"> img\": {\n width: \"24px\",\n height: \"24px\",\n }\n };\n }\n\n if (showVariation === false) {\n emojiProp = {\n \"> img\": {\n width: \"24px\",\n height: \"24px\",\n }\n };\n }\n\n return {\n margin: \"0\",\n fontSize: \"14px\",\n whiteSpace: \"pre-wrap\",\n wordBreak: \"break-word\",\n textAlign: \"left\",\n width: \"auto\",\n \" a\": {\n color: \"#0432FF\",\n \"&:hover\": {\n color: \"#04009D\"\n }\n },\n \" a[href^='mailto:']\": {\n color: \"#F38C00\",\n \"&:hover\": {\n color: \"#F36800\"\n }\n },\n \" a[href^='tel:']\": {\n color: \"#3802DA\",\n \"&:hover\": {\n color: \"#2D038F\"\n }\n },\n ...emojiAlignmentProp,\n ...emojiProp\n }\n}\n\nexport const messageInfoWrapperStyle = () => {\n\n return {\n alignSelf: \"flex-start\",\n padding: \"4px 8px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n height: \"25px\"\n }\n}\n\nexport const messageReactionsWrapperStyle = () => {\n\n return {\n display: \"inline-flex\",\n alignSelf: \"flex-start\",\n width: \"100%\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-start\",\n }\n}","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport twemoji from \"twemoji\";\nimport ReactHtmlParser from \"react-html-parser\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatMessageActions, CometChatThreadedMessageReplyCount, CometChatReadReceipt, CometChatLinkPreview} from \"../\";\nimport { CometChatMessageReactions } from \"../Extensions\";\nimport { CometChatAvatar } from \"../../Shared\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport { linkify, checkMessageForExtensionsData } from \"../../../util/common\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport Translator from \"../../../resources/localization/translator\";\nimport { theme } from \"../../../resources/theme\";\n\nimport {\n\tmessageContainerStyle,\n\tmessageWrapperStyle,\n\tmessageThumbnailStyle,\n\tmessageDetailStyle,\n\tnameWrapperStyle,\n\tnameStyle,\n\tmessageTxtContainerStyle,\n\tmessageTxtWrapperStyle,\n\tmessageTxtStyle,\n\tmessageInfoWrapperStyle,\n\tmessageReactionsWrapperStyle\n} from \"./style\";\n\nclass CometChatReceiverTextMessageBubble extends React.Component {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\ttranslatedMessage: \"\",\n\t\t\tisHovering: false,\n\t\t\tenableLargerSizeEmojis: false,\n\t\t};\n\t}\n\n\tshouldComponentUpdate(nextProps, nextState) {\n\t\t\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\t\tconst nextMessageStr = JSON.stringify(nextProps.message);\n\n\t\tif (currentMessageStr !== nextMessageStr \n\t\t|| this.state.isHovering !== nextState.isHovering\n\t\t|| this.state.enableLargerSizeEmojis !== nextState.enableLargerSizeEmojis) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.enableLargerSizeEmojis();\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\t\tconst previousMessageStr = JSON.stringify(prevProps.message);\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\n\t\tif (previousMessageStr !== currentMessageStr) {\n\t\t\tthis.setState({ translatedMessage: \"\" });\n\t\t}\n\n\t\tthis.enableLargerSizeEmojis();\n\t}\n\n\tgetMessageText = () => {\n\t\tlet messageText = this.props.message.text;\n\n\t\t//xss extensions data\n\t\tconst xssData = checkMessageForExtensionsData(this.props.message, \"xss-filter\");\n\t\tif (xssData && xssData.hasOwnProperty(\"sanitized_text\") && xssData.hasOwnProperty(\"hasXSS\") && xssData.hasXSS === \"yes\") {\n\t\t\tmessageText = xssData.sanitized_text;\n\t\t}\n\n\t\t//datamasking extensions data\n\t\tconst maskedData = checkMessageForExtensionsData(this.props.message, \"data-masking\");\n\t\tif (maskedData && maskedData.hasOwnProperty(\"data\") && maskedData.data.hasOwnProperty(\"sensitive_data\") && maskedData.data.hasOwnProperty(\"message_masked\") && maskedData.data.sensitive_data === \"yes\") {\n\t\t\tmessageText = maskedData.data.message_masked;\n\t\t}\n\n\t\t//profanity extensions data\n\t\tconst profaneData = checkMessageForExtensionsData(this.props.message, \"profanity-filter\");\n\t\tif (profaneData && profaneData.hasOwnProperty(\"profanity\") && profaneData.hasOwnProperty(\"message_clean\") && profaneData.profanity === \"yes\") {\n\t\t\tmessageText = profaneData.message_clean;\n\t\t}\n\n\t\tconst formattedText = linkify(messageText);\n\n\t\tconst emojiParsedMessage = twemoji.parse(formattedText, { folder: \"svg\", ext: \".svg\" });\n\t\tconst parsedMessage = ReactHtmlParser(emojiParsedMessage, { decodeEntities: false });\n\t\tconst emojiMessage = parsedMessage.filter(message => message instanceof Object && message.type === \"img\");\n\n\t\tlet showVariation = true;\n\t\t//if larger size emojis feature is disabled\n\t\tif (this.state.enableLargerSizeEmojis === false) {\n\t\t\tshowVariation = false;\n\t\t}\n\n\t\tmessageText = (\n\t\t\t
    \n\t\t\t\t

    \n\t\t\t\t\t{parsedMessage}\n\t\t\t\t\t{this.state.translatedMessage}\n\t\t\t\t

    \n\t\t\t
    \n\t\t);\n\n\t\treturn messageText;\n\t};\n\n\ttranslateMessage = message => {\n\t\tconst messageId = message.id;\n\t\tconst messageText = message.text;\n\n\t\tconst browserLanguageCode = Translator.getBrowserLanguage().toLowerCase();\n\t\tlet translateToLanguage = browserLanguageCode;\n\t\tif (browserLanguageCode.indexOf(\"-\") !== -1) {\n\t\t\tconst browserLanguageArray = browserLanguageCode.split(\"-\");\n\t\t\ttranslateToLanguage = browserLanguageArray[0];\n\t\t}\n\n\t\tlet translatedMessage = \"\";\n\t\tCometChat.callExtension(\"message-translation\", \"POST\", \"v2/translate\", {\n\t\t\tmsgId: messageId,\n\t\t\ttext: messageText,\n\t\t\tlanguages: [translateToLanguage],\n\t\t})\n\t\t\t.then(result => {\n\t\t\t\tif (result && result.hasOwnProperty(\"language_original\") && result[\"language_original\"] !== translateToLanguage) {\n\t\t\t\t\tif (result.hasOwnProperty(\"translations\") && result.translations.length) {\n\t\t\t\t\t\tconst messageTranslation = result.translations[0];\n\t\t\t\t\t\tif (messageTranslation.hasOwnProperty(\"message_translated\")) {\n\t\t\t\t\t\t\ttranslatedMessage = `\\n(${messageTranslation[\"message_translated\"]})`;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"ERROR\"], [], \"SOMETHING_WRONG\");\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"INFO\"], [], \"SAME_LANGUAGE_MESSAGE\");\n\t\t\t\t}\n\n\t\t\t\tthis.setState({ translatedMessage: translatedMessage });\n\t\t\t})\n\t\t\t.catch(error => this.props.actionGenerated(enums.ACTIONS[\"ERROR\"], [], \"SOMETHING_WRONG\"));\n\t};\n\n\tenableLargerSizeEmojis = () => {\n\t\tthis.context.FeatureRestriction.isLargerSizeEmojisEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enableLargerSizeEmojis) {\n\t\t\t\t\tthis.setState({ enableLargerSizeEmojis: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableLargerSizeEmojis !== false) {\n\t\t\t\t\tthis.setState({ enableLargerSizeEmojis: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\thandleMouseHover = () => {\n\t\tthis.setState(this.toggleHoverState);\n\t};\n\n\ttoggleHoverState = state => {\n\t\treturn {\n\t\t\tisHovering: !state.isHovering,\n\t\t};\n\t};\n\n\tactionHandler = (action, message) => {\n\t\tswitch (action) {\n\t\t\tcase enums.ACTIONS[\"REACT_TO_MESSAGE\"]:\n\t\t\t\tthis.props.actionGenerated(action, message);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"VIEW_THREADED_MESSAGE\"]:\n\t\t\t\tthis.props.actionGenerated(action, message);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"DELETE_MESSAGE\"]:\n\t\t\t\tthis.props.actionGenerated(action, message);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"EDIT_MESSAGE\"]:\n\t\t\t\tthis.props.actionGenerated(action, message);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"TRANSLATE_MESSAGE\"]:\n\t\t\t\tthis.translateMessage(message);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\trender() {\n\n\t\tlet avatar = null,\n\t\t\tname = null;\n\t\tif (this.props.message.receiverType === CometChat.RECEIVER_TYPE.GROUP) {\n\t\t\tavatar = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\n\t\t\tname = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{this.props.message.sender.name}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tlet messageText = this.getMessageText();\n\t\t//linkpreview extensions data\n\t\tconst linkPreviewData = checkMessageForExtensionsData(this.props.message, \"link-preview\");\n\t\tif (linkPreviewData && linkPreviewData.hasOwnProperty(\"links\") && linkPreviewData[\"links\"].length) {\n\t\t\tmessageText = ;\n\t\t}\n\n\t\t//messagereactions extensions data\n\t\tlet messageReactions = null;\n\t\tconst reactionsData = checkMessageForExtensionsData(this.props.message, \"reactions\");\n\t\tif (reactionsData) {\n\t\t\tif (Object.keys(reactionsData).length) {\n\t\t\t\tmessageReactions = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet toolTipView = null;\n\t\tif (this.state.isHovering) {\n\t\t\ttoolTipView = ;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{avatar}\n\t\t\t\t\t
    \n\t\t\t\t\t\t{name}\n\t\t\t\t\t\t{toolTipView}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{messageText}\n\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t{messageReactions}\n\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatReceiverTextMessageBubble.defaultProps = {\n\ttheme: theme,\n\tactionGenerated: {},\n};\n\nCometChatReceiverTextMessageBubble.propTypes = {\n\ttheme: PropTypes.object,\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatReceiverTextMessageBubble };","export const messageContainerStyle = () => {\n\n return {\n alignSelf: \"flex-start\",\n marginBottom: \"16px\",\n paddingLeft: \"16px\",\n paddingRight: \"16px\",\n maxWidth: \"65%\",\n clear: \"both\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageWrapperStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-start\",\n display: \"flex\",\n }\n}\n\nexport const messageThumbnailStyle = () => {\n\n return {\n width: \"36px\",\n height: \"36px\",\n margin: \"10px 5px\",\n float: \"left\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageDetailStyle = () => {\n\n return {\n flex: \"1 1\",\n display: \"flex\",\n flexDirection: \"column\",\n }\n}\n\nexport const nameWrapperStyle = (avatar) => {\n\n const paddingValue = (avatar) ? {\n padding: \"3px 5px\",\n } : {};\n\n return {\n alignSelf: \"flex-start\",\n ...paddingValue\n }\n}\n\nexport const nameStyle = context => {\n\n\treturn {\n\t\tfontSize: \"10px\",\n\t\tcolor: `${context.theme.color.helpText}`,\n\t};\n};\n\nexport const messageVideoContainerStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-start\",\n display: \"flex\",\n }\n}\n\nexport const messageVideoWrapperStyle = () => {\n\n return {\n display: \"inline-block\",\n alignSelf: \"flex-start\",\n '> video': {\n maxWidth: \"250px\",\n borderRadius: \"12px\",\n display: \"inherit\",\n outline: \"none\",\n }\n }\n}\n\nexport const messageInfoWrapperStyle = () => {\n\n return {\n alignSelf: \"flex-start\",\n padding: \"4px 8px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n height: \"25px\"\n }\n}\n\nexport const messageReactionsWrapperStyle = () => {\n\n return {\n display: \"inline-flex\",\n alignSelf: \"flex-start\",\n width: \"100%\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-start\",\n }\n}","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatMessageActions, CometChatThreadedMessageReplyCount, CometChatReadReceipt } from \"../\";\nimport { CometChatMessageReactions } from \"../Extensions\";\nimport { CometChatAvatar } from \"../../Shared\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport { checkMessageForExtensionsData } from \"../../../util/common\";\n\nimport { theme } from \"../../../resources/theme\";\n\nimport {\n\tmessageContainerStyle,\n\tmessageWrapperStyle,\n\tmessageThumbnailStyle,\n\tmessageDetailStyle,\n\tnameWrapperStyle,\n\tnameStyle,\n\tmessageVideoContainerStyle,\n\tmessageVideoWrapperStyle,\n\tmessageInfoWrapperStyle,\n\tmessageReactionsWrapperStyle\n} from \"./style\";\n\nclass CometChatReceiverVideoMessageBubble extends React.Component {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tisHovering: false,\n\t\t};\n\t}\n\n\tshouldComponentUpdate(nextProps, nextState) {\n\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\t\tconst nextMessageStr = JSON.stringify(nextProps.message);\n\n\t\tif (currentMessageStr !== nextMessageStr \n\t\t|| this.state.isHovering !== nextState.isHovering) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\thandleMouseHover = () => {\n\t\tthis.setState(this.toggleHoverState);\n\t};\n\n\ttoggleHoverState = state => {\n\t\treturn {\n\t\t\tisHovering: !state.isHovering,\n\t\t};\n\t};\n\n\trender() {\n\t\tlet avatar = null,\n\t\t\tname = null;\n\t\tif (this.props.message.receiverType === CometChat.RECEIVER_TYPE.GROUP) {\n\t\t\tavatar = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\n\t\t\tname = (\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t{this.props.message.sender.name}\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\tlet messageReactions = null;\n\t\tconst reactionsData = checkMessageForExtensionsData(this.props.message, \"reactions\");\n\t\tif (reactionsData) {\n\t\t\tif (Object.keys(reactionsData).length) {\n\t\t\t\tmessageReactions = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet toolTipView = null;\n\t\tif (this.state.isHovering) {\n\t\t\ttoolTipView = ;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{avatar}\n\t\t\t\t\t
    \n\t\t\t\t\t\t{name}\n\t\t\t\t\t\t{toolTipView}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\n\t\t\t\t\t\t{messageReactions}\n\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatReceiverVideoMessageBubble.defaultProps = {\n\ttheme: theme,\n\tactionGenerated: {},\n};\n\nCometChatReceiverVideoMessageBubble.propTypes = {\n\ttheme: PropTypes.object,\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatReceiverVideoMessageBubble };","export const messageContainerStyle = () => {\n\n return {\n alignSelf: \"flex-end\",\n marginBottom: \"16px\",\n paddingLeft: \"16px\",\n paddingRight: \"16px\",\n maxWidth: \"65%\",\n clear: \"both\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageWrapperStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-end\",\n display: \"flex\",\n }\n}\n\nexport const messageAudioWrapperStyle = () => {\n\n return {\n display: \"inline-block\",\n borderRadius: \"12px\",\n alignSelf: \"flex-end\",\n ' > audio': {\n maxWidth: \"250px\",\n display: \"inherit\",\n outline: \"none\", \n }\n }\n}\n\nexport const messageInfoWrapperStyle = () => {\n\n return {\n alignSelf: \"flex-end\",\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n height: \"25px\"\n }\n}\n\nexport const messageReactionsWrapperStyle = () => {\n\n return {\n display: \"inline-flex\",\n alignSelf: \"flex-end\",\n width: \"100%\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-end\",\n }\n}","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\"\nimport PropTypes from \"prop-types\";\n\nimport { CometChatMessageActions, CometChatThreadedMessageReplyCount, CometChatReadReceipt } from \"../\";\nimport { CometChatMessageReactions } from \"../Extensions\";\n\nimport { checkMessageForExtensionsData, getMessageFileMetadata } from \"../../../util/common\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport { theme } from \"../../../resources/theme\";\n\nimport {\n\tmessageContainerStyle,\n\tmessageWrapperStyle,\n\tmessageAudioWrapperStyle,\n\tmessageInfoWrapperStyle,\n\tmessageReactionsWrapperStyle\n} from \"./style\";\n\nclass CometChatSenderAudioMessageBubble extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tisHovering: false,\n\t\t\tfileData: {},\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\t\t\n\t\tconst fileData = this.getFileData();\n\t\tthis.setState({ fileData: fileData });\n\t}\n\n\tshouldComponentUpdate(nextProps, nextState) {\n\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\t\tconst nextMessageStr = JSON.stringify(nextProps.message);\n\n\t\tif (currentMessageStr !== nextMessageStr \n\t\t|| this.state.isHovering !== nextState.isHovering \n\t\t|| this.state.fileData !== nextState.fileData) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\n\t\tconst previousMessageStr = JSON.stringify(prevProps.message);\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\n\t\tif (previousMessageStr !== currentMessageStr) {\n\t\t\tconst fileData = this.getFileData();\n\n\t\t\tconst previousfileData = JSON.stringify(this.state.fileData);\n\t\t\tconst currentfileData = JSON.stringify(fileData);\n\n\t\t\tif (previousfileData !== currentfileData) {\n\t\t\t\tthis.setState({ fileData: fileData });\n\t\t\t}\n\t\t}\n\t}\n\n\tgetFileData = () => {\n\n\t\tconst metadataKey = enums.CONSTANTS[\"FILE_METADATA\"];\n\t\tconst fileMetadata = getMessageFileMetadata(this.props.message, metadataKey);\n\t\t\n\t\tif (fileMetadata instanceof Blob) {\n\t\t\treturn { fileName: fileMetadata[\"name\"] };\n\t\t} else if (this.props.message.data.hasOwnProperty(\"attachments\") && this.props.message.data.attachments.length) {\n\t\t\tconst fileName = this.props.message.data.attachments[0]?.name;\n\t\t\tconst fileUrl = this.props.message.data.attachments[0]?.url;\n\n\t\t\treturn { fileName, fileUrl: fileUrl };\n\t\t}\n\t};\n\n\thandleMouseHover = () => {\n\t\tthis.setState(this.toggleHoverState);\n\t};\n\n\ttoggleHoverState = state => {\n\t\treturn {\n\t\t\tisHovering: !state.isHovering,\n\t\t};\n\t};\n\n\trender() {\n\t\tif (!Object.keys(this.state.fileData).length) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet messageReactions = null;\n\t\tconst reactionsData = checkMessageForExtensionsData(this.props.message, \"reactions\");\n\t\tif (reactionsData) {\n\t\t\tif (Object.keys(reactionsData).length) {\n\t\t\t\tmessageReactions = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet toolTipView = null;\n\t\tif (this.state.isHovering) {\n\t\t\ttoolTipView = ;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{toolTipView}\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\n\t\t\t\t{messageReactions}\n\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatSenderAudioMessageBubble.defaultProps = {\n\ttheme: theme,\n\tactionGenerated: {},\n};\n\nCometChatSenderAudioMessageBubble.propTypes = {\n\ttheme: PropTypes.object,\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatSenderAudioMessageBubble };","export const messageContainerStyle = () => {\n\n return {\n alignSelf: \"flex-end\",\n marginBottom: \"16px\",\n paddingLeft: \"16px\",\n paddingRight: \"16px\",\n maxWidth: \"305px\",\n clear: \"both\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageWrapperStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-end\",\n display: \"flex\",\n }\n}\n\nexport const messageTxtWrapperStyle = context => {\n\n\treturn {\n\t\tdisplay: \"inline-block\",\n\t\tborderRadius: \"12px\",\n\t\tbackgroundColor: `${context.theme.primaryColor}`,\n\t\tcolor: `${context.theme.color.white}`,\n\t\tpadding: \"16px\",\n\t\talignSelf: \"flex-end\",\n\t\twidth: \"auto\",\n\t\tminHeight: \"106px\",\n\t};\n};\n\nexport const messageTxtContainerStyle = () => {\n\n return {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n \"img\": {\n width: \"35px\"\n }\n }\n}\n\nexport const messageTxtStyle = () => {\n\n return {\n\t\t\tmargin: \"0\",\n\t\t\twhiteSpace: \"pre-wrap\",\n\t\t\twordBreak: \"break-word\",\n\t\t\ttextAlign: \"left\",\n\t\t\twidth: \"calc(100% - 30px)\",\n\t\t\tfontSize: \"14px\",\n\t\t\tmarginLeft: \"8px\",\n\t\t};\n}\n\nexport const messageBtnStyle = context => {\n\n\treturn {\n\t\tlistStyleType: \"none\",\n\t\tpadding: \"0\",\n\t\tmargin: \"16px 0 0 0\",\n\t\twidth: \"100%\",\n\t\tli: {\n\t\t\tbackgroundColor: `${context.theme.backgroundColor.white}`,\n\t\t\tborderRadius: \"8px\",\n\t\t\tdisplay: \"flex\",\n\t\t\tjustifyContent: \"center\",\n\t\t\talignItems: \"center\",\n\t\t\twidth: \"100%\",\n\t\t\tposition: \"relative\",\n\t\t\tmargin: \"0\",\n\t\t\tpadding: \"8px\",\n\t\t\tcursor: \"pointer\",\n\t\t\t\"> p\": {\n\t\t\t\tbackground: \"0 0\",\n\t\t\t\ttextAlign: \"center\",\n\t\t\t\tcolor: `${context.theme.primaryColor}`,\n\t\t\t\twidth: \"100%\",\n\t\t\t\tfontWeight: \"600\",\n\t\t\t\tdisplay: \"inline-block\",\n\t\t\t\tfontSize: \"14px\",\n\t\t\t\tmargin: \"0\",\n\t\t\t},\n\t\t},\n\t};\n};\n\nexport const messageInfoWrapperStyle = () => {\n\n return {\n alignSelf: \"flex-end\",\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n\theight: \"25px\"\n }\n}\n\nexport const messageReactionsWrapperStyle = () => {\n\n return {\n display: \"inline-flex\",\n alignSelf: \"flex-end\",\n width: \"100%\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-end\",\n }\n}\n\nexport const iconStyle = (img, context) => {\n\treturn {\n\t\twidth: \"30px\",\n\t\theight: \"24px\",\n\t\tdisplay: \"inline-block\",\n\t\tmask: `url(${img}) center center no-repeat`,\n\t\tbackgroundColor: `${context.theme.color.white}`,\n\t};\n};\n","export default __webpack_public_path__ + \"static/media/video-call.0e4e774d.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\n\nimport { CometChatMessageActions, CometChatThreadedMessageReplyCount, CometChatReadReceipt } from \"../\";\nimport { CometChatMessageReactions } from \"../Extensions\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport { checkMessageForExtensionsData } from \"../../../util/common\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n messageContainerStyle,\n messageWrapperStyle,\n messageTxtWrapperStyle,\n messageTxtContainerStyle,\n messageTxtStyle,\n messageBtnStyle,\n messageInfoWrapperStyle,\n messageReactionsWrapperStyle,\n iconStyle\n} from \"./style\";\n\nimport callIcon from \"./resources/video-call.svg\";\n\nclass CometChatSenderDirectCallBubble extends React.Component {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tisHovering: false,\n\t\t};\n\t}\n\n\tshouldComponentUpdate(nextProps, nextState) {\n\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\t\tconst nextMessageStr = JSON.stringify(nextProps.message);\n\n\t\tif (currentMessageStr !== nextMessageStr \n || this.state.isHovering !== nextState.isHovering) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\thandleMouseHover = () => {\n\t\tthis.setState(this.toggleHoverState);\n\t};\n\n\ttoggleHoverState = state => {\n\t\treturn {\n\t\t\tisHovering: !state.isHovering,\n\t\t};\n\t};\n\n\trender() {\n\t\tlet messageReactions = null;\n\t\tconst reactionsData = checkMessageForExtensionsData(this.props.message, \"reactions\");\n\t\tif (reactionsData) {\n\t\t\tif (Object.keys(reactionsData).length) {\n\t\t\t\tmessageReactions = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet toolTipView = null;\n\t\tif (this.state.isHovering) {\n\t\t\ttoolTipView = ;\n\t\t}\n\n\t\tlet callMessage = null;\n\t\tconst joinCallMessage = Translator.translate(\"YOU_ALREADY_ONGOING_CALL\", this.context.language);\n\n\t\tif (this.context.checkIfDirectCallIsOngoing() === enums.CONSTANTS.CALLS[\"ONGOING_CALL_SAME_GROUP\"]) {\n\t\t\t//ongoing call in same group\n\t\t\tcallMessage = (\n\t\t\t\t
  • \n\t\t\t\t\t

    {Translator.translate(\"JOIN\", this.context.language)}

    \n\t\t\t\t
  • \n\t\t\t);\n\t\t} else if (this.context.checkIfDirectCallIsOngoing() === enums.CONSTANTS.CALLS[\"ONGOING_CALL_DIFF_GROUP\"]) {\n\t\t\t//ongoing call in different group\n\n\t\t\tcallMessage = (\n\t\t\t\t
  • \n\t\t\t\t\t

    {Translator.translate(\"JOIN\", this.context.language)}

    \n\t\t\t\t
  • \n\t\t\t);\n\t\t} else if (this.context.checkIfCallIsOngoing()) {\n\t\t\t//ongoing call\n\n\t\t\tcallMessage = (\n\t\t\t\t
  • \n\t\t\t\t\t

    {Translator.translate(\"JOIN\", this.context.language)}

    \n\t\t\t\t
  • \n\t\t\t);\n\t\t} else {\n\t\t\tcallMessage = (\n\t\t\t\t
  • this.props.actionGenerated(enums.ACTIONS[\"JOIN_DIRECT_CALL\"], this.props.message)}>\n\t\t\t\t\t

    {Translator.translate(\"JOIN\", this.context.language)}

    \n\t\t\t\t
  • \n\t\t\t);\n\t\t}\n\n\t\tconst messageTitle = Translator.translate(\"YOU_INITIATED_GROUP_CALL\", this.context.language);\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{toolTipView}\n\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t{messageTitle}\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
      \n\t\t\t\t\t\t\t{callMessage}\n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\n\t\t\t\t{messageReactions}\n\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatSenderDirectCallBubble.defaultProps = {\n\ttheme: theme,\n\tactionGenerated: () => {},\n};\n\nCometChatSenderDirectCallBubble.propTypes = {\n\ttheme: PropTypes.object,\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatSenderDirectCallBubble };","export const messageContainerStyle = () => {\n\n return {\n alignSelf: \"flex-end\",\n marginBottom: \"16px\",\n paddingLeft: \"16px\",\n paddingRight: \"16px\",\n maxWidth: \"65%\",\n clear: \"both\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageWrapperStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-end\",\n display: \"flex\",\n }\n}\n\nexport const messageFileWrapper = context => {\n\n\treturn {\n\t\tdisplay: \"inline-block\",\n\t\tborderRadius: \"12px\",\n\t\tbackgroundColor: `${context.theme.primaryColor}`,\n\t\tcolor: `${context.theme.color.white}`,\n\t\tpadding: \"8px 16px\",\n\t\talignSelf: \"flex-end\",\n\t\tmaxWidth: \"100%\",\n\t\t\".message__file\": {\n\t\t\tdisplay: \"flex\",\n\t\t\tjustifyContent: \"center\",\n\t\t\talignItems: \"center\",\n\t\t\tbackground: \"0 0\",\n\t\t\ttextDecoration: \"none\",\n\t\t\tcolor: `${context.theme.color.white}`,\n\t\t\tmaxWidth: \"100%\",\n\t\t\tfontSize: \"14px\",\n\t\t\t\"&:visited, &:active, &:hover\": {\n\t\t\t\tcolor: `${context.theme.color.white}`,\n\t\t\t\ttextDecoration: \"none\",\n\t\t\t},\n\t\t\t\"> p\": {\n\t\t\t\tmargin: \"0\",\n\t\t\t\twhiteSpace: \"pre-wrap\",\n\t\t\t\twordBreak: \"break-word\",\n\t\t\t\ttextAlign: \"left\",\n\t\t\t\twidth: \"100%\",\n\t\t\t\tfontSize: \"14px\",\n\t\t\t\tmarginLeft: \"8px\",\n\t\t\t},\n\t\t},\n\t};\n};\n\nexport const messageInfoWrapperStyle = () => {\n\n return {\n alignSelf: \"flex-end\",\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n\theight: \"25px\",\n }\n}\n\nexport const messageReactionsWrapperStyle = () => {\n\n return {\n display: \"inline-flex\",\n alignSelf: \"flex-end\",\n width: \"100%\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-end\",\n }\n}\n\nexport const iconStyle = (img, context) => {\n\treturn {\n\t\twidth: \"24px\",\n\t\theight: \"24px\",\n\t\tdisplay: \"inline-block\",\n\t\tmask: `url(${img}) center center no-repeat`,\n\t\tbackgroundColor: `${context.theme.color.white}`,\n\t\tflexShrink: \"0\"\n\t};\n};\n","export default __webpack_public_path__ + \"static/media/file-upload.a68d497b.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\n\nimport { CometChatMessageActions, CometChatThreadedMessageReplyCount, CometChatReadReceipt } from \"../\";\nimport { CometChatMessageReactions } from \"../Extensions\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport { checkMessageForExtensionsData, getMessageFileMetadata } from \"../../../util/common\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport { theme } from \"../../../resources/theme\";\n\nimport {\n\tmessageContainerStyle,\n\tmessageWrapperStyle,\n\tmessageFileWrapper,\n\tmessageInfoWrapperStyle,\n\tmessageReactionsWrapperStyle,\n\ticonStyle\n} from \"./style\";\n\n\nimport fileIcon from \"./resources/file-upload.svg\";\n\nclass CometChatSenderFileMessageBubble extends React.Component {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tisHovering: false,\n\t\t\tfileData: {},\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\n\t\tconst fileData = this.getFileData();\n\t\tthis.setState({ fileData: fileData });\n\t}\n\n\tshouldComponentUpdate(nextProps, nextState) {\n\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\t\tconst nextMessageStr = JSON.stringify(nextProps.message);\n\n\t\tif (currentMessageStr !== nextMessageStr \n\t\t|| this.state.isHovering !== nextState.isHovering \n\t\t|| this.state.fileData !== nextState.fileData) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\n\t\tconst previousMessageStr = JSON.stringify(prevProps.message);\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\n\t\tif (previousMessageStr !== currentMessageStr) {\n\n\t\t\tconst fileData = this.getFileData();\n\t\t\t\n\t\t\tconst previousfileData = JSON.stringify(this.state.fileData);\n\t\t\tconst currentfileData = JSON.stringify(fileData);\n\t\t\t\n\t\t\tif (previousfileData !== currentfileData) {\n\t\t\t\tthis.setState({ fileData: fileData });\n\t\t\t}\n\t\t}\n\t}\n\n\thandleMouseHover = () => {\n\t\tthis.setState(this.toggleHoverState);\n\t};\n\n\ttoggleHoverState = state => {\n\t\treturn {\n\t\t\tisHovering: !state.isHovering,\n\t\t};\n\t};\n\n\tgetFileData = () => {\n\t\t\n\t\tconst metadataKey = enums.CONSTANTS[\"FILE_METADATA\"];\n\t\tconst fileMetadata = getMessageFileMetadata(this.props.message, metadataKey);\n\n\t\tif (fileMetadata instanceof Blob) {\n\t\t\t\n\t\t\treturn { fileName: fileMetadata[\"name\"] };\n\n\t\t} else if (this.props.message.data.attachments \n\t\t&& typeof this.props.message.data.attachments === \"object\" \n\t\t&& this.props.message.data.attachments.length) {\n\n\t\t\tconst fileName = this.props.message.data.attachments[0]?.name;\n\t\t\tconst fileUrl = this.props.message.data.attachments[0]?.url;\n\n\t\t\treturn { fileName, fileUrl: fileUrl };\n\t\t}\n\t};\n\n\trender() {\n\t\tif (!Object.keys(this.state.fileData).length) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet messageReactions = null;\n\t\tconst reactionsData = checkMessageForExtensionsData(this.props.message, \"reactions\");\n\t\tif (reactionsData) {\n\t\t\tif (Object.keys(reactionsData).length) {\n\t\t\t\tmessageReactions = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet toolTipView = null;\n\t\tif (this.state.isHovering) {\n\t\t\ttoolTipView = ;\n\t\t}\n\n\t\tlet fileMessage = null;\n\t\tif (this.state.fileData.hasOwnProperty(\"fileUrl\")) {\n\t\t\tfileMessage = (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t

    {this.state.fileData?.fileName}

    \n\t\t\t\t
    \n\t\t\t);\n\t\t} else {\n\t\t\tfileMessage = (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t

    {this.state.fileData?.fileName}

    \n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{toolTipView}\n\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    {fileMessage}
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\n\t\t\t\t{messageReactions}\n\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatSenderFileMessageBubble.defaultProps = {\n\ttheme: theme,\n\tactionGenerated: () => {},\n};\n\nCometChatSenderFileMessageBubble.propTypes = {\n\ttheme: PropTypes.object,\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatSenderFileMessageBubble };","export const messageContainerStyle = () => {\n\n return {\n alignSelf: \"flex-end\",\n marginBottom: \"16px\",\n paddingLeft: \"16px\",\n paddingRight: \"16px\",\n maxWidth: \"65%\",\n clear: \"both\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageWrapperStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-end\",\n display: \"flex\",\n }\n}\n\nexport const messageImgWrapper = context => {\n\n\tconst mq = [...context.theme.breakPoints];\n\n\treturn {\n\t\tdisplay: \"inline-block\",\n\t\talignSelf: \"flex-end\",\n\t\tmaxWidth: \"300px\",\n\t\theight: \"200px\",\n\t\tcursor: \"pointer\",\n\t\tflexShrink: \"0\",\n\t\timg: {\n\t\t\tborderRadius: \"8px\",\n\t\t\theight: \"100%\",\n\t\t},\n\t\t[`@media ${mq[1]}, ${mq[2]}`]: {\n\t\t\tminWidth: \"50px\",\n\t\t\tmaxWidth: \"150px\",\n\t\t\theight: \"100px\",\n\t\t\tpadding: \"2px 2px\",\n\t\t},\n\t};\n};\n\nexport const messageInfoWrapperStyle = () => {\n\n return {\n alignSelf: \"flex-end\",\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n height: \"25px\",\n padding: \"4px 8px\",\n }\n}\n\nexport const messageReactionsWrapperStyle = () => {\n\n return {\n display: \"inline-flex\",\n alignSelf: \"flex-end\",\n width: \"100%\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-end\",\n }\n}\n","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\n\nimport { CometChatMessageActions, CometChatThreadedMessageReplyCount, CometChatReadReceipt } from \"../\";\nimport { CometChatMessageReactions } from \"../Extensions\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\nimport { checkMessageForExtensionsData, getMessageFileMetadata } from \"../../../util/common\";\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n\tmessageContainerStyle,\n\tmessageWrapperStyle,\n\tmessageImgWrapper,\n\tmessageInfoWrapperStyle,\n\tmessageReactionsWrapperStyle\n} from \"./style\";\n\nimport srcIcon from \"./resources/1px.png\";\n\nclass CometChatSenderImageMessageBubble extends React.Component {\n\tstatic contextType = CometChatContext;\n\ttimer = null;\n\n\tconstructor(props, context) {\n\n\t\tsuper(props, context);\n\t\tthis._isMounted = false;\n\t\tthis.imgRef = React.createRef();\n\n\t\tthis.state = {\n\t\t\timageUrl: srcIcon,\n\t\t\timageName: Translator.translate(\"LOADING\", context.language),\n\t\t\tisHovering: false,\n\t\t};\n\t}\n\n\tshouldComponentUpdate(nextProps, nextState) {\n\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\t\tconst nextMessageStr = JSON.stringify(nextProps.message);\n\n\t\tif (currentMessageStr !== nextMessageStr \n\t\t|| this.state.imageUrl !== nextState.imageUrl \n\t\t|| this.state.isHovering !== nextState.isHovering) {\n\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tcomponentDidMount() {\n\n\t\tthis._isMounted = true;\n\t\tthis.setImage();\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\n\t\tconst previousMessageStr = JSON.stringify(prevProps.message);\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\n\t\tif (previousMessageStr !== currentMessageStr) {\n\t\t\tthis.setImage();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis._isMounted = false;\n\t}\n\n\tchooseImage = thumbnailGenerationObject => {\n\t\tconst smallUrl = thumbnailGenerationObject[\"url_small\"];\n\t\tconst mediumUrl = thumbnailGenerationObject[\"url_medium\"];\n\n\t\tconst mq = window.matchMedia(this.props.theme.breakPoints[0]);\n\n\t\tlet imageToDownload = mediumUrl;\n\t\tif (mq.matches) {\n\t\t\timageToDownload = smallUrl;\n\t\t}\n\n\t\treturn imageToDownload;\n\t};\n\n\tsetImage = () => {\n\n\t\tconst thumbnailGenerationData = checkMessageForExtensionsData(this.props.message, \"thumbnail-generation\");\n\t\tif (thumbnailGenerationData) {\n\n\t\t\tlet imageName = \"\";\n\t\t\tif (this.props.message.data.attachments \n\t\t\t&& typeof this.props.message.data.attachments === \"object\" \n\t\t\t&& this.props.message.data.attachments.length) {\n\t\t\t\timageName = this.props.message.data.attachments[0]?.name;\n\t\t\t}\n\n\t\t\tconst mq = window.matchMedia(this.props.theme.breakPoints[0]);\n\t\t\tmq.addListener(() => {\n\n\t\t\t\tconst imageToDownload = this.chooseImage(thumbnailGenerationData);\n\t\t\t\tlet img = new Image();\n\t\t\t\timg.src = imageToDownload;\n\t\t\t\timg.onload = () => {\n\t\t\t\t\tif (this._isMounted && this.state.imageUrl !== img.src) {\n\t\t\t\t\t\tthis.setState({ imageUrl: img.src, imageName: imageName });\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t});\n\n\t\t\tconst imageToDownload = this.chooseImage(thumbnailGenerationData);\n\t\t\tthis.downloadImage(imageToDownload)\n\t\t\t\t.then(response => {\n\t\t\t\t\tlet img = new Image();\n\t\t\t\t\timg.src = imageToDownload;\n\t\t\t\t\timg.onload = () => {\n\t\t\t\t\t\tif (this._isMounted && this.state.imageUrl !== img.src) {\n\t\t\t\t\t\t\tthis.setState({ imageUrl: img.src, imageName: imageName });\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t})\n\t\t\t\t.catch(error => console.error(error));\n\t\t} else {\n\t\t\tthis.setMessageImageUrl();\n\t\t}\n\t};\n\n\tsetMessageImageUrl = () => {\n\n\t\tconst metadataKey = enums.CONSTANTS[\"FILE_METADATA\"];\n\t\tconst fileMetadata = getMessageFileMetadata(this.props.message, metadataKey);\n\t\t\n\t\tlet img = new Image();\n\t\tlet imageName;\n\t\tif (fileMetadata instanceof Blob) {\n\n\t\t\tconst reader = new FileReader();\n\t\t\treader.onload = function() {\n\t\t\t\timg.src = reader.result;\n\t\t\t};\n\t\t\timageName = fileMetadata[\"name\"];\n\t\t\treader.readAsDataURL(fileMetadata);\n\n\t\t} else if (this.props.message.data.attachments \n\t\t\t&& typeof this.props.message.data.attachments === \"object\" \n\t\t\t&& this.props.message.data.attachments.length) {\n\n\t\t\tconst fileUrl = this.props.message.data.attachments[0]?.url;\n\t\t\timageName = this.props.message.data.attachments[0]?.name;\n\t\t\timg.src = fileUrl;\n\t\t}\n\n\t\timg.onload = () => {\n\t\t\t//only if there is a change in the image path, update state\n\t\t\tif (this._isMounted && this.state.imageUrl !== img.src) {\n\t\t\t\tthis.setState({ imageUrl: img.src, imageName: imageName });\n\t\t\t}\n\t\t};\n\t};\n\n\tdownloadImage(imgUrl) {\n\t\tconst promise = new Promise((resolve, reject) => {\n\t\t\tconst xhr = new XMLHttpRequest();\n\t\t\txhr.open(\"GET\", imgUrl, true);\n\t\t\txhr.responseType = \"blob\";\n\n\t\t\txhr.onload = () => {\n\t\t\t\tif (xhr.readyState === 4) {\n\t\t\t\t\tif (xhr.status === 200) {\n\t\t\t\t\t\tthis.timer = null;\n\t\t\t\t\t\tresolve(imgUrl);\n\t\t\t\t\t} else if (xhr.status === 403) {\n\t\t\t\t\t\tthis.timer = setTimeout(() => {\n\t\t\t\t\t\t\tthis.downloadImage(imgUrl)\n\t\t\t\t\t\t\t\t.then(response => resolve(imgUrl))\n\t\t\t\t\t\t\t\t.catch(error => reject(error));\n\t\t\t\t\t\t}, 800);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\treject(xhr.statusText);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\txhr.onerror = event => reject(new Error(\"There was a network error.\", event));\n\t\t\txhr.ontimeout = event => reject(new Error(\"There was a timeout error.\", event));\n\t\t\txhr.send();\n\t\t});\n\n\t\treturn promise;\n\t}\n\n\topen = () => {\n\t\tthis.props.actionGenerated(enums.ACTIONS[\"VIEW_ORIGINAL_IMAGE\"], this.props.message);\n\t};\n\n\thandleMouseHover = () => {\n\t\tthis.setState(this.toggleHoverState);\n\t};\n\n\ttoggleHoverState = state => {\n\t\treturn {\n\t\t\tisHovering: !state.isHovering,\n\t\t};\n\t};\n\n\trender() {\n\t\tlet messageReactions = null;\n\t\tconst reactionsData = checkMessageForExtensionsData(this.props.message, \"reactions\");\n\t\tif (reactionsData) {\n\t\t\tif (Object.keys(reactionsData).length) {\n\t\t\t\tmessageReactions = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet toolTipView = null;\n\t\tif (this.state.isHovering) {\n\t\t\ttoolTipView = ;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{toolTipView}\n\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tthis.imgRef = el;\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t/>\n\t\t\t\t\t
    \n\t\t\t\t
    \n\n\t\t\t\t{messageReactions}\n\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatSenderImageMessageBubble.defaultProps = {\n\ttheme: theme,\n\tactionGenerated: () => {},\n};\n\nCometChatSenderImageMessageBubble.propTypes = {\n\ttheme: PropTypes.object,\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatSenderImageMessageBubble };\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEXx7OqhaJO7AAAAAXRSTlPM0jRW/QAAAApJREFUeJxjYgAAAAYAAzY3fKgAAAAASUVORK5CYII=\"","export const messageContainerStyle = () => {\n\n return {\n alignSelf: \"flex-end\",\n marginBottom: \"16px\",\n paddingLeft: \"16px\",\n paddingRight: \"16px\",\n maxWidth: \"65%\",\n clear: \"both\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageWrapperStyle = () => {\n\n return {\n width: \"auto\",\n alignSelf: \"flex-end\",\n display: \"flex\",\n flex: \"1 1\"\n }\n}\n\nexport const messageTxtWrapperStyle = context => {\n\n\treturn {\n\t\tdisplay: \"inline-block\",\n\t\tborderRadius: \"12px\",\n\t\tbackgroundColor: `${context.theme.primaryColor}`,\n\t\tcolor: `${context.theme.color.white}`,\n\t\tpadding: \"8px 16px\",\n\t\twidth: \"auto\",\n\t};\n};\n\nexport const messageTxtStyle = (props, parsedMessage, emojiMessage, showVariation) => {\n\n let emojiAlignmentProp = {\n \" > img\": {\n width: \"24px\",\n height: \"24px\",\n display: \"inline-block\",\n verticalAlign: \"top\",\n zoom: \"1\",\n margin: \"0 2px\"\n }\n };\n\n let emojiProp = {};\n\n if (parsedMessage.length === emojiMessage.length && emojiMessage.length === 1) {\n emojiProp = {\n \"> img\": {\n width: \"48px\",\n height: \"48px\",\n }\n };\n } else if (parsedMessage.length === emojiMessage.length && emojiMessage.length === 2) {\n emojiProp = {\n \"> img\": {\n width: \"36px\",\n height: \"36px\",\n }\n };\n } else if (parsedMessage.length === emojiMessage.length && emojiMessage.length > 2) {\n emojiProp = {\n \"> img\": {\n width: \"24px\",\n height: \"24px\",\n }\n };\n }\n\n if (showVariation === false) {\n emojiProp = {\n \"> img\": {\n width: \"24px\",\n height: \"24px\",\n }\n };\n }\n\n return {\n margin: \"0\",\n fontSize: \"14px\",\n whiteSpace: \"pre-wrap\",\n wordBreak: \"break-word\",\n textAlign: \"left\",\n width: \"auto\",\n \" a\": {\n color: \"#0432FF\",\n \"&:hover\": {\n color: \"#04009D\"\n }\n },\n \" a[href^='mailto:']\": {\n color: \"#F38C00\",\n \"&:hover\": {\n color: \"#F36800\"\n }\n },\n \" a[href^='tel:']\": {\n color: \"#3802DA\",\n \"&:hover\": {\n color: \"#2D038F\"\n }\n },\n ...emojiAlignmentProp,\n ...emojiProp\n }\n}\n\nexport const messageInfoWrapperStyle = () => {\n\n return {\n alignSelf: \"flex-end\",\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n height: \"25px\",\n }\n}\n\nexport const messageReactionsWrapperStyle = () => {\n\n return {\n display: \"inline-flex\",\n alignSelf: \"flex-end\",\n width: \"100%\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-end\",\n }\n}\n","import React from \"react\";\nimport twemoji from \"twemoji\";\nimport ReactHtmlParser from \"react-html-parser\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatMessageActions, CometChatThreadedMessageReplyCount, CometChatReadReceipt, CometChatLinkPreview } from \"../\";\nimport { CometChatMessageReactions } from \"../Extensions\";\n\nimport { CometChatContext } from \"../../../util/CometChatContext\";\nimport { linkify, checkMessageForExtensionsData } from \"../../../util/common\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport Translator from \"../../../resources/localization/translator\";\nimport { theme } from \"../../../resources/theme\";\n\nimport {\n\tmessageContainerStyle,\n\tmessageWrapperStyle,\n\tmessageTxtWrapperStyle,\n\tmessageTxtStyle,\n\tmessageInfoWrapperStyle,\n\tmessageReactionsWrapperStyle,\n} from \"./style\";\n\nclass CometChatSenderTextMessageBubble extends React.Component {\n\tstatic contextType = CometChatContext;\n\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.messageTextRef = React.createRef();\n\n\t\tthis.state = {\n\t\t\ttranslatedMessage: \"\",\n\t\t\tisHovering: false,\n\t\t\tenableLargerSizeEmojis: false,\n\t\t};\n\t}\n\n\tshouldComponentUpdate(nextProps, nextState) {\n\t\t\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\t\tconst nextMessageStr = JSON.stringify(nextProps.message);\n\t\t\n\t\tif (currentMessageStr !== nextMessageStr \n\t\t|| this.state.isHovering !== nextState.isHovering\n\t\t|| this.state.enableLargerSizeEmojis !== nextState.enableLargerSizeEmojis) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\tcomponentDidMount() {\n\n\t\tthis.enableLargerSizeEmojis();\n\t}\n\n\tcomponentDidUpdate(prevProps, prevState) {\n\t\t\n\t\tif (prevProps.message !== this.props.message) {\n\n\t\t\tthis.setState({ translatedMessage: \"\" });\n\t\t}\n\n\t\tthis.enableLargerSizeEmojis();\n\t}\n\n\tgetMessageText = () => {\n\t\tlet messageText = this.props.message.text;\n\n\t\t//xss extensions data\n\t\tconst xssData = checkMessageForExtensionsData(this.props.message, \"xss-filter\");\n\t\tif (xssData && xssData.hasOwnProperty(\"sanitized_text\") && xssData.hasOwnProperty(\"hasXSS\") && xssData.hasXSS === \"yes\") {\n\t\t\tmessageText = xssData.sanitized_text;\n\t\t}\n\n\t\t//datamasking extensions data\n\t\tconst maskedData = checkMessageForExtensionsData(this.props.message, \"data-masking\");\n\t\tif (maskedData && maskedData.hasOwnProperty(\"data\") && maskedData.data.hasOwnProperty(\"sensitive_data\") && maskedData.data.hasOwnProperty(\"message_masked\") && maskedData.data.sensitive_data === \"yes\") {\n\t\t\tmessageText = maskedData.data.message_masked;\n\t\t}\n\n\t\t//profanity extensions data\n\t\tconst profaneData = checkMessageForExtensionsData(this.props.message, \"profanity-filter\");\n\t\tif (profaneData && profaneData.hasOwnProperty(\"profanity\") && profaneData.hasOwnProperty(\"message_clean\") && profaneData.profanity === \"yes\") {\n\t\t\tmessageText = profaneData.message_clean;\n\t\t}\n\n\t\tconst formattedText = linkify(messageText);\n\n\t\tconst emojiParsedMessage = twemoji.parse(formattedText, { folder: \"svg\", ext: \".svg\" });\n\t\tconst parsedMessage = ReactHtmlParser(emojiParsedMessage, { decodeEntities: false });\n\t\tconst emojiMessage = parsedMessage.filter(message => message instanceof Object && message.type === \"img\");\n\n\t\tlet showVariation = true;\n\t\t//if larger size emojis feature is disabled\n\t\tif (this.state.enableLargerSizeEmojis === false) {\n\t\t\tshowVariation = false;\n\t\t}\n\n\t\tmessageText = (\n\t\t\t
    \n\t\t\t\t

    \n\t\t\t\t\t{parsedMessage}\n\t\t\t\t\t{this.state.translatedMessage}\n\t\t\t\t

    \n\t\t\t
    \n\t\t);\n\n\t\treturn messageText;\n\t};\n\n\ttranslateMessage = message => {\n\t\tconst messageId = message.id;\n\t\tconst messageText = message.text;\n\n\t\tconst browserLanguageCode = Translator.getBrowserLanguage().toLowerCase();\n\t\tlet translateToLanguage = browserLanguageCode;\n\t\tif (browserLanguageCode.indexOf(\"-\") !== -1) {\n\t\t\tconst browserLanguageArray = browserLanguageCode.split(\"-\");\n\t\t\ttranslateToLanguage = browserLanguageArray[0];\n\t\t}\n\n\t\tlet translatedMessage = \"\";\n\t\tCometChat.callExtension(\"message-translation\", \"POST\", \"v2/translate\", {\n\t\t\tmsgId: messageId,\n\t\t\ttext: messageText,\n\t\t\tlanguages: [translateToLanguage],\n\t\t})\n\t\t\t.then(result => {\n\t\t\t\tif (result.hasOwnProperty(\"language_original\") && result[\"language_original\"] !== translateToLanguage) {\n\t\t\t\t\tif (result.hasOwnProperty(\"translations\") && result.translations.length) {\n\t\t\t\t\t\tconst messageTranslation = result.translations[0];\n\t\t\t\t\t\tif (messageTranslation.hasOwnProperty(\"message_translated\")) {\n\t\t\t\t\t\t\ttranslatedMessage = `\\n(${messageTranslation[\"message_translated\"]})`;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"ERROR\"], [], \"SOMETHING_WRONG\");\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.props.actionGenerated(enums.ACTIONS[\"INFO\"], [], \"SAME_LANGUAGE_MESSAGE\");\n\t\t\t\t}\n\n\t\t\t\tthis.setState({ translatedMessage: translatedMessage });\n\t\t\t})\n\t\t\t.catch(error => this.props.actionGenerated(enums.ACTIONS[\"ERROR\"], [], \"SOMETHING_WRONG\"));\n\t};\n\n\tenableLargerSizeEmojis = () => {\n\t\tthis.context.FeatureRestriction.isLargerSizeEmojisEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== this.state.enableLargerSizeEmojis) {\n\t\t\t\t\tthis.setState({ enableLargerSizeEmojis: response });\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (this.state.enableLargerSizeEmojis !== false) {\n\t\t\t\t\tthis.setState({ enableLargerSizeEmojis: false });\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\thandleMouseHover = () => {\n\t\tthis.setState(this.toggleHoverState);\n\t};\n\n\ttoggleHoverState = state => {\n\t\treturn {\n\t\t\tisHovering: !state.isHovering,\n\t\t};\n\t};\n\n\tactionHandler = (action, message) => {\n\t\tswitch (action) {\n\t\t\tcase enums.ACTIONS[\"REACT_TO_MESSAGE\"]:\n\t\t\t\tthis.props.actionGenerated(action, message);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"VIEW_THREADED_MESSAGE\"]:\n\t\t\t\tthis.props.actionGenerated(action, message);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"DELETE_MESSAGE\"]:\n\t\t\t\tthis.props.actionGenerated(action, message);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"EDIT_MESSAGE\"]:\n\t\t\t\tthis.props.actionGenerated(action, message);\n\t\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"TRANSLATE_MESSAGE\"]:\n\t\t\t\tthis.translateMessage(message);\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t};\n\n\trender() {\n\n\t\tlet messageText = this.getMessageText();\n\n\t\t//linkpreview extensions data\n\t\tconst linkPreviewData = checkMessageForExtensionsData(this.props.message, \"link-preview\");\n\t\tif (linkPreviewData && linkPreviewData.hasOwnProperty(\"links\") && linkPreviewData[\"links\"].length) {\n\t\t\tmessageText = ;\n\t\t}\n\n\t\t//messagereactions extensions data\n\t\tlet messageReactions = null;\n\t\tconst reactionsData = checkMessageForExtensionsData(this.props.message, \"reactions\");\n\t\tif (reactionsData) {\n\t\t\tif (Object.keys(reactionsData).length) {\n\t\t\t\tmessageReactions = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet toolTipView = null;\n\t\tif (this.state.isHovering) {\n\t\t\ttoolTipView = ;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{toolTipView}\n\t\t\t\t
    \n\t\t\t\t\t{messageText}\n\t\t\t\t
    \n\n\t\t\t\t{messageReactions}\n\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatSenderTextMessageBubble.defaultProps = {\n\ttheme: theme,\n\tactionGenerated: () => {},\n};\n\nCometChatSenderTextMessageBubble.propTypes = {\n\ttheme: PropTypes.object,\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport { CometChatSenderTextMessageBubble };","export const messageContainerStyle = () => {\n\n return {\n alignSelf: \"flex-end\",\n marginBottom: \"16px\",\n paddingLeft: \"16px\",\n paddingRight: \"16px\",\n maxWidth: \"65%\",\n clear: \"both\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n flexShrink: \"0\",\n }\n}\n\nexport const messageWrapperStyle = () => {\n\n return {\n width: \"auto\",\n flex: \"1 1\",\n alignSelf: \"flex-end\",\n display: \"flex\",\n }\n}\n\nexport const messageVideoWrapperStyle = () => {\n\n return {\n display: \"inline-block\",\n alignSelf: 'flex-end',\n ' > video': {\n maxWidth: \"250px\",\n borderRadius: \"12px\",\n display: \"inherit\",\n }\n }\n}\n\nexport const messageInfoWrapperStyle = () => {\n\n return {\n alignSelf: \"flex-end\",\n display: \"flex\",\n justifyContent: \"flex-end\",\n alignItems: \"center\",\n height: \"25px\",\n padding: \"4px 8px\",\n }\n}\n\nexport const messageReactionsWrapperStyle = () => {\n\n return {\n display: \"inline-flex\",\n alignSelf: \"flex-end\",\n width: \"100%\",\n flexWrap: \"wrap\",\n justifyContent: \"flex-end\",\n }\n}\n","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\n\nimport { CometChatMessageActions, CometChatThreadedMessageReplyCount, CometChatReadReceipt } from \"../\";\nimport { CometChatMessageReactions } from \"../Extensions\";\n\nimport { checkMessageForExtensionsData, getMessageFileMetadata } from \"../../../util/common\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport {\n\tmessageContainerStyle,\n\tmessageWrapperStyle,\n\tmessageVideoWrapperStyle,\n\tmessageInfoWrapperStyle,\n\tmessageReactionsWrapperStyle\n} from \"./style\";\n\nclass CometChatSenderVideoMessageBubble extends React.Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tisHovering: false,\n\t\t\tfileData: {},\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\n\t\tconst fileData = this.getFileData();\n\t\tthis.setState({ fileData: fileData });\n\t}\n\n\tshouldComponentUpdate(nextProps, nextState) {\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\t\tconst nextMessageStr = JSON.stringify(nextProps.message);\n\n\t\tif (currentMessageStr !== nextMessageStr \n\t\t|| this.state.isHovering !== nextState.isHovering \n\t\t|| this.state.fileData !== nextState.fileData) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t}\n\n\tcomponentDidUpdate(prevProps) {\n\n\t\tconst previousMessageStr = JSON.stringify(prevProps.message);\n\t\tconst currentMessageStr = JSON.stringify(this.props.message);\n\n\t\tif (previousMessageStr !== currentMessageStr) {\n\n\t\t\tconst fileData = this.getFileData();\n\n\t\t\tconst previousfileData = JSON.stringify(this.state.fileData);\n\t\t\tconst currentfileData = JSON.stringify(fileData);\n\t\t\t\n\t\t\tif (previousfileData !== currentfileData) {\n\t\t\t\tthis.setState({ fileData: fileData });\n\t\t\t}\n\t\t}\n\t}\n\n\tgetFileData = () => {\n\n\t\tconst metadataKey = enums.CONSTANTS[\"FILE_METADATA\"];\n\t\tconst fileMetadata = getMessageFileMetadata(this.props.message, metadataKey);\n\t\t\n\t\tif (fileMetadata instanceof Blob) {\n\n\t\t\treturn { fileName: fileMetadata[\"name\"] };\n\n\t\t} else if (this.props.message.data.attachments \n\t\t\t&& typeof this.props.message.data.attachments === \"object\" \n\t\t\t&& this.props.message.data.attachments.length) {\n\n\t\t\tconst fileName = this.props.message.data.attachments[0]?.name;\n\t\t\tconst fileUrl = this.props.message.data.attachments[0]?.url;\n\n\t\t\treturn { fileName, fileUrl: fileUrl };\n\t\t}\n\t};\n\n\thandleMouseHover = () => {\n\t\tthis.setState(this.toggleHoverState);\n\t};\n\n\ttoggleHoverState = state => {\n\t\treturn {\n\t\t\tisHovering: !state.isHovering,\n\t\t};\n\t};\n\n\trender() {\n\t\tif (!Object.keys(this.state.fileData).length) {\n\t\t\treturn null;\n\t\t}\n\n\t\tlet messageReactions = null;\n\t\tconst reactionsData = checkMessageForExtensionsData(this.props.message, \"reactions\");\n\t\tif (reactionsData) {\n\t\t\tif (Object.keys(reactionsData).length) {\n\t\t\t\tmessageReactions = (\n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\tlet toolTipView = null;\n\t\tif (this.state.isHovering) {\n\t\t\ttoolTipView = ;\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{toolTipView}\n\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t
    \n\n\t\t\t\t{messageReactions}\n\n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatSenderVideoMessageBubble.defaultProps = {\n\tactionGenerated: () => {},\n};\n\nCometChatSenderVideoMessageBubble.propTypes = {\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\n\nexport { CometChatSenderVideoMessageBubble };","export const replyCountStyle = context => {\n\n\treturn {\n\t\tdisplay: \"inline-block\",\n\t\tfontSize: \"11px\",\n\t\tfontWeight: \"500\",\n\t\tlineHeight: \"12px\",\n\t\ttextTransform: \"lowercase\",\n\t\tpadding: \"0 10px\",\n\t\tcursor: \"pointer\",\n\t\tcolor: context.theme.color.blue,\n\t\t\"&:hover\": {\n\t\t\ttextDecoration: \"underline\",\n\t\t},\n\t};\n};","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport {jsx} from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\n\nimport {CometChatContext} from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport {theme} from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {replyCountStyle} from \"./style\";\n\nconst CometChatThreadedMessageReplyCount = props => {\n\n\tconst context = React.useContext(CometChatContext);\n\tconst [reply, setReply] = React.useState(false);\n\n\tconst toggleReply = () => {\n\t\tcontext.FeatureRestriction.isThreadedMessagesEnabled()\n\t\t\t.then(response => {\n\t\t\t\tif (response !== reply) {\n\t\t\t\t\tsetReply(response);\n\t\t\t\t}\n\t\t\t})\n\t\t\t.catch(error => {\n\t\t\t\tif (reply !== false) {\n\t\t\t\t\tsetReply(false);\n\t\t\t\t}\n\t\t\t});\n\t};\n\n\tReact.useEffect(toggleReply);\n\n\tconst viewThread = () => {\n\t\tprops.actionGenerated(enums.ACTIONS[\"VIEW_THREADED_MESSAGE\"], props.message);\n\t}\n\n\tconst replyCount = props.message.replyCount;\n\tconst replyText = replyCount === 1 ? `${replyCount} ${Translator.translate(\"REPLY\", context.language)}` : `${replyCount} ${Translator.translate(\"REPLIES\", context.language)}`;\n\n\tlet replies = (\n\t\t\n\t\t\t{replyText}\n\t\t\n\t);\n\n\tif (props.message.hasOwnProperty(\"replyCount\") === false) {\n\t\treplies = null;\n\t}\n\n\t//if threadedchats feature is disabled\n\tif (reply === false) {\n\t\treplies = null;\n\t}\n\n\treturn replies;\n};\n\n// Specifies the default values for props:\nCometChatThreadedMessageReplyCount.defaultProps = {\n\ttheme: theme,\n\tactionGenerated: () => {},\n};\n\nCometChatThreadedMessageReplyCount.propTypes = {\n\ttheme: PropTypes.object,\n\tactionGenerated: PropTypes.func.isRequired,\n\tmessage: PropTypes.object.isRequired,\n};\n\nexport {CometChatThreadedMessageReplyCount};\n","export const chatScreenStyle = (props) => {\n\n return {\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n boxSizing: \"border-box\",\n position: \"relative\",\n fontFamily: `${props.theme.fontFamily}`,\n border: `1px solid ${props.theme.borderColor.primary}`,\n \"*\": {\n boxSizing: \"border-box\",\n fontFamily: `${props.theme.fontFamily}`,\n \"::-webkit-scrollbar\": {\n width: \"8px\",\n height: \"4px\",\n },\n \"::-webkit-scrollbar-track\": {\n background: \"#ffffff00\"\n },\n \"::-webkit-scrollbar-thumb\": {\n background: \"#ccc\",\n \"&:hover\": {\n background: \"#aaa\"\n }\n }\n }\n }\n}\n\nexport const chatScreenSidebarStyle = (state, props) => {\n\n const sidebarView = (state.sidebarview) ? {\n left: \"0\",\n boxShadow: \"rgba(0, 0, 0, .4) -30px 0 30px 30px\"\n } : {};\n\n const mq = [...props.theme.breakPoints];\n\n return {\n width: \"280px\",\n borderRight: `1px solid ${props.theme.borderColor.primary}`,\n height: \"100%\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n \"> .chats\": {\n height: \"calc(100% - 5px)\",\n },\n [`@media ${mq[0]}`]: {\n position: \"absolute!important\",\n left: \"-100%\",\n top: \"0\",\n bottom: \"0\",\n width: \"100%!important\",\n zIndex: \"2\",\n backgroundColor: `${props.theme.backgroundColor.white}`,\n transition: \"all .3s ease-out\",\n ...sidebarView\n }\n }\n}\n\nexport const chatScreenMainStyle = (state, props) => {\n\n const mq = [...props.theme.breakPoints];\n\n return {\n width: \"calc(100% - 280px)\",\n height: \"100%\",\n order: \"2\",\n display: \"flex\",\n flexDirection: \"row\",\n [`@media ${mq[1]}, ${mq[2]}`]: {\n width: \"100%\",\n }\n }\n}","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatConversationList } from \"../\";\nimport { CometChatMessages } from \"../../Messages\";\nimport { CometChatIncomingCall, CometChatIncomingDirectCall } from \"../../Calls\";\n\nimport { CometChatContextProvider } from \"../../../util/CometChatContext\";\nimport * as enums from \"../../../util/enums.js\";\n\nimport Translator from \"../../../resources/localization/translator\";\nimport { theme } from \"../../../resources/theme\";\n\nimport {\n\tchatScreenStyle,\n\tchatScreenSidebarStyle,\n\tchatScreenMainStyle,\n} from \"./style\";\n\nclass CometChatConversationListWithMessages extends React.Component {\n\n\tloggedInUser = null;\n\t\n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\ttab: \"conversations\",\n\t\t\tsidebarview: false,\n\t\t}\n\n\t\tthis.contextProviderRef = React.createRef();\n\t\tthis.chatListRef = React.createRef();\n\t}\n\t\n\tcomponentDidMount() {\n\n\t\tif (this.props.chatWithUser.length === 0 && this.props.chatWithGroup.length === 0) {\n\t\t\tthis.toggleSideBar();\n\t\t}\n\t}\n\n\titemClicked = (item, type) => {\n\n\t\tthis.contextProviderRef.setTypeAndItem(type, item);\n\t\tthis.toggleSideBar()\n\t}\n\n\tactionHandler = (action, item, count, ...otherProps) => {\n\t\t\n\t\tswitch(action) {\n\n\t\t\tcase enums.ACTIONS[\"TOGGLE_SIDEBAR\"]:\n\t\t\t\tthis.toggleSideBar();\n\t\t\tbreak;\n\t\t\tcase enums.GROUP_MEMBER_SCOPE_CHANGED:\n\t\t\tcase enums.GROUP_MEMBER_KICKED:\n\t\t\tcase enums.GROUP_MEMBER_BANNED:\n\t\t\t\tthis.groupUpdated(action, item, count, ...otherProps);\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\tbreak;\n\t\t}\n\t}\n\n\ttoggleSideBar = () => {\n\n\t\tconst sidebarview = this.state.sidebarview;\n\t\tthis.setState({ sidebarview: !sidebarview });\n\t}\n\n/**\n If the logged in user is banned, kicked or scope changed, update the chat window accordingly\n */\n\tgroupUpdated = (key, message, group, options) => {\n\n\t\tswitch (key) {\n\t\t\tcase enums.GROUP_MEMBER_BANNED:\n\t\t\tcase enums.GROUP_MEMBER_KICKED: {\n\n\t\t\t\tif (this.contextProviderRef.type === CometChat.ACTION_TYPE.TYPE_GROUP\n\t\t\t\t&& this.contextProviderRef.item.guid === group.guid\n\t\t\t\t&& options.user.uid === this.loggedInUser.uid) {\n\n\t\t\t\t\tthis.contextProviderRef.setItem({});\n\t\t\t\t\tthis.contextProviderRef.setType(\"\");\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase enums.GROUP_MEMBER_SCOPE_CHANGED: {\n\n\t\t\t\tif (this.contextProviderRef.type === CometChat.ACTION_TYPE.TYPE_GROUP\n\t\t\t\t&& this.contextProviderRef.item.guid === group.guid\n\t\t\t\t&& options.user.uid === this.loggedInUser.uid) {\n\n\t\t\t\t\tconst newObject = Object.assign({}, this.contextProviderRef.item, { \"scope\": options[\"scope\"] })\n\t\t\t\t\tthis.contextProviderRef.setItem(newObject);\n\t\t\t\t\tthis.contextProviderRef.setType(CometChat.ACTION_TYPE.TYPE_GROUP);\n\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\trender() {\n\n\t\tlet messageScreen = (\n\t\t\t\n\t\t);\n\n\t\treturn (\n\t\t\t this.contextProviderRef = el} user={this.props.chatWithUser} group={this.props.chatWithGroup} language={this.props.lang}>\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t this.chatListRef = el}\n\t\t\t\t\t\t_parent=\"clwm\"\n\t\t\t\t\t\ttheme={this.props.theme}\n\t\t\t\t\t\tlang={this.props.lang}\n\t\t\t\t\t\tonItemClick={this.itemClicked}\n\t\t\t\t\t\tactionGenerated={this.actionHandler} />\n\t\t\t\t\t
    \n\t\t\t\t\t
    {messageScreen}
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatConversationListWithMessages.defaultProps = {\n\tlang: Translator.getDefaultLanguage(),\n\ttheme: theme,\n\tchatWithUser: \"\",\n\tchatWithGroup: \"\",\n};\n\nCometChatConversationListWithMessages.propTypes = {\n\tlang: PropTypes.string,\n\ttheme: PropTypes.object,\n\tchatWithUser: PropTypes.string,\n\tchatWithGroup: PropTypes.string,\n}\n\nexport { CometChatConversationListWithMessages };\n","export const userInfoScreenStyle = (props) =>{\n\n return {\n display: \"flex\",\n flexDirection: \"column!important\",\n height: \"calc(100% - 50px)\",\n fontFamily: `${props.theme.fontFamily}`,\n \"*\": {\n boxSizing: \"border-box\",\n fontFamily: `${props.theme.fontFamily}`,\n }\n }\n}\n\nexport const headerStyle = (props) => {\n\n return {\n padding: \"16px\",\n position: \"relative\",\n borderBottom: `1px solid ${props.theme.borderColor.primary}`,\n height: \"70px\",\n display: \"flex\",\n alignItems: \"center\",\n }\n}\n\nexport const headerTitleStyle = () => {\n\n return {\n margin: \"0\",\n fontWeight: \"700\",\n fontSize: \"22px\"\n }\n}\n\nexport const detailStyle = () => {\n\n return {\n padding: \"16px\",\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"left\",\n alignItems: \"center\",\n }\n}\n\nexport const thumbnailStyle = () => {\n\n return {\n display: \"inline-block\",\n width: \"36px\",\n height: \"36px\",\n flexShrink: \"0\",\n }\n}\n\nexport const userDetailStyle = () => {\n \n return {\n width: \"calc(100% - 45px)\",\n flexGrow: \"1\",\n paddingLeft: \"16px\",\n \"&[dir=rtl]\": {\n paddingRight: \"16px\",\n paddingLeft: \"0\",\n }\n }\n}\n\nexport const userNameStyle = () => {\n\n return {\n margin: \"0\",\n fontSize: \"15px\",\n fontWeight: \"600\",\n display: \"block\",\n maxWidth: \"100%\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n }\n}\n\nexport const userStatusStyle = (props) => {\n\n return {\n fontSize: \"13px\",\n margin: \"0\",\n color: `${props.theme.color.blue}`,\n }\n}\n\nexport const optionsStyle = () => {\n\n return {\n height: \"calc(100% - 145px)\",\n overflowY: \"auto\",\n padding: \"0 16px\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"left\",\n alignItems: \"flex-start\",\n }\n}\n\nexport const optionTitleStyle = (props) => {\n\n return {\n margin: \"5px 0\",\n width: \"100%\",\n fontSize: \"12px\",\n color: `${props.theme.color.helpText}`,\n textTransform: \"uppercase\",\n }\n}\n\nexport const optionListStyle = () => {\n\n return {\n padding: \"10px 0\",\n width: \"100%\",\n fontSize: \"15px\"\n }\n}\n\nexport const optionStyle = (img) => {\n\n return {\n width: \"100%\",\n padding: \"16px 16px 16px 36px\",\n fontWeight: 600,\n background: `url(${img}) left center no-repeat`,\n }\n}\n\nexport const optionNameStyle = () => {\n\n return {\n width: \"100%\",\n }\n}","export default __webpack_public_path__ + \"static/media/notify.009f4c07.svg\";","export default __webpack_public_path__ + \"static/media/privacy.35a868f9.svg\";","export default __webpack_public_path__ + \"static/media/chats.a324dd1d.svg\";","export default __webpack_public_path__ + \"static/media/help.c1640c5b.svg\";","export default __webpack_public_path__ + \"static/media/warning.d0632c5b.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatAvatar, CometChatToastNotification } from \"../../Shared\";\n\nimport { theme } from \"../../../resources/theme\";\nimport Translator from \"../../../resources/localization/translator\";\n\nimport {\n\tuserInfoScreenStyle,\n\theaderStyle,\n\theaderTitleStyle,\n\tdetailStyle,\n\tthumbnailStyle,\n\tuserDetailStyle,\n\tuserNameStyle,\n\tuserStatusStyle,\n\toptionsStyle,\n\toptionTitleStyle,\n\toptionListStyle,\n\toptionStyle,\n\toptionNameStyle\n} from \"./style\";\n\nimport notificationIcon from \"./resources/notify.svg\";\nimport privacyIcon from \"./resources/privacy.svg\";\nimport chatIcon from \"./resources/chats.svg\";\nimport helpIcon from \"./resources/help.svg\";\nimport reportIcon from \"./resources/warning.svg\";\n\nclass CometChatUserProfile extends React.Component {\n\n\tconstructor(props) {\n\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tloggedInUser: null\n\t\t}\n\n\t\tthis.toastRef = React.createRef();\n\t}\n\n\tcomponentDidMount() {\n\t\t\n\t\tCometChat.getLoggedinUser().then(user => {\n\t\t\tthis.setState({ loggedInUser: user });\n\t\t}).catch(error => this.toastRef.setError(\"SOMETHING_WRONG\"));\n\t}\n\n\trender() {\n\n\t\tlet userProfile = null;\n\t\tif(this.state.loggedInUser) {\n\n\t\t\tlet avatar = ;\n\t\t\tuserProfile = (\n\t\t\t\t\n\t\t\t\t\t
    \n\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t{Translator.translate(\"MORE\", this.props.lang)}\n\t\t\t\t\t\t

    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{avatar}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t{this.state.loggedInUser.name}\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t\t\t{Translator.translate(\"ONLINE\", this.props.lang)}\n\t\t\t\t\t\t\t

    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{Translator.translate(\"PREFERENCES\", this.props.lang)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{Translator.translate(\"NOTIFICATIONS\", this.props.lang)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{Translator.translate(\"PRIVACY_AND_SECURITY\", this.props.lang)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{Translator.translate(\"CHATS\", this.props.lang)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{Translator.translate(\"OTHER\", this.props.lang)}\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{Translator.translate(\"HELP\", this.props.lang)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\t{Translator.translate(\"REPORT_PROBLEM\", this.props.lang)}\n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t
    \n\t\t\t\t{userProfile}\n\t\t\t\t (this.toastRef = el)} lang={this.props.lang} />\n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatUserProfile.defaultProps = {\n\tlang: Translator.getDefaultLanguage(),\n\ttheme: theme\n};\n\nCometChatUserProfile.propTypes = {\n\tlang: PropTypes.string,\n\ttheme: PropTypes.object\n}\n\nexport { CometChatUserProfile };\n","export const footerStyle = () => {\n\n return {\n width: \"100%\",\n zIndex: \"1\",\n height: \"64px\"\n }\n}\n\nexport const navbarStyle = () => {\n\n return {\n\t\t\tdisplay: \"flex\",\n\t\t\tflexDirection: \"row\",\n\t\t\talignItems: \"center\",\n\t\t\tjustifyContent: \"space-around\",\n\t\t\twidth: \"100%\",\n\t\t\theight: \"100%\",\n\t\t};\n}\n\nexport const itemStyle = props => {\n\treturn {\n\t\tpadding: \"8px\",\n\t\tcursor: \"pointer\",\n\t\tdisplay: \"flex\",\n\t\tflexDirection: \"column\",\n\t\tjustifyContent: \"center\",\n\t\talignItems: \"center\",\n\t\tfontSize: \"12px\",\n\t\tcolor: `${props.theme.color.helpText}`,\n\t};\n};\n\nexport const itemLinkStyle = (icon, isActive, context) => {\n\n let activeStateBg = (isActive) ? { \n backgroundColor: `${context.theme.primaryColor}`,\n } : {\n backgroundColor: `${context.theme.secondaryTextColor}`,\n };\n\n return {\n height: \"24px\",\n width: \"24px\",\n display: \"inline-block\",\n mask: `url(${icon}) no-repeat center center`,\n ...activeStateBg\n }\n}\n\nexport const itemLinkTextStyle = (isActive, context) => {\n\n const colorProp = (isActive) ? {\n color: `${context.theme.primaryColor}`\n } : {\n color: `${context.theme.secondaryTextColor}`,\n };\n\n return {\n ...colorProp,\n paddingTop: \"2px\"\n }\n};","export default __webpack_public_path__ + \"static/media/chats.a324dd1d.svg\";","export default __webpack_public_path__ + \"static/media/users.ec43e952.svg\";","export default __webpack_public_path__ + \"static/media/groups.1e57cc7e.svg\";","export default __webpack_public_path__ + \"static/media/more.35ec626e.svg\";","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\n\nimport { CometChatUserList } from \"../../Users\";\nimport { CometChatGroupList } from \"../../Groups\";\nimport { CometChatConversationList } from \"../../Chats\";\nimport { CometChatUserProfile } from \"../../UserProfile\";\n\nimport * as enums from \"../../../util/enums.js\";\nimport {CometChatContext} from \"../../../util/CometChatContext\";\n\nimport Translator from \"../../../resources/localization/translator\";\nimport { theme } from \"../../../resources/theme\";\nimport tabs from \"../../../resources/tabs.json\";\n\nimport {\n footerStyle,\n navbarStyle,\n itemStyle,\n itemLinkStyle,\n itemLinkTextStyle\n} from \"./style\";\n\nimport chatGreyIcon from \"./resources/chats.svg\";\nimport contactGreyIcon from \"./resources/users.svg\";\nimport groupGreyIcon from \"./resources/groups.svg\";\nimport moreGreyIcon from \"./resources/more.svg\";\n\nexport class CometChatNavBar extends React.Component {\n\tstatic contextType = CometChatContext;\n\n\ttabListKeys = []; \n\tconstructor(props) {\n\t\tsuper(props);\n\n\t\tthis.state = {\n\t\t\tactiveTab: null,\n\t\t\ttabList: [],\n\t\t};\n\t}\n\n\tcomponentDidMount() {\n\n\t\tlet tabList = this.context.UIKitSettings.tabs;\n\n\t\ttabList.forEach(tabName => {\n\t\t\tfor (const t in tabs) {\n\t\t\t\tif (tabName === tabs[t]) {\n\t\t\t\t\tthis.tabListKeys.push(t);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n \tthis.getFilteredTabs().then(filteredTabs => {\n\t\t\tthis.setState({tabList: filteredTabs, activeTab: filteredTabs[0]});\n\t\t});\n\n\t}\n\n\n\tgetFilteredTabs = () => {\n\n\t\treturn new Promise(resolve => {\n\n\t\t\tconst filteredTabs = [];\n\t\t\tconst promises = [this.enableChats(), this.enableUsers(), this.enableGroups(), this.enableSettings()];\n\t\t\tPromise.allSettled(promises).then(results => {\n\t\t\t\t\n\t\t\t\tthis.tabListKeys.forEach(eachTabKey => {\n\t\t\t\t\tresults.forEach(result => {\n\t\t\t\t\t\tconst tabKey = result.value[0];\n\t\t\t\t\t\tconst tabEnabled = result.value[1];\n\n\t\t\t\t\t\tif (eachTabKey === tabKey && tabEnabled === true) {\n\t\t\t\t\t\tfilteredTabs.push(eachTabKey);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t\tresolve(filteredTabs);\n\t\t\t});\n\t\t});\n\t}\n\n\tenableChats = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tthis.context.FeatureRestriction.isRecentChatListEnabled()\n\t\t\t\t.then(response => resolve([\"SIDEBAR_CHATS\", response]))\n\t\t\t\t.catch(error => resolve([\"SIDEBAR_CHATS\", false]));\n\t\t});\n\t};\n\n\tenableUsers = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tthis.context.FeatureRestriction.isUserListEnabled()\n\t\t\t\t.then(response => resolve([\"SIDEBAR_USERS\", response]))\n\t\t\t\t.catch(error => resolve([\"SIDEBAR_USERS\", false]));\n\t\t});\n\t};\n\n\tenableGroups = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tthis.context.FeatureRestriction.isGroupListEnabled()\n\t\t\t\t.then(response => resolve([\"SIDEBAR_GROUPS\", response]))\n\t\t\t\t.catch(error => resolve([\"SIDEBAR_GROUPS\", false]));\n\t\t});\n\t};\n\n\tenableSettings = () => {\n\t\treturn new Promise(resolve => {\n\t\t\tthis.context.FeatureRestriction.isUserSettingsEnabled()\n\t\t\t\t.then(response => resolve([\"SIDEBAR_MOREINFO\", response]))\n\t\t\t\t.catch(error => resolve([\"SIDEBAR_MOREINFO\", false]));\n\t\t});\n\t};\n\n\ttabChanged = tab => {\n\n\t\tthis.setState({activeTab: tab});\n\t};\n\n\tgetActiveTab = () => {\n\t\tswitch (this.state.activeTab) {\n\t\t\tcase \"SIDEBAR_USERS\":\n\t\t\t\treturn this.props.actionGenerated(enums.ACTIONS[\"ITEM_CLICKED\"], type, item)} />;\n\t\t\tcase \"SIDEBAR_CALLS\":\n\t\t\t\treturn null;\n\t\t\tcase \"SIDEBAR_CHATS\":\n\t\t\t\treturn this.props.actionGenerated(enums.ACTIONS[\"ITEM_CLICKED\"], type, item)} />;\n\t\t\tcase \"SIDEBAR_GROUPS\":\n\t\t\t\treturn this.props.actionGenerated(enums.ACTIONS[\"ITEM_CLICKED\"], type, item)} />;\n\t\t\tcase \"SIDEBAR_MOREINFO\":\n\t\t\t\treturn this.props.actionGenerated(enums.ACTIONS[\"ITEM_CLICKED\"], type, item)} />;\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t};\n\n\tgetTabList = () => {\n\n\t\tconst chatsTabActive = this.state.activeTab === \"SIDEBAR_CHATS\" ? true : false;\n\t\tconst userTabActive = this.state.activeTab === \"SIDEBAR_USERS\" ? true : false;\n\t\tconst groupsTabActive = this.state.activeTab === \"SIDEBAR_GROUPS\" ? true : false;\n\t\tconst moreTabActive = this.state.activeTab === \"SIDEBAR_MOREINFO\" ? true : false;\n\n\t\tconst tabList = [...this.state.tabList];\n\n\t\treturn tabList.map(tab => {\n\t\t\tswitch (tab) {\n\t\t\t\tcase \"SIDEBAR_CHATS\":\n\t\t\t\t\treturn (\n\t\t\t\t\t\t
    this.tabChanged(\"SIDEBAR_CHATS\")}>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    {Translator.translate(\"CHATS\", this.context.language)}
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t);\n\t\t\t\tcase \"SIDEBAR_USERS\":\n\t\t\t\t\treturn (\n\t\t\t\t\t\t
    this.tabChanged(\"SIDEBAR_USERS\")}>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    {Translator.translate(\"USERS\", this.context.language)}
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t);\n\t\t\t\tcase \"SIDEBAR_GROUPS\":\n\t\t\t\t\treturn (\n\t\t\t\t\t\t
    this.tabChanged(\"SIDEBAR_GROUPS\")}>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    {Translator.translate(\"GROUPS\", this.context.language)}
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t);\n\t\t\t\tcase \"SIDEBAR_MOREINFO\":\n\t\t\t\t\treturn (\n\t\t\t\t\t\t
    this.tabChanged(\"SIDEBAR_MOREINFO\")}>\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t
    {Translator.translate(\"MORE\", this.context.language)}
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t);\n\t\t\t\tdefault:\n\t\t\t\t\treturn null;\n\t\t\t}\n\t\t});\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t{this.getActiveTab()}\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{this.getTabList()}\n\t\t\t\t\t
    \n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatNavBar.defaultProps = {\n\ttheme: theme\n};\n\nCometChatNavBar.propTypes = {\n\ttheme: PropTypes.object\n}","export const unifiedStyle = (props) => {\n\n return {\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n boxSizing: \"border-box\",\n fontFamily: `${props.theme.fontFamily}`,\n border: `1px solid ${props.theme.borderColor.primary}`,\n position: \"relative\",\n \"*\": {\n boxSizing: \"border-box\",\n fontFamily: `${props.theme.fontFamily}`,\n \"::-webkit-scrollbar\": {\n width: \"8px\",\n height: \"4px\",\n },\n \"::-webkit-scrollbar-track\": {\n background: \"#ffffff00\"\n },\n \"::-webkit-scrollbar-thumb\": {\n background: \"#ccc\",\n \"&:hover\": {\n background: \"#aaa\"\n }\n }\n }\n }\n}\n\nexport const unifiedSidebarStyle = (state, props) => {\n\n const sidebarView = (state.sidebarview) ? {\n left: \"0\",\n boxShadow : \"rgba(0, 0, 0, .4) -30px 0 30px 30px\"\n } : {};\n\n const mq = [...props.theme.breakPoints];\n\n return {\n\n width: \"280px\",\n borderRight: `1px solid ${props.theme.borderColor.primary}`,\n height: \"100%\",\n position: \"relative\",\n display: \"flex\",\n flexDirection: \"column\",\n \"> .contacts, .chats, .groups, .userinfo\": {\n height: \"calc(100% - 64px)\",\n },\n [`@media ${mq[0]}`]: {\n position: \"absolute!important\",\n left: \"-100%\",\n top: \"0\",\n bottom: \"0\",\n width: \"100%!important\",\n zIndex: \"2\",\n backgroundColor: `${props.theme.backgroundColor.white}`,\n transition: \"all .3s ease-out\",\n ...sidebarView\n }\n }\n}\n\nexport const unifiedMainStyle = (state, props) => {\n\n const mq = [...props.theme.breakPoints];\n\n return {\n width: \"calc(100% - 280px)\",\n height: \"100%\",\n order: \"2\",\n display: \"flex\",\n flexDirection: \"row\",\n [`@media ${mq[1]}, ${mq[2]}`]: {\n width: \"100%\",\n }\n }\n}\n","import React from \"react\";\n/** @jsxRuntime classic */\n/** @jsx jsx */\nimport { jsx } from \"@emotion/core\";\nimport PropTypes from \"prop-types\";\nimport { CometChat } from \"@cometchat-pro/chat\";\n\nimport { CometChatNavBar } from \"./CometChatNavBar\";\nimport { CometChatMessages } from \"../Messages\";\nimport { CometChatIncomingCall, CometChatIncomingDirectCall } from \"../Calls\";\n\nimport { CometChatContextProvider } from \"../../util/CometChatContext\";\nimport * as enums from \"../../util/enums.js\";\nimport { theme } from \"../../resources/theme\";\nimport Translator from \"../../resources/localization/translator\";\n\nimport {\n\tunifiedStyle,\n\tunifiedSidebarStyle,\n\tunifiedMainStyle,\n} from \"./style\";\n\nclass CometChatUI extends React.Component {\n\n\tloggedInUser = null;\n\n\tconstructor(props) {\n\t\t\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tsidebarview: false,\n\t\t}\n\n\t\tthis.navBarRef = React.createRef();\n\t\tthis.contextProviderRef = React.createRef();\n\t}\n\t\n\tcomponentDidMount() {\n\n\t\tif (this.props.chatWithUser.length === 0 && this.props.chatWithGroup.length === 0) {\n\t\t\tthis.toggleSideBar();\n\t\t}\n\t}\n\n\tnavBarAction = (action, type, item) => {\n\t\t\n\t\tswitch(action) {\n\t\t\tcase enums.ACTIONS[\"ITEM_CLICKED\"]:\n\t\t\t\tthis.itemClicked(item, type);\n\t\t\tbreak;\n\t\t\tcase enums.ACTIONS[\"TOGGLE_SIDEBAR\"]:\n\t\t\t\tthis.toggleSideBar();\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\tbreak;\n\t\t}\n\t}\n\t\n\titemClicked = (item, type) => {\n\t\t\n\t\tthis.contextProviderRef.setTypeAndItem(type, item); \n\t\tthis.toggleSideBar()\n\t}\n\n\tactionHandler = (action, item, count, ...otherProps) => {\n\t\t\n\t\tswitch(action) {\n\t\t\tcase enums.ACTIONS[\"TOGGLE_SIDEBAR\"]:\n\t\t\t\tthis.toggleSideBar();\n\t\t\tbreak;\n\t\t\tcase enums.GROUP_MEMBER_SCOPE_CHANGED:\n\t\t\tcase enums.GROUP_MEMBER_KICKED:\n\t\t\tcase enums.GROUP_MEMBER_BANNED:\n\t\t\t\tthis.groupUpdated(action, item, count, ...otherProps);\n\t\t\tbreak;\n\t\t\tdefault:\n\t\t\tbreak;\n\t\t}\n\t}\n\n\ttoggleSideBar = () => {\n\n\t\tconst sidebarview = this.state.sidebarview;\n\t\tthis.setState({ sidebarview: !sidebarview });\n\t}\n\n\t/**\n\t If the logged in user is banned, kicked or scope changed, update the chat window accordingly\n\t */\n\tgroupUpdated = (key, message, group, options) => {\n\t\t\n\t\tswitch(key) {\n\t\t\tcase enums.GROUP_MEMBER_BANNED:\n\t\t\tcase enums.GROUP_MEMBER_KICKED: {\n\t\t\t\t\n\t\t\t\tif (this.contextProviderRef.state.type === CometChat.ACTION_TYPE.TYPE_GROUP \n\t\t\t\t&& this.contextProviderRef.state.item.guid === group.guid\n\t\t\t\t&& options.user.uid === this.loggedInUser.uid) {\n\n\t\t\t\t\tthis.contextProviderRef.setItem({});\n\t\t\t\t\tthis.contextProviderRef.setType(\"\");\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tcase enums.GROUP_MEMBER_SCOPE_CHANGED: {\n\t\t\t\t\n\t\t\t\tif (this.contextProviderRef.state.type === CometChat.ACTION_TYPE.TYPE_GROUP\n\t\t\t\t&& this.contextProviderRef.state.item.guid === group.guid\n\t\t\t\t&& options.user.uid === this.loggedInUser.uid) {\n\n\t\t\t\t\tconst newObject = Object.assign({}, this.contextProviderRef.state.item, { \"scope\": options[\"scope\"] })\n\t\t\t\t\tthis.contextProviderRef.setItem(newObject);\n\t\t\t\t\tthis.contextProviderRef.setType(CometChat.ACTION_TYPE.TYPE_GROUP);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tdefault:\n\t\t\tbreak;\n\t\t}\n\t}\n\n\trender() {\n\t\t\n\t\tlet messageScreen = (\n\t\t\t\t\n\t\t\t);\n\n\t\treturn (\n\t\t\t this.contextProviderRef = el} user={this.props.chatWithUser} group={this.props.chatWithGroup} language={this.props.lang}>\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t this.navBarRef = el}\n\t\t\t\t\t\t\ttheme={this.props.theme}\n\t\t\t\t\t\t\tactionGenerated={this.navBarAction} />\n\t\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\t{messageScreen}\n\t\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t
    \n\t\t);\n\t}\n}\n\n// Specifies the default values for props:\nCometChatUI.defaultProps = {\n\tlang: Translator.getDefaultLanguage(),\n\ttheme: theme,\n\tchatWithUser: \"\",\n\tchatWithGroup: \"\",\n};\n\nCometChatUI.propTypes = {\n\tlang: PropTypes.string,\n\ttheme: PropTypes.object,\n\tchatWithUser: PropTypes.string,\n\tchatWithGroup: PropTypes.string,\n}\n\nexport { CometChatUI };\n","// import useContext.\nimport { useContext } from 'react';\n// import Context.\nimport Context from '../Context';\n// import cometchat ui.\nimport { CometChatMessages } from '../cometchat-pro-react-ui-kit/CometChatWorkspace/src';\nfunction Chat() {\n\n const { user, currentRide } = useContext(Context);\n\n const findUser = () => {\n if (user && currentRide) { \n if (user.role === 'user' && currentRide.driver && currentRide.driver.id) {\n return currentRide.driver.id;\n } else if (user.role === 'driver' && currentRide.requestor && currentRide.requestor.id) {\n return currentRide.requestor.id;\n }\n }\n }\n\n return (\n
    \n \n
    \n );\n}\n\nexport default Chat;","// import react.\nimport React from 'react';\n// import react router.\nimport { Route, Redirect } from 'react-router-dom';\n\nconst PrivateRoute = ({component: Component, ...rest}) => {\n return (\n\n // Show the component only when the user is logged in\n // Otherwise, redirect the user to /signin page\n (\n localStorage.getItem('auth') ?\n \n : \n )} />\n );\n};\n\nexport default PrivateRoute;","// import useState\nimport { useState, useEffect } from 'react';\n// import react router dom.\nimport {\n BrowserRouter as Router,\n Switch,\n Route\n} from 'react-router-dom';\n// import custom components.\nimport Home from './components/Home';\nimport Login from './components/Login';\nimport Loading from './components/Loading';\nimport Chat from './components/Chat';\nimport PrivateRoute from './components/PrivateRoute';\n// import global styling.\nimport './index.css';\n// import Context\nimport Context from './Context';\n// import realtime database from Firebase.\nimport { realTimeDb } from \"./firebase\";\n// create App components.\nfunction App() {\n // create loading state and share to other components.\n // loading state will be used to show / hide loading indicator.\n const [isLoading, setIsLoading] = useState(false);\n // user state contains authenticated user.\n const [user, setUser] = useState(null);\n // comet chat.\n const [cometChat, setCometChat] = useState(null);\n // selected from, selected to.\n const [selectedFrom, setSelectedFrom] = useState(null);\n const [selectedTo, setSelectedTo] = useState(null);\n // created ride request.\n const [rideRequest, setRideRequest] = useState(null);\n // current ride.\n const [currentRide, setCurrentRide] = useState(null);\n\n const lookingDriverMaxTime = 30000;\n\n useEffect(() => {\n initAuthUser();\n initCometChat();\n initCurrentRide();\n }, []);\n\n useEffect(() => {\n if (rideRequest) {\n // create a timeout to trigger notification if there is no driver.\n const lookingDriverTimeout = setTimeout(() => {\n alert('Cannot find your driver, please re-enter your pickup location and try again');\n // remove the created ride.\n setRideRequest(null);\n // hide loading indicator.\n setIsLoading(false);\n }, lookingDriverMaxTime);\n // show loading indicator.\n setIsLoading(true);\n // check data changes from firebase real time database. If there is a driver accepted the request.\n const createdRideRef = realTimeDb.ref(`rides/${rideRequest.rideUuid}`);\n createdRideRef.on(\"value\", (snapshot) => {\n const updatedRide = snapshot.val();\n if (updatedRide && updatedRide.rideUuid === rideRequest.rideUuid && updatedRide.driver) {\n // hide loading indicator.\n setIsLoading(false);\n // remove looking for driver timeout.\n clearTimeout(lookingDriverTimeout);\n // set rider request and created ride.\n setRideRequest(null);\n // set created ride.\n localStorage.setItem('currentRide', JSON.stringify(updatedRide));\n // set current Ride. \n setCurrentRide(() => updatedRide);\n }\n });\n }\n }, [rideRequest]);\n\n useEffect(() => {\n if (currentRide) {\n const currentRideRef = realTimeDb.ref(`rides/${currentRide.rideUuid}`);\n currentRideRef.on(\"value\", (snapshot) => {\n const updatedRide = snapshot.val();\n if (updatedRide && updatedRide.rideUuid === currentRide.rideUuid && updatedRide.driver && (updatedRide.status === -1 || updatedRide.status === 2)) {\n // remove localStorage.\n localStorage.removeItem('currentRide');\n // remove data from context.\n setCurrentRide(null);\n // reload window \n window.location.reload();\n }\n });\n }\n }, [currentRide]);\n\n /**\n * init current ride\n */\n const initCurrentRide = () => {\n const currentRide = localStorage.getItem('currentRide');\n if (currentRide) { \n setCurrentRide(() => JSON.parse(currentRide));\n }\n }\n\n /**\n * init auth user\n */\n const initAuthUser = () => { \n const authenticatedUser = localStorage.getItem('auth');\n if (authenticatedUser) { \n setUser(JSON.parse(authenticatedUser));\n }\n };\n\n /**\n * init comet chat.\n */\n const initCometChat = async () => {\n const { CometChat } = await import('@cometchat-pro/chat');\n const appID = `${process.env.REACT_APP_COMETCHAT_APP_ID}`;\n const region = `${process.env.REACT_APP_COMETCHAT_REGION}`;\n const appSetting = new CometChat.AppSettingsBuilder().subscribePresenceForAllUsers().setRegion(region).build();\n CometChat.init(appID, appSetting).then(\n () => {\n setCometChat(() => CometChat);\n },\n error => {\n }\n );\n }\n\n return (\n \n \n \n {/* Home Route */}\n \n \n {/* End Home Route */}\n {/* Login Route */}\n \n \n \n {/* End Login Route */}\n \n \n {isLoading && }\n \n );\n}\n\nexport default App;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport App from './App';\n\nReactDOM.render(\n \n \n ,\n document.getElementById('root')\n);\n"],"sourceRoot":""}