@sendbird/uikit-react 3.0.0-alpha.1 → 3.0.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/App.js +294 -0
- package/App.js.map +1 -0
- package/Channel/components/ChannelHeader.js +116 -0
- package/Channel/components/ChannelHeader.js.map +1 -0
- package/Channel/components/ChannelUI.js +172 -0
- package/Channel/components/ChannelUI.js.map +1 -0
- package/Channel/components/FileViewer.js +150 -0
- package/Channel/components/FileViewer.js.map +1 -0
- package/Channel/components/FrozenNotification.js +20 -0
- package/Channel/components/FrozenNotification.js.map +1 -0
- package/Channel/components/Message.js +232 -0
- package/Channel/components/Message.js.map +1 -0
- package/Channel/components/MessageInput.js +87 -0
- package/Channel/components/MessageInput.js.map +1 -0
- package/Channel/components/MessageList.js +227 -0
- package/Channel/components/MessageList.js.map +1 -0
- package/Channel/components/RemoveMessageModal.js +52 -0
- package/Channel/components/RemoveMessageModal.js.map +1 -0
- package/Channel/components/TypingIndicator.js +97 -0
- package/Channel/components/TypingIndicator.js.map +1 -0
- package/Channel/components/UnreadCount.js +41 -0
- package/Channel/components/UnreadCount.js.map +1 -0
- package/Channel/context.js +23 -0
- package/Channel/context.js.map +1 -0
- package/Channel.js +99 -0
- package/Channel.js.map +1 -0
- package/ChannelList/components/AddChannel.js +70 -0
- package/ChannelList/components/AddChannel.js.map +1 -0
- package/ChannelList/components/ChannelListHeader.js +62 -0
- package/ChannelList/components/ChannelListHeader.js.map +1 -0
- package/ChannelList/components/ChannelListUI.js +213 -0
- package/ChannelList/components/ChannelListUI.js.map +1 -0
- package/ChannelList/components/ChannelPreview.js +177 -0
- package/ChannelList/components/ChannelPreview.js.map +1 -0
- package/ChannelList/components/ChannelPreviewAction.js +131 -0
- package/ChannelList/components/ChannelPreviewAction.js.map +1 -0
- package/ChannelList/context.js +13 -0
- package/ChannelList/context.js.map +1 -0
- package/ChannelList.js +80 -0
- package/ChannelList.js.map +1 -0
- package/ChannelListProvider-0b0c2c40.js +861 -0
- package/ChannelListProvider-0b0c2c40.js.map +1 -0
- package/ChannelProvider-459e463f.js +2083 -0
- package/ChannelProvider-459e463f.js.map +1 -0
- package/ChannelSettings/components/AdminPanel.js +905 -0
- package/ChannelSettings/components/AdminPanel.js.map +1 -0
- package/ChannelSettings/components/ChannelProfile.js +102 -0
- package/ChannelSettings/components/ChannelProfile.js.map +1 -0
- package/ChannelSettings/components/ChannelSettingsUI.js +152 -0
- package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -0
- package/ChannelSettings/components/EditDetailsModal.js +154 -0
- package/ChannelSettings/components/EditDetailsModal.js.map +1 -0
- package/ChannelSettings/components/LeaveChannel.js +53 -0
- package/ChannelSettings/components/LeaveChannel.js.map +1 -0
- package/ChannelSettings/components/UserListItem.js +105 -0
- package/ChannelSettings/components/UserListItem.js.map +1 -0
- package/ChannelSettings/components/UserPanel.js +79 -0
- package/ChannelSettings/components/UserPanel.js.map +1 -0
- package/ChannelSettings/context.js +93 -0
- package/ChannelSettings/context.js.map +1 -0
- package/ChannelSettings.js +71 -0
- package/ChannelSettings.js.map +1 -0
- package/CreateChannel/components/CreateChannelUI.js +53 -0
- package/CreateChannel/components/CreateChannelUI.js.map +1 -0
- package/CreateChannel/components/InviteMembers.js +184 -0
- package/CreateChannel/components/InviteMembers.js.map +1 -0
- package/CreateChannel/components/SelectChannelType.js +131 -0
- package/CreateChannel/components/SelectChannelType.js.map +1 -0
- package/CreateChannel/context.js +8 -0
- package/CreateChannel/context.js.map +1 -0
- package/CreateChannel.js +53 -0
- package/CreateChannel.js.map +1 -0
- package/CreateChannelProvider-c617a1bb.js +53 -0
- package/CreateChannelProvider-c617a1bb.js.map +1 -0
- package/EditUserProfile/components/EditUserProfileUI.js +26 -0
- package/EditUserProfile/components/EditUserProfileUI.js.map +1 -0
- package/EditUserProfile/context.js +27 -0
- package/EditUserProfile/context.js.map +1 -0
- package/EditUserProfile.js +39 -0
- package/EditUserProfile.js.map +1 -0
- package/LocalizationContext-e4391013.js +22 -0
- package/LocalizationContext-e4391013.js.map +1 -0
- package/MemberList-6655cba0.js +425 -0
- package/MemberList-6655cba0.js.map +1 -0
- package/MessageSearch/components/MessageSearchUI.js +151 -0
- package/MessageSearch/components/MessageSearchUI.js.map +1 -0
- package/MessageSearch/context.js +392 -0
- package/MessageSearch/context.js.map +1 -0
- package/MessageSearch.js +146 -0
- package/MessageSearch.js.map +1 -0
- package/OpenChannel/components/FrozenChannelNotification.js +20 -0
- package/OpenChannel/components/FrozenChannelNotification.js.map +1 -0
- package/OpenChannel/components/OpenChannelHeader.js +78 -0
- package/OpenChannel/components/OpenChannelHeader.js.map +1 -0
- package/OpenChannel/components/OpenChannelInput.js +52 -0
- package/OpenChannel/components/OpenChannelInput.js.map +1 -0
- package/OpenChannel/components/OpenChannelMessage.js +278 -0
- package/OpenChannel/components/OpenChannelMessage.js.map +1 -0
- package/OpenChannel/components/OpenChannelMessageList.js +153 -0
- package/OpenChannel/components/OpenChannelMessageList.js.map +1 -0
- package/OpenChannel/components/OpenChannelUI.js +105 -0
- package/OpenChannel/components/OpenChannelUI.js.map +1 -0
- package/OpenChannel/context.js +14 -0
- package/OpenChannel/context.js.map +1 -0
- package/OpenChannel.js +76 -0
- package/OpenChannel.js.map +1 -0
- package/OpenChannelProvider-a7691eb4.js +2011 -0
- package/OpenChannelProvider-a7691eb4.js.map +1 -0
- package/OpenChannelSettings/components/EditDetailsModal.js +149 -0
- package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -0
- package/OpenChannelSettings/components/OpenChannelProfile.js +81 -0
- package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -0
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js +104 -0
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -0
- package/OpenChannelSettings/components/OperatorUI.js +184 -0
- package/OpenChannelSettings/components/OperatorUI.js.map +1 -0
- package/OpenChannelSettings/components/ParticipantUI.js +172 -0
- package/OpenChannelSettings/components/ParticipantUI.js.map +1 -0
- package/OpenChannelSettings/context.js +64 -0
- package/OpenChannelSettings/context.js.map +1 -0
- package/OpenChannelSettings.js +64 -0
- package/OpenChannelSettings.js.map +1 -0
- package/SendbirdProvider.js +740 -0
- package/SendbirdProvider.js.map +1 -0
- package/UserProfileContext-865db5e6.js +38 -0
- package/UserProfileContext-865db5e6.js.map +1 -0
- package/_rollupPluginBabelHelpers-20904f21.js +233 -0
- package/_rollupPluginBabelHelpers-20904f21.js.map +1 -0
- package/actionTypes-1e3a4074.js +6 -0
- package/actionTypes-1e3a4074.js.map +1 -0
- package/cjs/App.js +301 -0
- package/cjs/App.js.map +1 -0
- package/cjs/Channel/components/ChannelHeader.js +122 -0
- package/cjs/Channel/components/ChannelHeader.js.map +1 -0
- package/cjs/Channel/components/ChannelUI.js +178 -0
- package/cjs/Channel/components/ChannelUI.js.map +1 -0
- package/cjs/Channel/components/FileViewer.js +159 -0
- package/cjs/Channel/components/FileViewer.js.map +1 -0
- package/cjs/Channel/components/FrozenNotification.js +26 -0
- package/cjs/Channel/components/FrozenNotification.js.map +1 -0
- package/cjs/Channel/components/Message.js +238 -0
- package/cjs/Channel/components/Message.js.map +1 -0
- package/cjs/Channel/components/MessageInput.js +93 -0
- package/cjs/Channel/components/MessageInput.js.map +1 -0
- package/cjs/Channel/components/MessageList.js +233 -0
- package/cjs/Channel/components/MessageList.js.map +1 -0
- package/cjs/Channel/components/RemoveMessageModal.js +58 -0
- package/cjs/Channel/components/RemoveMessageModal.js.map +1 -0
- package/cjs/Channel/components/TypingIndicator.js +103 -0
- package/cjs/Channel/components/TypingIndicator.js.map +1 -0
- package/cjs/Channel/components/UnreadCount.js +47 -0
- package/cjs/Channel/components/UnreadCount.js.map +1 -0
- package/cjs/Channel/context.js +32 -0
- package/cjs/Channel/context.js.map +1 -0
- package/cjs/Channel.js +105 -0
- package/cjs/Channel.js.map +1 -0
- package/cjs/ChannelList/components/AddChannel.js +79 -0
- package/cjs/ChannelList/components/AddChannel.js.map +1 -0
- package/cjs/ChannelList/components/ChannelListHeader.js +68 -0
- package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -0
- package/cjs/ChannelList/components/ChannelListUI.js +219 -0
- package/cjs/ChannelList/components/ChannelListUI.js.map +1 -0
- package/cjs/ChannelList/components/ChannelPreview.js +183 -0
- package/cjs/ChannelList/components/ChannelPreview.js.map +1 -0
- package/cjs/ChannelList/components/ChannelPreviewAction.js +138 -0
- package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -0
- package/cjs/ChannelList/context.js +22 -0
- package/cjs/ChannelList/context.js.map +1 -0
- package/cjs/ChannelList.js +86 -0
- package/cjs/ChannelList.js.map +1 -0
- package/cjs/ChannelListProvider-5a152618.js +873 -0
- package/cjs/ChannelListProvider-5a152618.js.map +1 -0
- package/cjs/ChannelProvider-f1fb0108.js +2096 -0
- package/cjs/ChannelProvider-f1fb0108.js.map +1 -0
- package/cjs/ChannelSettings/components/AdminPanel.js +911 -0
- package/cjs/ChannelSettings/components/AdminPanel.js.map +1 -0
- package/cjs/ChannelSettings/components/ChannelProfile.js +108 -0
- package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -0
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js +158 -0
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -0
- package/cjs/ChannelSettings/components/EditDetailsModal.js +160 -0
- package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -0
- package/cjs/ChannelSettings/components/LeaveChannel.js +59 -0
- package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -0
- package/cjs/ChannelSettings/components/UserListItem.js +111 -0
- package/cjs/ChannelSettings/components/UserListItem.js.map +1 -0
- package/cjs/ChannelSettings/components/UserPanel.js +85 -0
- package/cjs/ChannelSettings/components/UserPanel.js.map +1 -0
- package/cjs/ChannelSettings/context.js +102 -0
- package/cjs/ChannelSettings/context.js.map +1 -0
- package/cjs/ChannelSettings.js +77 -0
- package/cjs/ChannelSettings.js.map +1 -0
- package/cjs/CreateChannel/components/CreateChannelUI.js +59 -0
- package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -0
- package/cjs/CreateChannel/components/InviteMembers.js +190 -0
- package/cjs/CreateChannel/components/InviteMembers.js.map +1 -0
- package/cjs/CreateChannel/components/SelectChannelType.js +137 -0
- package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -0
- package/cjs/CreateChannel/context.js +17 -0
- package/cjs/CreateChannel/context.js.map +1 -0
- package/cjs/CreateChannel.js +59 -0
- package/cjs/CreateChannel.js.map +1 -0
- package/cjs/CreateChannelProvider-df42106f.js +60 -0
- package/cjs/CreateChannelProvider-df42106f.js.map +1 -0
- package/cjs/EditUserProfile/components/EditUserProfileUI.js +32 -0
- package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -0
- package/cjs/EditUserProfile/context.js +36 -0
- package/cjs/EditUserProfile/context.js.map +1 -0
- package/cjs/EditUserProfile.js +45 -0
- package/cjs/EditUserProfile.js.map +1 -0
- package/cjs/LocalizationContext-68e55e2a.js +30 -0
- package/cjs/LocalizationContext-68e55e2a.js.map +1 -0
- package/cjs/MemberList-dc84e303.js +431 -0
- package/cjs/MemberList-dc84e303.js.map +1 -0
- package/cjs/MessageSearch/components/MessageSearchUI.js +160 -0
- package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -0
- package/cjs/MessageSearch/context.js +401 -0
- package/cjs/MessageSearch/context.js.map +1 -0
- package/cjs/MessageSearch.js +152 -0
- package/cjs/MessageSearch.js.map +1 -0
- package/cjs/OpenChannel/components/FrozenChannelNotification.js +26 -0
- package/cjs/OpenChannel/components/FrozenChannelNotification.js.map +1 -0
- package/cjs/OpenChannel/components/OpenChannelHeader.js +84 -0
- package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -0
- package/cjs/OpenChannel/components/OpenChannelInput.js +58 -0
- package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -0
- package/cjs/OpenChannel/components/OpenChannelMessage.js +284 -0
- package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -0
- package/cjs/OpenChannel/components/OpenChannelMessageList.js +159 -0
- package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -0
- package/cjs/OpenChannel/components/OpenChannelUI.js +111 -0
- package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -0
- package/cjs/OpenChannel/context.js +23 -0
- package/cjs/OpenChannel/context.js.map +1 -0
- package/cjs/OpenChannel.js +82 -0
- package/cjs/OpenChannel.js.map +1 -0
- package/cjs/OpenChannelProvider-7a1a996f.js +2020 -0
- package/cjs/OpenChannelProvider-7a1a996f.js.map +1 -0
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js +155 -0
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -0
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +87 -0
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -0
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +110 -0
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -0
- package/cjs/OpenChannelSettings/components/OperatorUI.js +194 -0
- package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -0
- package/cjs/OpenChannelSettings/components/ParticipantUI.js +178 -0
- package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -0
- package/cjs/OpenChannelSettings/context.js +73 -0
- package/cjs/OpenChannelSettings/context.js.map +1 -0
- package/cjs/OpenChannelSettings.js +70 -0
- package/cjs/OpenChannelSettings.js.map +1 -0
- package/cjs/SendbirdProvider.js +749 -0
- package/cjs/SendbirdProvider.js.map +1 -0
- package/cjs/UserProfileContext-3533547d.js +46 -0
- package/cjs/UserProfileContext-3533547d.js.map +1 -0
- package/cjs/_rollupPluginBabelHelpers-fc14118c.js +243 -0
- package/cjs/_rollupPluginBabelHelpers-fc14118c.js.map +1 -0
- package/cjs/actionTypes-bc47f97a.js +10 -0
- package/cjs/actionTypes-bc47f97a.js.map +1 -0
- package/cjs/color-4afb15fb.js +42 -0
- package/cjs/color-4afb15fb.js.map +1 -0
- package/cjs/compareIds-01306377.js +20 -0
- package/cjs/compareIds-01306377.js.map +1 -0
- package/cjs/context-c1f9d650.js +19 -0
- package/cjs/context-c1f9d650.js.map +1 -0
- package/cjs/index-1044f1ed.js +97 -0
- package/cjs/index-1044f1ed.js.map +1 -0
- package/cjs/index-1468d245.js +142 -0
- package/cjs/index-1468d245.js.map +1 -0
- package/cjs/index-4987c8b2.js +175 -0
- package/cjs/index-4987c8b2.js.map +1 -0
- package/cjs/index-659c9ca5.js +130 -0
- package/cjs/index-659c9ca5.js.map +1 -0
- package/cjs/index-8becccd8.js +284 -0
- package/cjs/index-8becccd8.js.map +1 -0
- package/cjs/index-905331fa.js +1880 -0
- package/cjs/index-905331fa.js.map +1 -0
- package/cjs/index-9dc3863f.js +67 -0
- package/cjs/index-9dc3863f.js.map +1 -0
- package/cjs/index-aecc8d24.js +9 -0
- package/cjs/index-aecc8d24.js.map +1 -0
- package/cjs/index-d4880236.js +641 -0
- package/cjs/index-d4880236.js.map +1 -0
- package/cjs/index-e2bb862c.js +514 -0
- package/cjs/index-e2bb862c.js.map +1 -0
- package/cjs/index.css +4355 -0
- package/cjs/index.css.map +1 -0
- package/cjs/index.js +155 -0
- package/cjs/index.js.map +1 -0
- package/cjs/openChannelUtils-37919a36.js +92 -0
- package/cjs/openChannelUtils-37919a36.js.map +1 -0
- package/cjs/sendBirdSelectors.js +741 -0
- package/cjs/sendBirdSelectors.js.map +1 -0
- package/cjs/stringSet-aa544ce5.js +116 -0
- package/cjs/stringSet-aa544ce5.js.map +1 -0
- package/cjs/topics-8314d425.js +18 -0
- package/cjs/topics-8314d425.js.map +1 -0
- package/cjs/tslib.es6-4a281a05.js +40 -0
- package/cjs/tslib.es6-4a281a05.js.map +1 -0
- package/cjs/ui/Accordion.js +74 -0
- package/cjs/ui/Accordion.js.map +1 -0
- package/cjs/ui/AccordionGroup.js +32 -0
- package/cjs/ui/AccordionGroup.js.map +1 -0
- package/cjs/ui/AdminMessage.js +44 -0
- package/cjs/ui/AdminMessage.js.map +1 -0
- package/cjs/ui/Avatar.js +226 -0
- package/cjs/ui/Avatar.js.map +1 -0
- package/cjs/ui/Badge.js +45 -0
- package/cjs/ui/Badge.js.map +1 -0
- package/cjs/ui/Button.js +17 -0
- package/cjs/ui/Button.js.map +1 -0
- package/cjs/ui/ChannelAvatar.js +59 -0
- package/cjs/ui/ChannelAvatar.js.map +1 -0
- package/cjs/ui/ChannelPreview.js +201 -0
- package/cjs/ui/ChannelPreview.js.map +1 -0
- package/cjs/ui/ChatHeader.js +145 -0
- package/cjs/ui/ChatHeader.js.map +1 -0
- package/cjs/ui/Checkbox.js +49 -0
- package/cjs/ui/Checkbox.js.map +1 -0
- package/cjs/ui/ConnectionStatus.js +34 -0
- package/cjs/ui/ConnectionStatus.js.map +1 -0
- package/cjs/ui/ContextMenu.js +431 -0
- package/cjs/ui/ContextMenu.js.map +1 -0
- package/cjs/ui/DateSeparator.js +44 -0
- package/cjs/ui/DateSeparator.js.map +1 -0
- package/cjs/ui/Dropdown.js +107 -0
- package/cjs/ui/Dropdown.js.map +1 -0
- package/cjs/ui/EmojiReactions.js +127 -0
- package/cjs/ui/EmojiReactions.js.map +1 -0
- package/cjs/ui/FileMessageItemBody.js +57 -0
- package/cjs/ui/FileMessageItemBody.js.map +1 -0
- package/cjs/ui/FileViewer.js +174 -0
- package/cjs/ui/FileViewer.js.map +1 -0
- package/cjs/ui/Icon.js +1462 -0
- package/cjs/ui/Icon.js.map +1 -0
- package/cjs/ui/IconButton.js +83 -0
- package/cjs/ui/IconButton.js.map +1 -0
- package/cjs/ui/ImageRenderer.js +138 -0
- package/cjs/ui/ImageRenderer.js.map +1 -0
- package/cjs/ui/Input.js +74 -0
- package/cjs/ui/Input.js.map +1 -0
- package/cjs/ui/Label.js +17 -0
- package/cjs/ui/Label.js.map +1 -0
- package/cjs/ui/LinkLabel.js +51 -0
- package/cjs/ui/LinkLabel.js.map +1 -0
- package/cjs/ui/Loader.js +44 -0
- package/cjs/ui/Loader.js.map +1 -0
- package/cjs/ui/MessageContent.js +328 -0
- package/cjs/ui/MessageContent.js.map +1 -0
- package/cjs/ui/MessageInput.js +232 -0
- package/cjs/ui/MessageInput.js.map +1 -0
- package/cjs/ui/MessageItemMenu.js +141 -0
- package/cjs/ui/MessageItemMenu.js.map +1 -0
- package/cjs/ui/MessageItemReactionMenu.js +112 -0
- package/cjs/ui/MessageItemReactionMenu.js.map +1 -0
- package/cjs/ui/MessageSearchFileItem.js +130 -0
- package/cjs/ui/MessageSearchFileItem.js.map +1 -0
- package/cjs/ui/MessageSearchItem.js +93 -0
- package/cjs/ui/MessageSearchItem.js.map +1 -0
- package/cjs/ui/Modal.js +140 -0
- package/cjs/ui/Modal.js.map +1 -0
- package/cjs/ui/MutedAvatarOverlay.js +40 -0
- package/cjs/ui/MutedAvatarOverlay.js.map +1 -0
- package/cjs/ui/OGMessageItemBody.js +97 -0
- package/cjs/ui/OGMessageItemBody.js.map +1 -0
- package/cjs/ui/OpenChannelAdminMessage.js +27 -0
- package/cjs/ui/OpenChannelAdminMessage.js.map +1 -0
- package/cjs/ui/OpenChannelAvatar.js +41 -0
- package/cjs/ui/OpenChannelAvatar.js.map +1 -0
- package/cjs/ui/OpenChannelMessageContent.js +14 -0
- package/cjs/ui/OpenChannelMessageContent.js.map +1 -0
- package/cjs/ui/OpenchannelConversationHeader.js +73 -0
- package/cjs/ui/OpenchannelConversationHeader.js.map +1 -0
- package/cjs/ui/OpenchannelFileMessage.js +230 -0
- package/cjs/ui/OpenchannelFileMessage.js.map +1 -0
- package/cjs/ui/OpenchannelOGMessage.js +345 -0
- package/cjs/ui/OpenchannelOGMessage.js.map +1 -0
- package/cjs/ui/OpenchannelThumbnailMessage.js +305 -0
- package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -0
- package/cjs/ui/OpenchannelUserMessage.js +264 -0
- package/cjs/ui/OpenchannelUserMessage.js.map +1 -0
- package/cjs/ui/PlaceHolder.js +20 -0
- package/cjs/ui/PlaceHolder.js.map +1 -0
- package/cjs/ui/QuoteMessage.js +131 -0
- package/cjs/ui/QuoteMessage.js.map +1 -0
- package/cjs/ui/QuoteMessageInput.js +99 -0
- package/cjs/ui/QuoteMessageInput.js.map +1 -0
- package/cjs/ui/ReactionBadge.js +68 -0
- package/cjs/ui/ReactionBadge.js.map +1 -0
- package/cjs/ui/ReactionButton.js +55 -0
- package/cjs/ui/ReactionButton.js.map +1 -0
- package/cjs/ui/SortByRow.js +57 -0
- package/cjs/ui/SortByRow.js.map +1 -0
- package/cjs/ui/TextButton.js +45 -0
- package/cjs/ui/TextButton.js.map +1 -0
- package/cjs/ui/TextMessageItemBody.js +40 -0
- package/cjs/ui/TextMessageItemBody.js.map +1 -0
- package/cjs/ui/ThumbnailMessageItemBody.js +82 -0
- package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -0
- package/cjs/ui/Tooltip.js +35 -0
- package/cjs/ui/Tooltip.js.map +1 -0
- package/cjs/ui/TooltipWrapper.js +65 -0
- package/cjs/ui/TooltipWrapper.js.map +1 -0
- package/cjs/ui/UnknownMessageItemBody.js +41 -0
- package/cjs/ui/UnknownMessageItemBody.js.map +1 -0
- package/cjs/ui/UserListItem.js +158 -0
- package/cjs/ui/UserListItem.js.map +1 -0
- package/cjs/ui/UserProfile.js +87 -0
- package/cjs/ui/UserProfile.js.map +1 -0
- package/cjs/useSendbirdStateContext.js +22 -0
- package/cjs/useSendbirdStateContext.js.map +1 -0
- package/cjs/utils-3b0815dc.js +6 -0
- package/cjs/utils-3b0815dc.js.map +1 -0
- package/cjs/utils-66b3f4ec.js +38 -0
- package/cjs/utils-66b3f4ec.js.map +1 -0
- package/cjs/utils-cbd3ed99.js +32 -0
- package/cjs/utils-cbd3ed99.js.map +1 -0
- package/cjs/uuid-1d5ec8b2.js +19 -0
- package/cjs/uuid-1d5ec8b2.js.map +1 -0
- package/cjs/withSendBird.js +35 -0
- package/cjs/withSendBird.js.map +1 -0
- package/color-ee3fc5ee.js +39 -0
- package/color-ee3fc5ee.js.map +1 -0
- package/compareIds-808956f2.js +18 -0
- package/compareIds-808956f2.js.map +1 -0
- package/context-98ce535c.js +12 -0
- package/context-98ce535c.js.map +1 -0
- package/index-1718324d.js +280 -0
- package/index-1718324d.js.map +1 -0
- package/index-5c2c81bc.js +168 -0
- package/index-5c2c81bc.js.map +1 -0
- package/index-6ebf7894.js +512 -0
- package/index-6ebf7894.js.map +1 -0
- package/index-770d7112.js +1873 -0
- package/index-770d7112.js.map +1 -0
- package/index-7a51bd16.js +131 -0
- package/index-7a51bd16.js.map +1 -0
- package/index-8c72a94a.js +602 -0
- package/index-8c72a94a.js.map +1 -0
- package/index-942c85a6.js +7 -0
- package/index-942c85a6.js.map +1 -0
- package/index-acebc2ff.js +87 -0
- package/index-acebc2ff.js.map +1 -0
- package/index-cd21929d.js +64 -0
- package/index-cd21929d.js.map +1 -0
- package/index-e818a8a3.js +121 -0
- package/index-e818a8a3.js.map +1 -0
- package/index.css +4355 -0
- package/index.css.map +1 -0
- package/index.d.ts +1801 -0
- package/index.js.map +1 -0
- package/openChannelUtils-56a372e7.js +81 -0
- package/openChannelUtils-56a372e7.js.map +1 -0
- package/package.json +1 -8
- package/sendBirdSelectors.js +713 -0
- package/sendBirdSelectors.js.map +1 -0
- package/stringSet-4f6eaa60.js +114 -0
- package/stringSet-4f6eaa60.js.map +1 -0
- package/topics-9442035c.js +10 -0
- package/topics-9442035c.js.map +1 -0
- package/tslib.es6-e3c44017.js +38 -0
- package/tslib.es6-e3c44017.js.map +1 -0
- package/ui/Accordion.js +65 -0
- package/ui/Accordion.js.map +1 -0
- package/ui/AccordionGroup.js +26 -0
- package/ui/AccordionGroup.js.map +1 -0
- package/ui/AdminMessage.js +37 -0
- package/ui/AdminMessage.js.map +1 -0
- package/ui/Avatar.js +217 -0
- package/ui/Avatar.js.map +1 -0
- package/ui/Badge.js +38 -0
- package/ui/Badge.js.map +1 -0
- package/ui/Button.js +7 -0
- package/ui/Button.js.map +1 -0
- package/ui/ChannelAvatar.js +53 -0
- package/ui/ChannelAvatar.js.map +1 -0
- package/ui/ChannelPreview.js +194 -0
- package/ui/ChannelPreview.js.map +1 -0
- package/ui/ChatHeader.js +138 -0
- package/ui/ChatHeader.js.map +1 -0
- package/ui/Checkbox.js +42 -0
- package/ui/Checkbox.js.map +1 -0
- package/ui/ConnectionStatus.js +28 -0
- package/ui/ConnectionStatus.js.map +1 -0
- package/ui/ContextMenu.js +417 -0
- package/ui/ContextMenu.js.map +1 -0
- package/ui/DateSeparator.js +37 -0
- package/ui/DateSeparator.js.map +1 -0
- package/ui/Dropdown.js +97 -0
- package/ui/Dropdown.js.map +1 -0
- package/ui/EmojiReactions.js +121 -0
- package/ui/EmojiReactions.js.map +1 -0
- package/ui/FileMessageItemBody.js +51 -0
- package/ui/FileMessageItemBody.js.map +1 -0
- package/ui/FileViewer.js +164 -0
- package/ui/FileViewer.js.map +1 -0
- package/ui/Icon.js +1432 -0
- package/ui/Icon.js.map +1 -0
- package/ui/IconButton.js +76 -0
- package/ui/IconButton.js.map +1 -0
- package/ui/ImageRenderer.js +131 -0
- package/ui/ImageRenderer.js.map +1 -0
- package/ui/Input.js +64 -0
- package/ui/Input.js.map +1 -0
- package/ui/Label.js +6 -0
- package/ui/Label.js.map +1 -0
- package/ui/LinkLabel.js +40 -0
- package/ui/LinkLabel.js.map +1 -0
- package/ui/Loader.js +37 -0
- package/ui/Loader.js.map +1 -0
- package/ui/MessageContent.js +322 -0
- package/ui/MessageContent.js.map +1 -0
- package/ui/MessageInput.js +225 -0
- package/ui/MessageInput.js.map +1 -0
- package/ui/MessageItemMenu.js +135 -0
- package/ui/MessageItemMenu.js.map +1 -0
- package/ui/MessageItemReactionMenu.js +106 -0
- package/ui/MessageItemReactionMenu.js.map +1 -0
- package/ui/MessageSearchFileItem.js +124 -0
- package/ui/MessageSearchFileItem.js.map +1 -0
- package/ui/MessageSearchItem.js +87 -0
- package/ui/MessageSearchItem.js.map +1 -0
- package/ui/Modal.js +128 -0
- package/ui/Modal.js.map +1 -0
- package/ui/MutedAvatarOverlay.js +34 -0
- package/ui/MutedAvatarOverlay.js.map +1 -0
- package/ui/OGMessageItemBody.js +91 -0
- package/ui/OGMessageItemBody.js.map +1 -0
- package/ui/OpenChannelAdminMessage.js +21 -0
- package/ui/OpenChannelAdminMessage.js.map +1 -0
- package/ui/OpenChannelAvatar.js +35 -0
- package/ui/OpenChannelAvatar.js.map +1 -0
- package/ui/OpenChannelMessageContent.js +8 -0
- package/ui/OpenChannelMessageContent.js.map +1 -0
- package/ui/OpenchannelConversationHeader.js +67 -0
- package/ui/OpenchannelConversationHeader.js.map +1 -0
- package/ui/OpenchannelFileMessage.js +224 -0
- package/ui/OpenchannelFileMessage.js.map +1 -0
- package/ui/OpenchannelOGMessage.js +339 -0
- package/ui/OpenchannelOGMessage.js.map +1 -0
- package/ui/OpenchannelThumbnailMessage.js +299 -0
- package/ui/OpenchannelThumbnailMessage.js.map +1 -0
- package/ui/OpenchannelUserMessage.js +258 -0
- package/ui/OpenchannelUserMessage.js.map +1 -0
- package/ui/PlaceHolder.js +11 -0
- package/ui/PlaceHolder.js.map +1 -0
- package/ui/QuoteMessage.js +125 -0
- package/ui/QuoteMessage.js.map +1 -0
- package/ui/QuoteMessageInput.js +93 -0
- package/ui/QuoteMessageInput.js.map +1 -0
- package/ui/ReactionBadge.js +61 -0
- package/ui/ReactionBadge.js.map +1 -0
- package/ui/ReactionButton.js +48 -0
- package/ui/ReactionButton.js.map +1 -0
- package/ui/SortByRow.js +50 -0
- package/ui/SortByRow.js.map +1 -0
- package/ui/TextButton.js +38 -0
- package/ui/TextButton.js.map +1 -0
- package/ui/TextMessageItemBody.js +34 -0
- package/ui/TextMessageItemBody.js.map +1 -0
- package/ui/ThumbnailMessageItemBody.js +76 -0
- package/ui/ThumbnailMessageItemBody.js.map +1 -0
- package/ui/Tooltip.js +28 -0
- package/ui/Tooltip.js.map +1 -0
- package/ui/TooltipWrapper.js +58 -0
- package/ui/TooltipWrapper.js.map +1 -0
- package/ui/UnknownMessageItemBody.js +35 -0
- package/ui/UnknownMessageItemBody.js.map +1 -0
- package/ui/UserListItem.js +151 -0
- package/ui/UserListItem.js.map +1 -0
- package/ui/UserProfile.js +81 -0
- package/ui/UserProfile.js.map +1 -0
- package/useSendbirdStateContext.js +20 -0
- package/useSendbirdStateContext.js.map +1 -0
- package/utils-08c4dbdc.js +34 -0
- package/utils-08c4dbdc.js.map +1 -0
- package/utils-af1b9829.js +30 -0
- package/utils-af1b9829.js.map +1 -0
- package/utils-c393e880.js +4 -0
- package/utils-c393e880.js.map +1 -0
- package/uuid-b0c93400.js +17 -0
- package/uuid-b0c93400.js.map +1 -0
- package/withSendBird.js +26 -0
- package/withSendBird.js.map +1 -0
|
@@ -0,0 +1,2096 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var UserProfileContext = require('./UserProfileContext-3533547d.js');
|
|
5
|
+
var useSendbirdStateContext = require('./useSendbirdStateContext.js');
|
|
6
|
+
var _rollupPluginBabelHelpers = require('./_rollupPluginBabelHelpers-fc14118c.js');
|
|
7
|
+
var index$1 = require('./index-905331fa.js');
|
|
8
|
+
var topics = require('./topics-8314d425.js');
|
|
9
|
+
var index = require('./index-d4880236.js');
|
|
10
|
+
var compareIds = require('./compareIds-01306377.js');
|
|
11
|
+
var uuid = require('./uuid-1d5ec8b2.js');
|
|
12
|
+
var ui_ContextMenu = require('./ui/ContextMenu.js');
|
|
13
|
+
var ui_ReactionButton = require('./ui/ReactionButton.js');
|
|
14
|
+
var ui_ImageRenderer = require('./ui/ImageRenderer.js');
|
|
15
|
+
var ui_Icon = require('./ui/Icon.js');
|
|
16
|
+
|
|
17
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
18
|
+
|
|
19
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
20
|
+
|
|
21
|
+
var RESET_MESSAGES = 'RESET_MESSAGES';
|
|
22
|
+
var FETCH_INITIAL_MESSAGES_START = 'FETCH_INITIAL_MESSAGES_START';
|
|
23
|
+
var FETCH_INITIAL_MESSAGES_SUCCESS = 'FETCH_INITIAL_MESSAGES_SUCCESS';
|
|
24
|
+
var FETCH_INITIAL_MESSAGES_FAILURE = 'FETCH_INITIAL_MESSAGES_FAILURE';
|
|
25
|
+
var FETCH_PREV_MESSAGES_SUCCESS = 'FETCH_PREV_MESSAGES_SUCCESS';
|
|
26
|
+
var FETCH_PREV_MESSAGES_FAILURE = 'FETCH_PREV_MESSAGES_FAILURE';
|
|
27
|
+
var FETCH_NEXT_MESSAGES_SUCCESS = 'FETCH_NEXT_MESSAGES_SUCCESS';
|
|
28
|
+
var FETCH_NEXT_MESSAGES_FAILURE = 'FETCH_NEXT_MESSAGES_FAILURE';
|
|
29
|
+
var SEND_MESSAGEGE_START = 'SEND_MESSAGEGE_START';
|
|
30
|
+
var SEND_MESSAGEGE_SUCESS = 'SEND_MESSAGEGE_SUCESS';
|
|
31
|
+
var SEND_MESSAGEGE_FAILURE = 'SEND_MESSAGEGE_FAILURE';
|
|
32
|
+
var RESEND_MESSAGEGE_START = 'RESEND_MESSAGEGE_START';
|
|
33
|
+
var ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';
|
|
34
|
+
var ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';
|
|
35
|
+
var ON_MESSAGE_THREAD_INFO_UPDATED = 'ON_MESSAGE_THREAD_INFO_UPDATED';
|
|
36
|
+
var ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';
|
|
37
|
+
var ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';
|
|
38
|
+
var SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';
|
|
39
|
+
var SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';
|
|
40
|
+
var MARK_AS_READ = 'MARK_AS_READ';
|
|
41
|
+
var ON_REACTION_UPDATED = 'ON_REACTION_UPDATED';
|
|
42
|
+
var SET_EMOJI_CONTAINER = 'SET_EMOJI_CONTAINER';
|
|
43
|
+
var MESSAGE_LIST_PARAMS_CHANGED = 'MESSAGE_LIST_PARAMS_CHANGED';
|
|
44
|
+
|
|
45
|
+
var messageActionTypes = /*#__PURE__*/Object.freeze({
|
|
46
|
+
__proto__: null,
|
|
47
|
+
RESET_MESSAGES: RESET_MESSAGES,
|
|
48
|
+
FETCH_INITIAL_MESSAGES_START: FETCH_INITIAL_MESSAGES_START,
|
|
49
|
+
FETCH_INITIAL_MESSAGES_SUCCESS: FETCH_INITIAL_MESSAGES_SUCCESS,
|
|
50
|
+
FETCH_INITIAL_MESSAGES_FAILURE: FETCH_INITIAL_MESSAGES_FAILURE,
|
|
51
|
+
FETCH_PREV_MESSAGES_SUCCESS: FETCH_PREV_MESSAGES_SUCCESS,
|
|
52
|
+
FETCH_PREV_MESSAGES_FAILURE: FETCH_PREV_MESSAGES_FAILURE,
|
|
53
|
+
FETCH_NEXT_MESSAGES_SUCCESS: FETCH_NEXT_MESSAGES_SUCCESS,
|
|
54
|
+
FETCH_NEXT_MESSAGES_FAILURE: FETCH_NEXT_MESSAGES_FAILURE,
|
|
55
|
+
SEND_MESSAGEGE_START: SEND_MESSAGEGE_START,
|
|
56
|
+
SEND_MESSAGEGE_SUCESS: SEND_MESSAGEGE_SUCESS,
|
|
57
|
+
SEND_MESSAGEGE_FAILURE: SEND_MESSAGEGE_FAILURE,
|
|
58
|
+
RESEND_MESSAGEGE_START: RESEND_MESSAGEGE_START,
|
|
59
|
+
ON_MESSAGE_RECEIVED: ON_MESSAGE_RECEIVED,
|
|
60
|
+
ON_MESSAGE_UPDATED: ON_MESSAGE_UPDATED,
|
|
61
|
+
ON_MESSAGE_THREAD_INFO_UPDATED: ON_MESSAGE_THREAD_INFO_UPDATED,
|
|
62
|
+
ON_MESSAGE_DELETED: ON_MESSAGE_DELETED,
|
|
63
|
+
ON_MESSAGE_DELETED_BY_REQ_ID: ON_MESSAGE_DELETED_BY_REQ_ID,
|
|
64
|
+
SET_CURRENT_CHANNEL: SET_CURRENT_CHANNEL,
|
|
65
|
+
SET_CHANNEL_INVALID: SET_CHANNEL_INVALID,
|
|
66
|
+
MARK_AS_READ: MARK_AS_READ,
|
|
67
|
+
ON_REACTION_UPDATED: ON_REACTION_UPDATED,
|
|
68
|
+
SET_EMOJI_CONTAINER: SET_EMOJI_CONTAINER,
|
|
69
|
+
MESSAGE_LIST_PARAMS_CHANGED: MESSAGE_LIST_PARAMS_CHANGED
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
index.getOutgoingMessageStates();
|
|
73
|
+
var UNDEFINED = 'undefined';
|
|
74
|
+
|
|
75
|
+
var _getSendingMessageSta$1 = index.getSendingMessageStatus(),
|
|
76
|
+
SUCCEEDED$1 = _getSendingMessageSta$1.SUCCEEDED;
|
|
77
|
+
_getSendingMessageSta$1.FAILED;
|
|
78
|
+
var PENDING$1 = _getSendingMessageSta$1.PENDING;
|
|
79
|
+
|
|
80
|
+
var scrollIntoLast = function scrollIntoLast() {
|
|
81
|
+
var intialTry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
82
|
+
var MAX_TRIES = 10;
|
|
83
|
+
var currentTry = intialTry;
|
|
84
|
+
|
|
85
|
+
if (currentTry > MAX_TRIES) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
try {
|
|
90
|
+
var scrollDOM = document.querySelector('.sendbird-conversation__messages-padding'); // eslint-disable-next-line no-multi-assign
|
|
91
|
+
|
|
92
|
+
scrollDOM.scrollTop = scrollDOM.scrollHeight;
|
|
93
|
+
} catch (error) {
|
|
94
|
+
setTimeout(function () {
|
|
95
|
+
scrollIntoLast(currentTry + 1);
|
|
96
|
+
}, 500 * currentTry);
|
|
97
|
+
}
|
|
98
|
+
};
|
|
99
|
+
var pubSubHandleRemover = function pubSubHandleRemover(subscriber) {
|
|
100
|
+
subscriber.forEach(function (s) {
|
|
101
|
+
try {
|
|
102
|
+
s.remove();
|
|
103
|
+
} catch (_unused) {//
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
};
|
|
107
|
+
var pubSubHandler = function pubSubHandler(channelUrl, pubSub, dispatcher) {
|
|
108
|
+
var subscriber = new Map();
|
|
109
|
+
if (!pubSub || !pubSub.subscribe) return subscriber;
|
|
110
|
+
subscriber.set(topics.SEND_USER_MESSAGE, pubSub.subscribe(topics.SEND_USER_MESSAGE, function (msg) {
|
|
111
|
+
var channel = msg.channel,
|
|
112
|
+
message = msg.message;
|
|
113
|
+
scrollIntoLast();
|
|
114
|
+
|
|
115
|
+
if (channel && channelUrl === channel.url) {
|
|
116
|
+
dispatcher({
|
|
117
|
+
type: SEND_MESSAGEGE_SUCESS,
|
|
118
|
+
payload: message
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}));
|
|
122
|
+
subscriber.set(topics.SEND_MESSAGE_START, pubSub.subscribe(topics.SEND_MESSAGE_START, function (msg) {
|
|
123
|
+
var channel = msg.channel,
|
|
124
|
+
message = msg.message;
|
|
125
|
+
|
|
126
|
+
if (channel && channelUrl === channel.url) {
|
|
127
|
+
dispatcher({
|
|
128
|
+
type: SEND_MESSAGEGE_START,
|
|
129
|
+
payload: message
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
}));
|
|
133
|
+
subscriber.set(topics.SEND_FILE_MESSAGE, pubSub.subscribe(topics.SEND_FILE_MESSAGE, function (msg) {
|
|
134
|
+
var channel = msg.channel,
|
|
135
|
+
message = msg.message;
|
|
136
|
+
scrollIntoLast();
|
|
137
|
+
|
|
138
|
+
if (channel && channelUrl === channel.url) {
|
|
139
|
+
dispatcher({
|
|
140
|
+
type: SEND_MESSAGEGE_SUCESS,
|
|
141
|
+
payload: message
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
}));
|
|
145
|
+
subscriber.set(topics.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.UPDATE_USER_MESSAGE, function (msg) {
|
|
146
|
+
var channel = msg.channel,
|
|
147
|
+
message = msg.message,
|
|
148
|
+
fromSelector = msg.fromSelector;
|
|
149
|
+
|
|
150
|
+
if (fromSelector && channel && channelUrl === channel.url) {
|
|
151
|
+
dispatcher({
|
|
152
|
+
type: ON_MESSAGE_UPDATED,
|
|
153
|
+
payload: {
|
|
154
|
+
channel: channel,
|
|
155
|
+
message: message
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
}));
|
|
160
|
+
subscriber.set(topics.DELETE_MESSAGE, pubSub.subscribe(topics.DELETE_MESSAGE, function (msg) {
|
|
161
|
+
var channel = msg.channel,
|
|
162
|
+
messageId = msg.messageId;
|
|
163
|
+
|
|
164
|
+
if (channel && channelUrl === channel.url) {
|
|
165
|
+
dispatcher({
|
|
166
|
+
type: ON_MESSAGE_DELETED,
|
|
167
|
+
payload: messageId
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
}));
|
|
171
|
+
return subscriber;
|
|
172
|
+
};
|
|
173
|
+
var isOperator = function isOperator() {
|
|
174
|
+
var groupChannel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
175
|
+
var myRole = groupChannel.myRole;
|
|
176
|
+
return myRole === 'operator';
|
|
177
|
+
};
|
|
178
|
+
var isDisabledBecauseFrozen = function isDisabledBecauseFrozen() {
|
|
179
|
+
var groupChannel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
180
|
+
var isFrozen = groupChannel.isFrozen;
|
|
181
|
+
return isFrozen && !isOperator(groupChannel);
|
|
182
|
+
};
|
|
183
|
+
var isDisabledBecauseMuted = function isDisabledBecauseMuted() {
|
|
184
|
+
var groupChannel = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
185
|
+
var myMutedState = groupChannel.myMutedState;
|
|
186
|
+
return myMutedState === 'muted';
|
|
187
|
+
};
|
|
188
|
+
var getAllEmojisFromEmojiContainer = function getAllEmojisFromEmojiContainer() {
|
|
189
|
+
var emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
190
|
+
var _emojiContainer$emoji = emojiContainer.emojiCategories,
|
|
191
|
+
emojiCategories = _emojiContainer$emoji === void 0 ? [] : _emojiContainer$emoji;
|
|
192
|
+
var allEmojis = [];
|
|
193
|
+
|
|
194
|
+
for (var categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {
|
|
195
|
+
var emojis = emojiCategories[categoryIndex].emojis;
|
|
196
|
+
|
|
197
|
+
for (var emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {
|
|
198
|
+
allEmojis.push(emojis[emojiIndex]);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
return allEmojis;
|
|
203
|
+
};
|
|
204
|
+
var getAllEmojisMapFromEmojiContainer = function getAllEmojisMapFromEmojiContainer() {
|
|
205
|
+
var emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
206
|
+
var _emojiContainer$emoji2 = emojiContainer.emojiCategories,
|
|
207
|
+
emojiCategories = _emojiContainer$emoji2 === void 0 ? [] : _emojiContainer$emoji2;
|
|
208
|
+
var allEmojisMap = new Map();
|
|
209
|
+
|
|
210
|
+
for (var categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {
|
|
211
|
+
var emojis = emojiCategories[categoryIndex].emojis;
|
|
212
|
+
|
|
213
|
+
for (var emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {
|
|
214
|
+
var _emojis$emojiIndex = emojis[emojiIndex],
|
|
215
|
+
key = _emojis$emojiIndex.key,
|
|
216
|
+
url = _emojis$emojiIndex.url;
|
|
217
|
+
allEmojisMap.set(key, url);
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
return allEmojisMap;
|
|
222
|
+
};
|
|
223
|
+
var getNicknamesMapFromMembers = function getNicknamesMapFromMembers() {
|
|
224
|
+
var members = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
225
|
+
var nicknamesMap = new Map();
|
|
226
|
+
|
|
227
|
+
for (var memberIndex = 0; memberIndex < members.length; memberIndex += 1) {
|
|
228
|
+
var _members$memberIndex = members[memberIndex],
|
|
229
|
+
userId = _members$memberIndex.userId,
|
|
230
|
+
nickname = _members$memberIndex.nickname;
|
|
231
|
+
nicknamesMap.set(userId, nickname);
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
return nicknamesMap;
|
|
235
|
+
};
|
|
236
|
+
var getMessageCreatedAt = function getMessageCreatedAt(message) {
|
|
237
|
+
return index$1.format(message.createdAt, 'p');
|
|
238
|
+
};
|
|
239
|
+
var isSameGroup = function isSameGroup(message, comparingMessage) {
|
|
240
|
+
var _message$sender, _comparingMessage$sen, _message$sender2, _comparingMessage$sen2;
|
|
241
|
+
|
|
242
|
+
if (!(message && comparingMessage && (message === null || message === void 0 ? void 0 : message.messageType) !== 'admin' && (comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.messageType) !== 'admin' && message !== null && message !== void 0 && message.sender && comparingMessage !== null && comparingMessage !== void 0 && comparingMessage.sender && message !== null && message !== void 0 && message.createdAt && comparingMessage !== null && comparingMessage !== void 0 && comparingMessage.createdAt && message !== null && message !== void 0 && (_message$sender = message.sender) !== null && _message$sender !== void 0 && _message$sender.userId && comparingMessage !== null && comparingMessage !== void 0 && (_comparingMessage$sen = comparingMessage.sender) !== null && _comparingMessage$sen !== void 0 && _comparingMessage$sen.userId)) {
|
|
243
|
+
return false;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
return (message === null || message === void 0 ? void 0 : message.sendingStatus) === (comparingMessage === null || comparingMessage === void 0 ? void 0 : comparingMessage.sendingStatus) && (message === null || message === void 0 ? void 0 : (_message$sender2 = message.sender) === null || _message$sender2 === void 0 ? void 0 : _message$sender2.userId) === (comparingMessage === null || comparingMessage === void 0 ? void 0 : (_comparingMessage$sen2 = comparingMessage.sender) === null || _comparingMessage$sen2 === void 0 ? void 0 : _comparingMessage$sen2.userId) && getMessageCreatedAt(message) === getMessageCreatedAt(comparingMessage);
|
|
247
|
+
};
|
|
248
|
+
var compareMessagesForGrouping = function compareMessagesForGrouping(prevMessage, currMessage, nextMessage) {
|
|
249
|
+
var sendingStatus = (currMessage === null || currMessage === void 0 ? void 0 : currMessage.sendingStatus) || '';
|
|
250
|
+
var isAcceptable = sendingStatus !== 'pending' && sendingStatus !== 'failed';
|
|
251
|
+
return [isSameGroup(prevMessage, currMessage) && isAcceptable, isSameGroup(currMessage, nextMessage) && isAcceptable];
|
|
252
|
+
};
|
|
253
|
+
var passUnsuccessfullMessages = function passUnsuccessfullMessages(allMessages, newMessage) {
|
|
254
|
+
var _newMessage$sendingSt = newMessage.sendingStatus,
|
|
255
|
+
sendingStatus = _newMessage$sendingSt === void 0 ? UNDEFINED : _newMessage$sendingSt;
|
|
256
|
+
|
|
257
|
+
if (sendingStatus === SUCCEEDED$1 || sendingStatus === PENDING$1) {
|
|
258
|
+
var lastIndexOfSucceededMessage = allMessages.map(function (message) {
|
|
259
|
+
return message.sendingStatus || (message.isAdminMessage && message.isAdminMessage() ? SUCCEEDED$1 : UNDEFINED);
|
|
260
|
+
}).lastIndexOf(SUCCEEDED$1);
|
|
261
|
+
|
|
262
|
+
if (lastIndexOfSucceededMessage + 1 < allMessages.length) {
|
|
263
|
+
var messages = _rollupPluginBabelHelpers._toConsumableArray(allMessages);
|
|
264
|
+
|
|
265
|
+
messages.splice(lastIndexOfSucceededMessage + 1, 0, newMessage);
|
|
266
|
+
return messages;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
return [].concat(_rollupPluginBabelHelpers._toConsumableArray(allMessages), [newMessage]);
|
|
271
|
+
};
|
|
272
|
+
var pxToNumber = function pxToNumber(px) {
|
|
273
|
+
if (typeof px === 'number') {
|
|
274
|
+
return px;
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
if (typeof px === 'string') {
|
|
278
|
+
var parsed = Number.parseFloat(px);
|
|
279
|
+
|
|
280
|
+
if (!Number.isNaN(parsed)) {
|
|
281
|
+
return parsed;
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
return null;
|
|
286
|
+
};
|
|
287
|
+
var isAboutSame = function isAboutSame(a, b, px) {
|
|
288
|
+
return Math.abs(a - b) <= px;
|
|
289
|
+
};
|
|
290
|
+
|
|
291
|
+
var messagesInitialState = {
|
|
292
|
+
initialized: false,
|
|
293
|
+
loading: false,
|
|
294
|
+
allMessages: [],
|
|
295
|
+
currentGroupChannel: {
|
|
296
|
+
members: []
|
|
297
|
+
},
|
|
298
|
+
// for scrollup
|
|
299
|
+
hasMorePrev: false,
|
|
300
|
+
oldestMessageTimeStamp: 0,
|
|
301
|
+
// for scroll down
|
|
302
|
+
// onScrollDownCallback is added for navigation to different timestamps on messageSearch
|
|
303
|
+
// hasMorePrev, onScrollCallback -> scroll up(default behavior)
|
|
304
|
+
// hasMoreNext, onScrollDownCallback -> scroll down
|
|
305
|
+
hasMoreNext: false,
|
|
306
|
+
latestMessageTimeStamp: 0,
|
|
307
|
+
emojiContainer: {},
|
|
308
|
+
unreadSince: null,
|
|
309
|
+
isInvalid: false,
|
|
310
|
+
messageListParams: null
|
|
311
|
+
};
|
|
312
|
+
|
|
313
|
+
var PREV_RESULT_SIZE = 30;
|
|
314
|
+
var NEXT_RESULT_SIZE = 15;
|
|
315
|
+
|
|
316
|
+
var _getSendingMessageSta = index.getSendingMessageStatus(),
|
|
317
|
+
SUCCEEDED = _getSendingMessageSta.SUCCEEDED,
|
|
318
|
+
FAILED = _getSendingMessageSta.FAILED,
|
|
319
|
+
PENDING = _getSendingMessageSta.PENDING;
|
|
320
|
+
|
|
321
|
+
var getOldestMessageTimeStamp = function getOldestMessageTimeStamp() {
|
|
322
|
+
var messages = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
323
|
+
var oldestMessage = messages[0];
|
|
324
|
+
return oldestMessage && oldestMessage.createdAt || null;
|
|
325
|
+
};
|
|
326
|
+
|
|
327
|
+
var getLatestMessageTimeStamp = function getLatestMessageTimeStamp() {
|
|
328
|
+
var messages = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
329
|
+
var latestMessage = messages[messages.length - 1];
|
|
330
|
+
return latestMessage && latestMessage.createdAt || null;
|
|
331
|
+
};
|
|
332
|
+
|
|
333
|
+
function reducer(state, action) {
|
|
334
|
+
var _state$currentGroupCh6, _action$payload7, _action$payload7$chan;
|
|
335
|
+
|
|
336
|
+
switch (action.type) {
|
|
337
|
+
case RESET_MESSAGES:
|
|
338
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
339
|
+
// when user switches channel, if the previous channel `hasMorePrev`
|
|
340
|
+
// the onScroll gets called twice, setting hasMorePrev false prevents this
|
|
341
|
+
hasMorePrev: false,
|
|
342
|
+
hasMoreNext: false,
|
|
343
|
+
allMessages: []
|
|
344
|
+
});
|
|
345
|
+
|
|
346
|
+
case FETCH_INITIAL_MESSAGES_START:
|
|
347
|
+
{
|
|
348
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
349
|
+
loading: true,
|
|
350
|
+
allMessages: _rollupPluginBabelHelpers._toConsumableArray(state.allMessages.filter(function (m) {
|
|
351
|
+
return m.sendingStatus !== SUCCEEDED;
|
|
352
|
+
}))
|
|
353
|
+
});
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
case FETCH_INITIAL_MESSAGES_SUCCESS:
|
|
357
|
+
{
|
|
358
|
+
var _state$currentGroupCh;
|
|
359
|
+
|
|
360
|
+
var _action$payload = action.payload,
|
|
361
|
+
currentGroupChannel = _action$payload.currentGroupChannel,
|
|
362
|
+
messages = _action$payload.messages;
|
|
363
|
+
|
|
364
|
+
if (!((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) === ((_state$currentGroupCh = state.currentGroupChannel) === null || _state$currentGroupCh === void 0 ? void 0 : _state$currentGroupCh.url))) {
|
|
365
|
+
return state;
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
var oldestMessageTimeStamp = getOldestMessageTimeStamp(messages);
|
|
369
|
+
var latestMessageTimeStamp = getLatestMessageTimeStamp(messages);
|
|
370
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
371
|
+
loading: false,
|
|
372
|
+
initialized: true,
|
|
373
|
+
hasMorePrev: true,
|
|
374
|
+
hasMoreNext: true,
|
|
375
|
+
oldestMessageTimeStamp: oldestMessageTimeStamp,
|
|
376
|
+
latestMessageTimeStamp: latestMessageTimeStamp,
|
|
377
|
+
allMessages: _rollupPluginBabelHelpers._toConsumableArray(messages)
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
case FETCH_PREV_MESSAGES_SUCCESS:
|
|
382
|
+
{
|
|
383
|
+
var _state$currentGroupCh2;
|
|
384
|
+
|
|
385
|
+
var _action$payload2 = action.payload,
|
|
386
|
+
_currentGroupChannel = _action$payload2.currentGroupChannel,
|
|
387
|
+
_messages = _action$payload2.messages;
|
|
388
|
+
|
|
389
|
+
if (!((_currentGroupChannel === null || _currentGroupChannel === void 0 ? void 0 : _currentGroupChannel.url) === ((_state$currentGroupCh2 = state.currentGroupChannel) === null || _state$currentGroupCh2 === void 0 ? void 0 : _state$currentGroupCh2.url))) {
|
|
390
|
+
return state;
|
|
391
|
+
}
|
|
392
|
+
|
|
393
|
+
var hasMorePrev = _messages && _messages.length === PREV_RESULT_SIZE + 1;
|
|
394
|
+
|
|
395
|
+
var _oldestMessageTimeStamp = getOldestMessageTimeStamp(_messages); // Remove duplicated messages
|
|
396
|
+
|
|
397
|
+
|
|
398
|
+
var duplicatedMessageIds = [];
|
|
399
|
+
var updatedOldMessages = state.allMessages.map(function (msg) {
|
|
400
|
+
var duplicatedMessage = _messages.find(function (_ref) {
|
|
401
|
+
var messageId = _ref.messageId;
|
|
402
|
+
return compareIds.compareIds(messageId, msg.messageId);
|
|
403
|
+
});
|
|
404
|
+
|
|
405
|
+
if (!duplicatedMessage) {
|
|
406
|
+
return msg;
|
|
407
|
+
}
|
|
408
|
+
|
|
409
|
+
duplicatedMessageIds.push(duplicatedMessage.messageId);
|
|
410
|
+
return duplicatedMessage.updatedAt > msg.updatedAt ? duplicatedMessage : msg;
|
|
411
|
+
});
|
|
412
|
+
var filteredNewMessages = duplicatedMessageIds.length > 0 ? _messages.filter(function (msg) {
|
|
413
|
+
return !duplicatedMessageIds.find(function (messageId) {
|
|
414
|
+
return compareIds.compareIds(messageId, msg.messageId);
|
|
415
|
+
});
|
|
416
|
+
}) : _messages;
|
|
417
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
418
|
+
hasMorePrev: hasMorePrev,
|
|
419
|
+
oldestMessageTimeStamp: _oldestMessageTimeStamp,
|
|
420
|
+
allMessages: [].concat(_rollupPluginBabelHelpers._toConsumableArray(filteredNewMessages), _rollupPluginBabelHelpers._toConsumableArray(updatedOldMessages))
|
|
421
|
+
});
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
case FETCH_NEXT_MESSAGES_SUCCESS:
|
|
425
|
+
{
|
|
426
|
+
var _state$currentGroupCh3;
|
|
427
|
+
|
|
428
|
+
var _action$payload3 = action.payload,
|
|
429
|
+
_currentGroupChannel2 = _action$payload3.currentGroupChannel,
|
|
430
|
+
_messages2 = _action$payload3.messages;
|
|
431
|
+
|
|
432
|
+
if (!((_currentGroupChannel2 === null || _currentGroupChannel2 === void 0 ? void 0 : _currentGroupChannel2.url) === ((_state$currentGroupCh3 = state.currentGroupChannel) === null || _state$currentGroupCh3 === void 0 ? void 0 : _state$currentGroupCh3.url))) {
|
|
433
|
+
return state;
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
var hasMoreNext = _messages2 && _messages2.length === NEXT_RESULT_SIZE + 1;
|
|
437
|
+
|
|
438
|
+
var _latestMessageTimeStamp = getLatestMessageTimeStamp(_messages2); // Remove duplicated messages
|
|
439
|
+
|
|
440
|
+
|
|
441
|
+
var _duplicatedMessageIds = [];
|
|
442
|
+
|
|
443
|
+
var _updatedOldMessages = state.allMessages.map(function (msg) {
|
|
444
|
+
var duplicatedMessage = _messages2.find(function (_ref2) {
|
|
445
|
+
var messageId = _ref2.messageId;
|
|
446
|
+
return compareIds.compareIds(messageId, msg.messageId);
|
|
447
|
+
});
|
|
448
|
+
|
|
449
|
+
if (!duplicatedMessage) {
|
|
450
|
+
return msg;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
_duplicatedMessageIds.push(duplicatedMessage.messageId);
|
|
454
|
+
|
|
455
|
+
return duplicatedMessage.updatedAt > msg.updatedAt ? duplicatedMessage : msg;
|
|
456
|
+
});
|
|
457
|
+
|
|
458
|
+
var _filteredNewMessages = _duplicatedMessageIds.length > 0 ? _messages2.filter(function (msg) {
|
|
459
|
+
return !_duplicatedMessageIds.find(function (messageId) {
|
|
460
|
+
return compareIds.compareIds(messageId, msg.messageId);
|
|
461
|
+
});
|
|
462
|
+
}) : _messages2;
|
|
463
|
+
|
|
464
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
465
|
+
hasMoreNext: hasMoreNext,
|
|
466
|
+
latestMessageTimeStamp: _latestMessageTimeStamp,
|
|
467
|
+
allMessages: [].concat(_rollupPluginBabelHelpers._toConsumableArray(_updatedOldMessages), _rollupPluginBabelHelpers._toConsumableArray(_filteredNewMessages))
|
|
468
|
+
});
|
|
469
|
+
}
|
|
470
|
+
|
|
471
|
+
case FETCH_INITIAL_MESSAGES_FAILURE:
|
|
472
|
+
case FETCH_PREV_MESSAGES_FAILURE:
|
|
473
|
+
case FETCH_NEXT_MESSAGES_FAILURE:
|
|
474
|
+
{
|
|
475
|
+
var _state$currentGroupCh4;
|
|
476
|
+
|
|
477
|
+
var _currentGroupChannel3 = action.payload.currentGroupChannel;
|
|
478
|
+
|
|
479
|
+
if ((_currentGroupChannel3 === null || _currentGroupChannel3 === void 0 ? void 0 : _currentGroupChannel3.url) !== (state === null || state === void 0 ? void 0 : (_state$currentGroupCh4 = state.currentGroupChannel) === null || _state$currentGroupCh4 === void 0 ? void 0 : _state$currentGroupCh4.url)) {
|
|
480
|
+
return state;
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
484
|
+
loading: false,
|
|
485
|
+
initialized: false,
|
|
486
|
+
allMessages: [],
|
|
487
|
+
hasMorePrev: false,
|
|
488
|
+
hasMoreNext: false,
|
|
489
|
+
oldestMessageTimeStamp: null,
|
|
490
|
+
latestMessageTimeStamp: null
|
|
491
|
+
});
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
case SEND_MESSAGEGE_START:
|
|
495
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
496
|
+
allMessages: [].concat(_rollupPluginBabelHelpers._toConsumableArray(state.allMessages), [_rollupPluginBabelHelpers._objectSpread2({}, action.payload)])
|
|
497
|
+
});
|
|
498
|
+
|
|
499
|
+
case SEND_MESSAGEGE_SUCESS:
|
|
500
|
+
{
|
|
501
|
+
var newMessages = state.allMessages.map(function (m) {
|
|
502
|
+
return compareIds.compareIds(m.reqId, action.payload.reqId) ? action.payload : m;
|
|
503
|
+
});
|
|
504
|
+
|
|
505
|
+
_rollupPluginBabelHelpers._toConsumableArray(newMessages).sort(function (a, b) {
|
|
506
|
+
return a.sendingStatus && b.sendingStatus && a.sendingStatus === SUCCEEDED && (b.sendingStatus === PENDING || b.sendingStatus === FAILED) ? -1 : 1;
|
|
507
|
+
});
|
|
508
|
+
|
|
509
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
510
|
+
allMessages: newMessages
|
|
511
|
+
});
|
|
512
|
+
}
|
|
513
|
+
|
|
514
|
+
case SEND_MESSAGEGE_FAILURE:
|
|
515
|
+
{
|
|
516
|
+
// eslint-disable-next-line no-param-reassign
|
|
517
|
+
action.payload.failed = true;
|
|
518
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
519
|
+
allMessages: state.allMessages.map(function (m) {
|
|
520
|
+
return compareIds.compareIds(m.reqId, action.payload.reqId) ? action.payload : m;
|
|
521
|
+
})
|
|
522
|
+
});
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
case SET_CURRENT_CHANNEL:
|
|
526
|
+
{
|
|
527
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
528
|
+
currentGroupChannel: action.payload,
|
|
529
|
+
isInvalid: false
|
|
530
|
+
});
|
|
531
|
+
}
|
|
532
|
+
|
|
533
|
+
case SET_CHANNEL_INVALID:
|
|
534
|
+
{
|
|
535
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
536
|
+
isInvalid: true
|
|
537
|
+
});
|
|
538
|
+
}
|
|
539
|
+
|
|
540
|
+
case ON_MESSAGE_RECEIVED:
|
|
541
|
+
{
|
|
542
|
+
var _action$payload4 = action.payload,
|
|
543
|
+
channel = _action$payload4.channel,
|
|
544
|
+
message = _action$payload4.message;
|
|
545
|
+
var members = channel.members;
|
|
546
|
+
var sender = message.sender;
|
|
547
|
+
|
|
548
|
+
var _state$currentGroupCh5 = state.currentGroupChannel,
|
|
549
|
+
_currentGroupChannel4 = _state$currentGroupCh5 === void 0 ? {} : _state$currentGroupCh5,
|
|
550
|
+
unreadSince = state.unreadSince;
|
|
551
|
+
|
|
552
|
+
var currentGroupChannelUrl = _currentGroupChannel4.url;
|
|
553
|
+
|
|
554
|
+
if (!compareIds.compareIds(channel.url, currentGroupChannelUrl)) {
|
|
555
|
+
return state;
|
|
556
|
+
} // Excluded overlapping messages
|
|
557
|
+
|
|
558
|
+
|
|
559
|
+
if (state.allMessages.some(function (msg) {
|
|
560
|
+
return msg.messageId === message.messageId;
|
|
561
|
+
})) {
|
|
562
|
+
return state;
|
|
563
|
+
} // Filter by userFilledQuery
|
|
564
|
+
|
|
565
|
+
|
|
566
|
+
if (state.messageListParams && !index.filterMessageListParams(state.messageListParams, message)) {
|
|
567
|
+
return state;
|
|
568
|
+
}
|
|
569
|
+
|
|
570
|
+
if (message.isAdminMessage && message.isAdminMessage()) {
|
|
571
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
572
|
+
allMessages: passUnsuccessfullMessages(state.allMessages, message)
|
|
573
|
+
});
|
|
574
|
+
} // Update members when sender profileUrl, nickname, friendName has been changed
|
|
575
|
+
|
|
576
|
+
|
|
577
|
+
var senderMember = members === null || members === void 0 ? void 0 : members.find(function (m) {
|
|
578
|
+
return (m === null || m === void 0 ? void 0 : m.userId) === (sender === null || sender === void 0 ? void 0 : sender.userId);
|
|
579
|
+
});
|
|
580
|
+
|
|
581
|
+
if ((senderMember === null || senderMember === void 0 ? void 0 : senderMember.profileUrl) !== (sender === null || sender === void 0 ? void 0 : sender.profileUrl) || (senderMember === null || senderMember === void 0 ? void 0 : senderMember.friendName) !== (sender === null || sender === void 0 ? void 0 : sender.friendName) || (senderMember === null || senderMember === void 0 ? void 0 : senderMember.nickname) !== (sender === null || sender === void 0 ? void 0 : sender.nickname)) {
|
|
582
|
+
channel.members = members.map(function (member) {
|
|
583
|
+
if (member.userId === sender.userId) {
|
|
584
|
+
return sender;
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
return member;
|
|
588
|
+
});
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
592
|
+
currentGroupChannel: channel,
|
|
593
|
+
unreadSince: state !== null && state !== void 0 && state.unreadSince ? unreadSince : index$1.format(new Date(), 'p MMM dd'),
|
|
594
|
+
allMessages: passUnsuccessfullMessages(state.allMessages, message)
|
|
595
|
+
});
|
|
596
|
+
}
|
|
597
|
+
|
|
598
|
+
case ON_MESSAGE_UPDATED:
|
|
599
|
+
{
|
|
600
|
+
var _action$payload5 = action.payload,
|
|
601
|
+
_channel = _action$payload5.channel,
|
|
602
|
+
_message = _action$payload5.message;
|
|
603
|
+
|
|
604
|
+
var _currentGroupChannelUrl = state.currentGroupChannel && state.currentGroupChannel.url || '';
|
|
605
|
+
|
|
606
|
+
if (!compareIds.compareIds(_channel.url, _currentGroupChannelUrl)) {
|
|
607
|
+
return state; // Ignore event when it is not for the current channel
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
if (state.messageListParams && !index.filterMessageListParams(state.messageListParams, _message)) {
|
|
611
|
+
// Delete the message if it doesn't match to the params anymore
|
|
612
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
613
|
+
allMessages: state.allMessages.filter(function (m) {
|
|
614
|
+
return !compareIds.compareIds(m.messageId, _message === null || _message === void 0 ? void 0 : _message.messageId);
|
|
615
|
+
})
|
|
616
|
+
});
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
620
|
+
allMessages: state.allMessages.map(function (m) {
|
|
621
|
+
return compareIds.compareIds(m.messageId, action.payload.message.messageId) ? action.payload.message : m;
|
|
622
|
+
})
|
|
623
|
+
});
|
|
624
|
+
}
|
|
625
|
+
|
|
626
|
+
case ON_MESSAGE_THREAD_INFO_UPDATED:
|
|
627
|
+
{
|
|
628
|
+
var _action$payload6 = action.payload,
|
|
629
|
+
_channel2 = _action$payload6.channel,
|
|
630
|
+
event = _action$payload6.event;
|
|
631
|
+
var channelUrl = event.channelUrl,
|
|
632
|
+
threadInfo = event.threadInfo,
|
|
633
|
+
targetMessageId = event.targetMessageId;
|
|
634
|
+
|
|
635
|
+
var _currentGroupChannelUrl2 = state.currentGroupChannel && state.currentGroupChannel.url || '';
|
|
636
|
+
|
|
637
|
+
if (!compareIds.compareIds(_channel2.url, _currentGroupChannelUrl2) || !compareIds.compareIds(_channel2.url, channelUrl)) {
|
|
638
|
+
return state; // Ignore event when it is not for the current channel
|
|
639
|
+
}
|
|
640
|
+
|
|
641
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
642
|
+
allMessages: state.allMessages.map(function (m) {
|
|
643
|
+
if (compareIds.compareIds(m.messageId, targetMessageId)) {
|
|
644
|
+
// eslint-disable-next-line no-param-reassign
|
|
645
|
+
m.threadInfo = threadInfo; // Upsert threadInfo to the target message
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
return m;
|
|
649
|
+
})
|
|
650
|
+
});
|
|
651
|
+
}
|
|
652
|
+
|
|
653
|
+
case RESEND_MESSAGEGE_START:
|
|
654
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
655
|
+
allMessages: state.allMessages.map(function (m) {
|
|
656
|
+
return compareIds.compareIds(m.reqId, action.payload.reqId) ? action.payload : m;
|
|
657
|
+
})
|
|
658
|
+
});
|
|
659
|
+
|
|
660
|
+
case MARK_AS_READ:
|
|
661
|
+
if (((_state$currentGroupCh6 = state.currentGroupChannel) === null || _state$currentGroupCh6 === void 0 ? void 0 : _state$currentGroupCh6.url) !== ((_action$payload7 = action.payload) === null || _action$payload7 === void 0 ? void 0 : (_action$payload7$chan = _action$payload7.channel) === null || _action$payload7$chan === void 0 ? void 0 : _action$payload7$chan.url)) {
|
|
662
|
+
return state;
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
666
|
+
unreadSince: null
|
|
667
|
+
});
|
|
668
|
+
|
|
669
|
+
case ON_MESSAGE_DELETED:
|
|
670
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
671
|
+
allMessages: state.allMessages.filter(function (m) {
|
|
672
|
+
return !compareIds.compareIds(m.messageId, action.payload);
|
|
673
|
+
})
|
|
674
|
+
});
|
|
675
|
+
|
|
676
|
+
case ON_MESSAGE_DELETED_BY_REQ_ID:
|
|
677
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
678
|
+
allMessages: state.allMessages.filter(function (m) {
|
|
679
|
+
return !compareIds.compareIds(m.reqId, action.payload);
|
|
680
|
+
})
|
|
681
|
+
});
|
|
682
|
+
|
|
683
|
+
case SET_EMOJI_CONTAINER:
|
|
684
|
+
{
|
|
685
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
686
|
+
emojiContainer: action.payload
|
|
687
|
+
});
|
|
688
|
+
}
|
|
689
|
+
|
|
690
|
+
case ON_REACTION_UPDATED:
|
|
691
|
+
{
|
|
692
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
693
|
+
allMessages: state.allMessages.map(function (m) {
|
|
694
|
+
if (compareIds.compareIds(m.messageId, action.payload.messageId)) {
|
|
695
|
+
if (m.applyReactionEvent && typeof m.applyReactionEvent === 'function') {
|
|
696
|
+
m.applyReactionEvent(action.payload);
|
|
697
|
+
}
|
|
698
|
+
|
|
699
|
+
return m;
|
|
700
|
+
}
|
|
701
|
+
|
|
702
|
+
return m;
|
|
703
|
+
})
|
|
704
|
+
});
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
case MESSAGE_LIST_PARAMS_CHANGED:
|
|
708
|
+
{
|
|
709
|
+
return _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, state), {}, {
|
|
710
|
+
messageListParams: action.payload
|
|
711
|
+
});
|
|
712
|
+
}
|
|
713
|
+
|
|
714
|
+
default:
|
|
715
|
+
return state;
|
|
716
|
+
}
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
/**
|
|
720
|
+
* Handles ChannelEvents and send values to dispatcher using messagesDispatcher
|
|
721
|
+
* messagesDispatcher: Dispatcher
|
|
722
|
+
* sdk: sdkInstance
|
|
723
|
+
* logger: loggerInstance
|
|
724
|
+
* channelUrl: string
|
|
725
|
+
* sdkInit: bool
|
|
726
|
+
*/
|
|
727
|
+
|
|
728
|
+
function useHandleChannelEvents(_ref, _ref2) {
|
|
729
|
+
var currentGroupChannel = _ref.currentGroupChannel,
|
|
730
|
+
sdkInit = _ref.sdkInit,
|
|
731
|
+
hasMoreNext = _ref.hasMoreNext;
|
|
732
|
+
var messagesDispatcher = _ref2.messagesDispatcher,
|
|
733
|
+
sdk = _ref2.sdk,
|
|
734
|
+
logger = _ref2.logger,
|
|
735
|
+
scrollRef = _ref2.scrollRef,
|
|
736
|
+
setQuoteMessage = _ref2.setQuoteMessage;
|
|
737
|
+
React.useEffect(function () {
|
|
738
|
+
var channelUrl = currentGroupChannel && (currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url);
|
|
739
|
+
var messageReceiverId = uuid.uuidv4();
|
|
740
|
+
|
|
741
|
+
if (channelUrl && sdk && sdk.ChannelHandler) {
|
|
742
|
+
var ChannelHandler = new sdk.ChannelHandler();
|
|
743
|
+
logger.info('Channel | useHandleChannelEvents: Setup event handler', messageReceiverId);
|
|
744
|
+
|
|
745
|
+
ChannelHandler.onMessageReceived = function (channel, message) {
|
|
746
|
+
// Do not update when hasMoreNext
|
|
747
|
+
if (compareIds.compareIds(channel.url, channelUrl) && !hasMoreNext) {
|
|
748
|
+
var scrollToEnd = false;
|
|
749
|
+
|
|
750
|
+
try {
|
|
751
|
+
var current = scrollRef.current;
|
|
752
|
+
scrollToEnd = current.offsetHeight + current.scrollTop >= current.scrollHeight;
|
|
753
|
+
} catch (error) {//
|
|
754
|
+
}
|
|
755
|
+
|
|
756
|
+
logger.info('Channel | useHandleChannelEvents: onMessageReceived', message);
|
|
757
|
+
messagesDispatcher({
|
|
758
|
+
type: ON_MESSAGE_RECEIVED,
|
|
759
|
+
payload: {
|
|
760
|
+
channel: channel,
|
|
761
|
+
message: message
|
|
762
|
+
}
|
|
763
|
+
});
|
|
764
|
+
|
|
765
|
+
if (scrollToEnd) {
|
|
766
|
+
try {
|
|
767
|
+
setTimeout(function () {
|
|
768
|
+
currentGroupChannel.markAsRead();
|
|
769
|
+
scrollIntoLast();
|
|
770
|
+
});
|
|
771
|
+
} catch (error) {
|
|
772
|
+
logger.warning('Channel | onMessageReceived | scroll to end failed');
|
|
773
|
+
}
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
};
|
|
777
|
+
/**
|
|
778
|
+
* We need to update current channel with the channel,
|
|
779
|
+
* when onReadReceiptUpdated or onDeliveryReceiptUpdated are called,
|
|
780
|
+
* because cachedReadReceiptStatus and cachedDeliveryReceiptStatus properties were changed
|
|
781
|
+
*/
|
|
782
|
+
|
|
783
|
+
|
|
784
|
+
ChannelHandler.onReadReceiptUpdated = function (channel) {
|
|
785
|
+
if (compareIds.compareIds(channel.url, channelUrl)) {
|
|
786
|
+
logger.info('Channel | useHandleChannelEvents: onReadReceiptUpdated', channel);
|
|
787
|
+
messagesDispatcher({
|
|
788
|
+
type: SET_CURRENT_CHANNEL,
|
|
789
|
+
payload: channel
|
|
790
|
+
});
|
|
791
|
+
}
|
|
792
|
+
};
|
|
793
|
+
|
|
794
|
+
ChannelHandler.onDeliveryReceiptUpdated = function (channel) {
|
|
795
|
+
if (compareIds.compareIds(channel.url, channelUrl)) {
|
|
796
|
+
logger.info('Channel | useHandleChannelEvents: onDeliveryReceiptUpdated', channel);
|
|
797
|
+
messagesDispatcher({
|
|
798
|
+
type: SET_CURRENT_CHANNEL,
|
|
799
|
+
payload: channel
|
|
800
|
+
});
|
|
801
|
+
}
|
|
802
|
+
};
|
|
803
|
+
|
|
804
|
+
ChannelHandler.onMessageUpdated = function (channel, message) {
|
|
805
|
+
logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message);
|
|
806
|
+
messagesDispatcher({
|
|
807
|
+
type: ON_MESSAGE_UPDATED,
|
|
808
|
+
payload: {
|
|
809
|
+
channel: channel,
|
|
810
|
+
message: message
|
|
811
|
+
}
|
|
812
|
+
});
|
|
813
|
+
};
|
|
814
|
+
|
|
815
|
+
ChannelHandler.onThreadInfoUpdated = function (channel, event) {
|
|
816
|
+
logger.info('Channel | useHandleChannelEvents: onThreadInfoUpdated', event);
|
|
817
|
+
messagesDispatcher({
|
|
818
|
+
type: ON_MESSAGE_THREAD_INFO_UPDATED,
|
|
819
|
+
payload: {
|
|
820
|
+
channel: channel,
|
|
821
|
+
event: event
|
|
822
|
+
}
|
|
823
|
+
});
|
|
824
|
+
};
|
|
825
|
+
|
|
826
|
+
ChannelHandler.onMessageDeleted = function (_, messageId) {
|
|
827
|
+
logger.info('Channel | useHandleChannelEvents: onMessageDeleted', messageId);
|
|
828
|
+
setQuoteMessage(null);
|
|
829
|
+
messagesDispatcher({
|
|
830
|
+
type: ON_MESSAGE_DELETED,
|
|
831
|
+
payload: messageId
|
|
832
|
+
});
|
|
833
|
+
};
|
|
834
|
+
|
|
835
|
+
ChannelHandler.onReactionUpdated = function (_, reactionEvent) {
|
|
836
|
+
logger.info('Channel | useHandleChannelEvents: onReactionUpdated', reactionEvent);
|
|
837
|
+
messagesDispatcher({
|
|
838
|
+
type: ON_REACTION_UPDATED,
|
|
839
|
+
payload: reactionEvent
|
|
840
|
+
});
|
|
841
|
+
};
|
|
842
|
+
|
|
843
|
+
ChannelHandler.onChannelChanged = function (groupChannel) {
|
|
844
|
+
if (compareIds.compareIds(groupChannel.url, channelUrl)) {
|
|
845
|
+
logger.info('Channel | useHandleChannelEvents: onChannelChanged', groupChannel);
|
|
846
|
+
messagesDispatcher({
|
|
847
|
+
type: SET_CURRENT_CHANNEL,
|
|
848
|
+
payload: groupChannel
|
|
849
|
+
});
|
|
850
|
+
}
|
|
851
|
+
};
|
|
852
|
+
|
|
853
|
+
ChannelHandler.onChannelFrozen = function (groupChannel) {
|
|
854
|
+
if (compareIds.compareIds(groupChannel.url, channelUrl)) {
|
|
855
|
+
logger.info('Channel | useHandleChannelEvents: onChannelFrozen', groupChannel);
|
|
856
|
+
messagesDispatcher({
|
|
857
|
+
type: SET_CURRENT_CHANNEL,
|
|
858
|
+
payload: groupChannel
|
|
859
|
+
});
|
|
860
|
+
}
|
|
861
|
+
};
|
|
862
|
+
|
|
863
|
+
ChannelHandler.onChannelUnfrozen = function (groupChannel) {
|
|
864
|
+
if (compareIds.compareIds(groupChannel.url, channelUrl)) {
|
|
865
|
+
logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', groupChannel);
|
|
866
|
+
messagesDispatcher({
|
|
867
|
+
type: SET_CURRENT_CHANNEL,
|
|
868
|
+
payload: groupChannel
|
|
869
|
+
});
|
|
870
|
+
}
|
|
871
|
+
};
|
|
872
|
+
|
|
873
|
+
ChannelHandler.onUserMuted = function (groupChannel) {
|
|
874
|
+
if (compareIds.compareIds(groupChannel.url, channelUrl)) {
|
|
875
|
+
logger.info('Channel | useHandleChannelEvents: onUserMuted', groupChannel);
|
|
876
|
+
messagesDispatcher({
|
|
877
|
+
type: SET_CURRENT_CHANNEL,
|
|
878
|
+
payload: groupChannel
|
|
879
|
+
});
|
|
880
|
+
}
|
|
881
|
+
};
|
|
882
|
+
|
|
883
|
+
ChannelHandler.onUserUnmuted = function (groupChannel) {
|
|
884
|
+
if (compareIds.compareIds(groupChannel.url, channelUrl)) {
|
|
885
|
+
logger.info('Channel | useHandleChannelEvents: onUserUnmuted', groupChannel);
|
|
886
|
+
messagesDispatcher({
|
|
887
|
+
type: SET_CURRENT_CHANNEL,
|
|
888
|
+
payload: groupChannel
|
|
889
|
+
});
|
|
890
|
+
}
|
|
891
|
+
};
|
|
892
|
+
|
|
893
|
+
ChannelHandler.onUserBanned = function (groupChannel) {
|
|
894
|
+
if (compareIds.compareIds(groupChannel.url, channelUrl)) {
|
|
895
|
+
logger.info('Channel | useHandleChannelEvents: onUserBanned', groupChannel);
|
|
896
|
+
messagesDispatcher({
|
|
897
|
+
type: SET_CURRENT_CHANNEL,
|
|
898
|
+
payload: groupChannel
|
|
899
|
+
});
|
|
900
|
+
}
|
|
901
|
+
};
|
|
902
|
+
|
|
903
|
+
ChannelHandler.onOperatorUpdated = function (groupChannel) {
|
|
904
|
+
if (compareIds.compareIds(groupChannel.url, channelUrl)) {
|
|
905
|
+
logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', groupChannel);
|
|
906
|
+
messagesDispatcher({
|
|
907
|
+
type: SET_CURRENT_CHANNEL,
|
|
908
|
+
payload: groupChannel
|
|
909
|
+
});
|
|
910
|
+
}
|
|
911
|
+
}; // Add this channel event handler to the SendBird object.
|
|
912
|
+
|
|
913
|
+
|
|
914
|
+
sdk.addChannelHandler(messageReceiverId, ChannelHandler);
|
|
915
|
+
}
|
|
916
|
+
|
|
917
|
+
return function () {
|
|
918
|
+
if (sdk && sdk.removeChannelHandler) {
|
|
919
|
+
logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', messageReceiverId);
|
|
920
|
+
sdk.removeChannelHandler(messageReceiverId);
|
|
921
|
+
}
|
|
922
|
+
};
|
|
923
|
+
}, [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url, sdkInit]);
|
|
924
|
+
}
|
|
925
|
+
|
|
926
|
+
function useSetChannel(_ref, _ref2) {
|
|
927
|
+
var channelUrl = _ref.channelUrl,
|
|
928
|
+
sdkInit = _ref.sdkInit;
|
|
929
|
+
var messagesDispatcher = _ref2.messagesDispatcher,
|
|
930
|
+
sdk = _ref2.sdk,
|
|
931
|
+
logger = _ref2.logger;
|
|
932
|
+
React.useEffect(function () {
|
|
933
|
+
if (channelUrl && sdkInit && sdk && sdk.GroupChannel) {
|
|
934
|
+
logger.info('Channel | useSetChannel fetching channel', channelUrl);
|
|
935
|
+
sdk.GroupChannel.getChannel(channelUrl).then(function (groupChannel) {
|
|
936
|
+
logger.info('Channel | useSetChannel fetched channel', groupChannel);
|
|
937
|
+
messagesDispatcher({
|
|
938
|
+
type: SET_CURRENT_CHANNEL,
|
|
939
|
+
payload: groupChannel
|
|
940
|
+
});
|
|
941
|
+
logger.info('Channel: Mark as read', groupChannel); // this order is important - this mark as read should update the event handler up above
|
|
942
|
+
|
|
943
|
+
groupChannel.markAsRead();
|
|
944
|
+
}).catch(function (e) {
|
|
945
|
+
logger.warning('Channel | useSetChannel fetch channel failed', {
|
|
946
|
+
channelUrl: channelUrl,
|
|
947
|
+
e: e
|
|
948
|
+
});
|
|
949
|
+
messagesDispatcher({
|
|
950
|
+
type: SET_CHANNEL_INVALID
|
|
951
|
+
});
|
|
952
|
+
});
|
|
953
|
+
sdk.getAllEmoji(function (emojiContainer_, err) {
|
|
954
|
+
if (err) {
|
|
955
|
+
logger.error('Channel: Getting emojis failed', err);
|
|
956
|
+
return;
|
|
957
|
+
}
|
|
958
|
+
|
|
959
|
+
logger.info('Channel: Getting emojis success', emojiContainer_);
|
|
960
|
+
messagesDispatcher({
|
|
961
|
+
type: SET_EMOJI_CONTAINER,
|
|
962
|
+
payload: emojiContainer_
|
|
963
|
+
});
|
|
964
|
+
});
|
|
965
|
+
}
|
|
966
|
+
}, [channelUrl, sdkInit]);
|
|
967
|
+
}
|
|
968
|
+
|
|
969
|
+
function useInitialMessagesFetch(_ref, _ref2) {
|
|
970
|
+
var currentGroupChannel = _ref.currentGroupChannel,
|
|
971
|
+
userFilledMessageListQuery = _ref.userFilledMessageListQuery,
|
|
972
|
+
initialTimeStamp = _ref.initialTimeStamp,
|
|
973
|
+
replyType = _ref.replyType;
|
|
974
|
+
var sdk = _ref2.sdk,
|
|
975
|
+
logger = _ref2.logger,
|
|
976
|
+
messagesDispatcher = _ref2.messagesDispatcher;
|
|
977
|
+
var channelUrl = currentGroupChannel && currentGroupChannel.url;
|
|
978
|
+
React.useEffect(function () {
|
|
979
|
+
logger.info('Channel useInitialMessagesFetch: Setup started', currentGroupChannel);
|
|
980
|
+
messagesDispatcher({
|
|
981
|
+
type: RESET_MESSAGES,
|
|
982
|
+
payload: null
|
|
983
|
+
});
|
|
984
|
+
|
|
985
|
+
if (sdk && sdk.MessageListParams && currentGroupChannel && currentGroupChannel.getMessagesByTimestamp) {
|
|
986
|
+
var messageListParams = new sdk.MessageListParams();
|
|
987
|
+
messageListParams.prevResultSize = PREV_RESULT_SIZE;
|
|
988
|
+
|
|
989
|
+
if (initialTimeStamp) {
|
|
990
|
+
messageListParams.nextResultSize = NEXT_RESULT_SIZE;
|
|
991
|
+
}
|
|
992
|
+
|
|
993
|
+
messageListParams.isInclusive = true;
|
|
994
|
+
messageListParams.includeReplies = false;
|
|
995
|
+
messageListParams.includeReaction = true;
|
|
996
|
+
|
|
997
|
+
if (replyType && replyType === 'QUOTE_REPLY') {
|
|
998
|
+
messageListParams.includeThreadInfo = true;
|
|
999
|
+
messageListParams.includeParentMessageInfo = true;
|
|
1000
|
+
messageListParams.replyType = 'only_reply_to_channel';
|
|
1001
|
+
}
|
|
1002
|
+
|
|
1003
|
+
if (userFilledMessageListQuery) {
|
|
1004
|
+
Object.keys(userFilledMessageListQuery).forEach(function (key) {
|
|
1005
|
+
messageListParams[key] = userFilledMessageListQuery[key];
|
|
1006
|
+
});
|
|
1007
|
+
}
|
|
1008
|
+
|
|
1009
|
+
if (replyType && replyType === 'QUOTE_REPLY' || userFilledMessageListQuery) {
|
|
1010
|
+
logger.info('Channel useInitialMessagesFetch: Setup messageListParams', messageListParams);
|
|
1011
|
+
messagesDispatcher({
|
|
1012
|
+
type: MESSAGE_LIST_PARAMS_CHANGED,
|
|
1013
|
+
payload: messageListParams
|
|
1014
|
+
});
|
|
1015
|
+
}
|
|
1016
|
+
|
|
1017
|
+
logger.info('Channel: Fetching messages', {
|
|
1018
|
+
currentGroupChannel: currentGroupChannel,
|
|
1019
|
+
userFilledMessageListQuery: userFilledMessageListQuery
|
|
1020
|
+
});
|
|
1021
|
+
messagesDispatcher({
|
|
1022
|
+
type: FETCH_INITIAL_MESSAGES_START,
|
|
1023
|
+
payload: null
|
|
1024
|
+
});
|
|
1025
|
+
currentGroupChannel.getMessagesByTimestamp(initialTimeStamp || new Date().getTime(), messageListParams).then(function (messages) {
|
|
1026
|
+
messagesDispatcher({
|
|
1027
|
+
type: FETCH_INITIAL_MESSAGES_SUCCESS,
|
|
1028
|
+
payload: {
|
|
1029
|
+
currentGroupChannel: currentGroupChannel,
|
|
1030
|
+
messages: messages
|
|
1031
|
+
}
|
|
1032
|
+
});
|
|
1033
|
+
}).catch(function (error) {
|
|
1034
|
+
logger.error('Channel: Fetching messages failed', error);
|
|
1035
|
+
messagesDispatcher({
|
|
1036
|
+
type: FETCH_INITIAL_MESSAGES_FAILURE,
|
|
1037
|
+
payload: {
|
|
1038
|
+
currentGroupChannel: currentGroupChannel
|
|
1039
|
+
}
|
|
1040
|
+
});
|
|
1041
|
+
}).finally(function () {
|
|
1042
|
+
if (!initialTimeStamp) {
|
|
1043
|
+
setTimeout(function () {
|
|
1044
|
+
return scrollIntoLast();
|
|
1045
|
+
});
|
|
1046
|
+
}
|
|
1047
|
+
});
|
|
1048
|
+
}
|
|
1049
|
+
}, [channelUrl, userFilledMessageListQuery, initialTimeStamp]);
|
|
1050
|
+
/**
|
|
1051
|
+
* Note - useEffect(() => {}, [currentGroupChannel])
|
|
1052
|
+
* was buggy, that is why we did
|
|
1053
|
+
* const channelUrl = currentGroupChannel && currentGroupChannel.url;
|
|
1054
|
+
* useEffect(() => {}, [channelUrl])
|
|
1055
|
+
* Again, this hook is supposed to execute when currentGroupChannel changes
|
|
1056
|
+
* The 'channelUrl' here is not the same memory reference from Conversation.props
|
|
1057
|
+
*/
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1060
|
+
function useHandleReconnect(_a, _b) {
|
|
1061
|
+
var isOnline = _a.isOnline,
|
|
1062
|
+
replyType = _a.replyType;
|
|
1063
|
+
var logger = _b.logger,
|
|
1064
|
+
sdk = _b.sdk,
|
|
1065
|
+
currentGroupChannel = _b.currentGroupChannel,
|
|
1066
|
+
messagesDispatcher = _b.messagesDispatcher,
|
|
1067
|
+
userFilledMessageListQuery = _b.userFilledMessageListQuery;
|
|
1068
|
+
React.useEffect(function () {
|
|
1069
|
+
var wasOffline = !isOnline;
|
|
1070
|
+
return function () {
|
|
1071
|
+
var _a; // state changed from offline to online
|
|
1072
|
+
|
|
1073
|
+
|
|
1074
|
+
if (wasOffline && (currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url)) {
|
|
1075
|
+
logger.info('Refreshing conversation state');
|
|
1076
|
+
var useReaction = ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.appInfo) === null || _a === void 0 ? void 0 : _a.isUsingReaction) || false;
|
|
1077
|
+
var messageListParams_1 = new sdk.MessageListParams();
|
|
1078
|
+
messageListParams_1.prevResultSize = PREV_RESULT_SIZE;
|
|
1079
|
+
messageListParams_1.isInclusive = true;
|
|
1080
|
+
messageListParams_1.includeReplies = false;
|
|
1081
|
+
messageListParams_1.includeReaction = useReaction;
|
|
1082
|
+
|
|
1083
|
+
if (replyType && replyType === 'QUOTE_REPLY') {
|
|
1084
|
+
messageListParams_1.includeThreadInfo = true;
|
|
1085
|
+
messageListParams_1.includeParentMessageInfo = true;
|
|
1086
|
+
messageListParams_1.replyType = 'only_reply_to_channel';
|
|
1087
|
+
}
|
|
1088
|
+
|
|
1089
|
+
if (userFilledMessageListQuery) {
|
|
1090
|
+
Object.keys(userFilledMessageListQuery).forEach(function (key) {
|
|
1091
|
+
messageListParams_1[key] = userFilledMessageListQuery[key];
|
|
1092
|
+
});
|
|
1093
|
+
}
|
|
1094
|
+
|
|
1095
|
+
logger.info('Channel: Fetching messages', {
|
|
1096
|
+
currentGroupChannel: currentGroupChannel,
|
|
1097
|
+
userFilledMessageListQuery: userFilledMessageListQuery
|
|
1098
|
+
});
|
|
1099
|
+
messagesDispatcher({
|
|
1100
|
+
type: FETCH_INITIAL_MESSAGES_START,
|
|
1101
|
+
payload: null
|
|
1102
|
+
});
|
|
1103
|
+
sdk.GroupChannel.getChannel(currentGroupChannel.url).then(function (groupChannel) {
|
|
1104
|
+
var lastMessageTime = new Date().getTime();
|
|
1105
|
+
groupChannel.getMessagesByTimestamp(lastMessageTime, messageListParams_1).then(function (messages) {
|
|
1106
|
+
messagesDispatcher({
|
|
1107
|
+
type: FETCH_INITIAL_MESSAGES_SUCCESS,
|
|
1108
|
+
payload: {
|
|
1109
|
+
currentGroupChannel: currentGroupChannel,
|
|
1110
|
+
messages: messages
|
|
1111
|
+
}
|
|
1112
|
+
});
|
|
1113
|
+
setTimeout(function () {
|
|
1114
|
+
return scrollIntoLast();
|
|
1115
|
+
});
|
|
1116
|
+
}).catch(function (error) {
|
|
1117
|
+
logger.error('Channel: Fetching messages failed', error);
|
|
1118
|
+
messagesDispatcher({
|
|
1119
|
+
type: FETCH_INITIAL_MESSAGES_FAILURE,
|
|
1120
|
+
payload: {
|
|
1121
|
+
currentGroupChannel: currentGroupChannel
|
|
1122
|
+
}
|
|
1123
|
+
});
|
|
1124
|
+
}).finally(function () {
|
|
1125
|
+
var _a;
|
|
1126
|
+
|
|
1127
|
+
(_a = currentGroupChannel.markAsRead) === null || _a === void 0 ? void 0 : _a.call(currentGroupChannel);
|
|
1128
|
+
});
|
|
1129
|
+
});
|
|
1130
|
+
}
|
|
1131
|
+
};
|
|
1132
|
+
}, [isOnline, replyType]);
|
|
1133
|
+
}
|
|
1134
|
+
|
|
1135
|
+
function useScrollCallback(_ref, _ref2) {
|
|
1136
|
+
var currentGroupChannel = _ref.currentGroupChannel,
|
|
1137
|
+
oldestMessageTimeStamp = _ref.oldestMessageTimeStamp,
|
|
1138
|
+
userFilledMessageListQuery = _ref.userFilledMessageListQuery,
|
|
1139
|
+
replyType = _ref.replyType;
|
|
1140
|
+
var hasMorePrev = _ref2.hasMorePrev,
|
|
1141
|
+
logger = _ref2.logger,
|
|
1142
|
+
messagesDispatcher = _ref2.messagesDispatcher,
|
|
1143
|
+
sdk = _ref2.sdk;
|
|
1144
|
+
return React.useCallback(function (cb) {
|
|
1145
|
+
if (!hasMorePrev) {
|
|
1146
|
+
return;
|
|
1147
|
+
}
|
|
1148
|
+
|
|
1149
|
+
var _sdk$appInfo = sdk.appInfo,
|
|
1150
|
+
appInfo = _sdk$appInfo === void 0 ? {} : _sdk$appInfo;
|
|
1151
|
+
var useReaction = appInfo.isUsingReaction || false;
|
|
1152
|
+
var messageListParams = new sdk.MessageListParams();
|
|
1153
|
+
messageListParams.prevResultSize = PREV_RESULT_SIZE;
|
|
1154
|
+
messageListParams.isInclusive = true;
|
|
1155
|
+
messageListParams.includeReplies = false;
|
|
1156
|
+
messageListParams.includeReaction = useReaction;
|
|
1157
|
+
|
|
1158
|
+
if (replyType && replyType === 'QUOTE_REPLY') {
|
|
1159
|
+
messageListParams.includeThreadInfo = true;
|
|
1160
|
+
messageListParams.includeParentMessageInfo = true;
|
|
1161
|
+
messageListParams.replyType = 'only_reply_to_channel';
|
|
1162
|
+
}
|
|
1163
|
+
|
|
1164
|
+
if (userFilledMessageListQuery) {
|
|
1165
|
+
Object.keys(userFilledMessageListQuery).forEach(function (key) {
|
|
1166
|
+
messageListParams[key] = userFilledMessageListQuery[key];
|
|
1167
|
+
});
|
|
1168
|
+
}
|
|
1169
|
+
|
|
1170
|
+
logger.info('Channel: Fetching messages', {
|
|
1171
|
+
currentGroupChannel: currentGroupChannel,
|
|
1172
|
+
userFilledMessageListQuery: userFilledMessageListQuery
|
|
1173
|
+
});
|
|
1174
|
+
currentGroupChannel.getMessagesByTimestamp(oldestMessageTimeStamp || new Date().getTime(), messageListParams).then(function (messages) {
|
|
1175
|
+
messagesDispatcher({
|
|
1176
|
+
type: FETCH_PREV_MESSAGES_SUCCESS,
|
|
1177
|
+
payload: {
|
|
1178
|
+
currentGroupChannel: currentGroupChannel,
|
|
1179
|
+
messages: messages
|
|
1180
|
+
}
|
|
1181
|
+
});
|
|
1182
|
+
cb([messages, null]);
|
|
1183
|
+
}).catch(function (error) {
|
|
1184
|
+
logger.error('Channel: Fetching messages failed', error);
|
|
1185
|
+
messagesDispatcher({
|
|
1186
|
+
type: FETCH_PREV_MESSAGES_FAILURE,
|
|
1187
|
+
payload: {
|
|
1188
|
+
currentGroupChannel: currentGroupChannel
|
|
1189
|
+
}
|
|
1190
|
+
});
|
|
1191
|
+
cb([null, error]);
|
|
1192
|
+
});
|
|
1193
|
+
}, [currentGroupChannel, oldestMessageTimeStamp, replyType]);
|
|
1194
|
+
}
|
|
1195
|
+
|
|
1196
|
+
function useScrollDownCallback(_ref, _ref2) {
|
|
1197
|
+
var currentGroupChannel = _ref.currentGroupChannel,
|
|
1198
|
+
latestMessageTimeStamp = _ref.latestMessageTimeStamp,
|
|
1199
|
+
userFilledMessageListQuery = _ref.userFilledMessageListQuery,
|
|
1200
|
+
hasMoreNext = _ref.hasMoreNext,
|
|
1201
|
+
replyType = _ref.replyType;
|
|
1202
|
+
var logger = _ref2.logger,
|
|
1203
|
+
messagesDispatcher = _ref2.messagesDispatcher,
|
|
1204
|
+
sdk = _ref2.sdk;
|
|
1205
|
+
return React.useCallback(function (cb) {
|
|
1206
|
+
if (!hasMoreNext) {
|
|
1207
|
+
return;
|
|
1208
|
+
}
|
|
1209
|
+
|
|
1210
|
+
var _sdk$appInfo = sdk.appInfo,
|
|
1211
|
+
appInfo = _sdk$appInfo === void 0 ? {} : _sdk$appInfo;
|
|
1212
|
+
var useReaction = appInfo.isUsingReaction || false;
|
|
1213
|
+
var messageListParams = new sdk.MessageListParams();
|
|
1214
|
+
messageListParams.nextResultSize = NEXT_RESULT_SIZE;
|
|
1215
|
+
messageListParams.isInclusive = true;
|
|
1216
|
+
messageListParams.includeReplies = false;
|
|
1217
|
+
messageListParams.includeReaction = useReaction;
|
|
1218
|
+
|
|
1219
|
+
if (replyType && replyType === 'QUOTE_REPLY') {
|
|
1220
|
+
messageListParams.includeThreadInfo = true;
|
|
1221
|
+
messageListParams.includeParentMessageInfo = true;
|
|
1222
|
+
messageListParams.replyType = 'only_reply_to_channel';
|
|
1223
|
+
}
|
|
1224
|
+
|
|
1225
|
+
if (userFilledMessageListQuery) {
|
|
1226
|
+
Object.keys(userFilledMessageListQuery).forEach(function (key) {
|
|
1227
|
+
messageListParams[key] = userFilledMessageListQuery[key];
|
|
1228
|
+
});
|
|
1229
|
+
}
|
|
1230
|
+
|
|
1231
|
+
logger.info('Channel: Fetching later messages', {
|
|
1232
|
+
currentGroupChannel: currentGroupChannel,
|
|
1233
|
+
userFilledMessageListQuery: userFilledMessageListQuery
|
|
1234
|
+
});
|
|
1235
|
+
currentGroupChannel.getMessagesByTimestamp(latestMessageTimeStamp || new Date().getTime(), messageListParams).then(function (messages) {
|
|
1236
|
+
messagesDispatcher({
|
|
1237
|
+
type: FETCH_NEXT_MESSAGES_SUCCESS,
|
|
1238
|
+
payload: {
|
|
1239
|
+
currentGroupChannel: currentGroupChannel,
|
|
1240
|
+
messages: messages
|
|
1241
|
+
}
|
|
1242
|
+
});
|
|
1243
|
+
cb([messages, null]);
|
|
1244
|
+
}).catch(function (error) {
|
|
1245
|
+
logger.error('Channel: Fetching later messages failed', error);
|
|
1246
|
+
messagesDispatcher({
|
|
1247
|
+
type: FETCH_NEXT_MESSAGES_FAILURE,
|
|
1248
|
+
payload: {
|
|
1249
|
+
currentGroupChannel: currentGroupChannel
|
|
1250
|
+
}
|
|
1251
|
+
});
|
|
1252
|
+
cb([null, error]);
|
|
1253
|
+
});
|
|
1254
|
+
}, [currentGroupChannel, latestMessageTimeStamp, hasMoreNext, replyType]);
|
|
1255
|
+
}
|
|
1256
|
+
|
|
1257
|
+
function useDeleteMessageCallback(_ref, _ref2) {
|
|
1258
|
+
var currentGroupChannel = _ref.currentGroupChannel,
|
|
1259
|
+
messagesDispatcher = _ref.messagesDispatcher;
|
|
1260
|
+
var logger = _ref2.logger;
|
|
1261
|
+
return React.useCallback(function (message) {
|
|
1262
|
+
logger.info('Channel | useDeleteMessageCallback: Deleting message', message);
|
|
1263
|
+
var requestState = message.requestState;
|
|
1264
|
+
return new Promise(function (resolve, reject) {
|
|
1265
|
+
logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState); // Message is only on local
|
|
1266
|
+
|
|
1267
|
+
if (requestState === 'failed' || requestState === 'pending') {
|
|
1268
|
+
logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message);
|
|
1269
|
+
messagesDispatcher({
|
|
1270
|
+
type: ON_MESSAGE_DELETED_BY_REQ_ID,
|
|
1271
|
+
payload: message.reqId
|
|
1272
|
+
});
|
|
1273
|
+
resolve(message);
|
|
1274
|
+
} // Message is on server
|
|
1275
|
+
|
|
1276
|
+
|
|
1277
|
+
currentGroupChannel.deleteMessage(message, function (err) {
|
|
1278
|
+
logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', requestState);
|
|
1279
|
+
|
|
1280
|
+
if (!err) {
|
|
1281
|
+
logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message);
|
|
1282
|
+
messagesDispatcher({
|
|
1283
|
+
type: ON_MESSAGE_DELETED,
|
|
1284
|
+
payload: message.messageId
|
|
1285
|
+
});
|
|
1286
|
+
resolve(message);
|
|
1287
|
+
} else {
|
|
1288
|
+
logger.warning('Channel | useDeleteMessageCallback: Deleting message failed!', err);
|
|
1289
|
+
reject(err);
|
|
1290
|
+
}
|
|
1291
|
+
});
|
|
1292
|
+
});
|
|
1293
|
+
}, [currentGroupChannel, messagesDispatcher]);
|
|
1294
|
+
}
|
|
1295
|
+
|
|
1296
|
+
function useUpdateMessageCallback(_ref, _ref2) {
|
|
1297
|
+
var currentGroupChannel = _ref.currentGroupChannel,
|
|
1298
|
+
messagesDispatcher = _ref.messagesDispatcher,
|
|
1299
|
+
onBeforeUpdateUserMessage = _ref.onBeforeUpdateUserMessage;
|
|
1300
|
+
var logger = _ref2.logger,
|
|
1301
|
+
pubSub = _ref2.pubSub,
|
|
1302
|
+
sdk = _ref2.sdk;
|
|
1303
|
+
return React.useCallback(function (messageId, text, cb) {
|
|
1304
|
+
var createParamsDefault = function createParamsDefault(txt) {
|
|
1305
|
+
var params = new sdk.UserMessageParams();
|
|
1306
|
+
params.message = txt;
|
|
1307
|
+
return params;
|
|
1308
|
+
};
|
|
1309
|
+
|
|
1310
|
+
var createCustomPrams = onBeforeUpdateUserMessage && typeof onBeforeUpdateUserMessage === 'function';
|
|
1311
|
+
|
|
1312
|
+
if (createCustomPrams) {
|
|
1313
|
+
logger.info('Channel: creating params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage);
|
|
1314
|
+
}
|
|
1315
|
+
|
|
1316
|
+
var params = onBeforeUpdateUserMessage ? onBeforeUpdateUserMessage(text) : createParamsDefault(text);
|
|
1317
|
+
currentGroupChannel.updateUserMessage(messageId, params, function (r, e) {
|
|
1318
|
+
logger.info('Channel: Updating message!', params);
|
|
1319
|
+
var swapParams = sdk.getErrorFirstCallback();
|
|
1320
|
+
var message = r;
|
|
1321
|
+
var err = e;
|
|
1322
|
+
|
|
1323
|
+
if (swapParams) {
|
|
1324
|
+
message = e;
|
|
1325
|
+
err = r;
|
|
1326
|
+
}
|
|
1327
|
+
|
|
1328
|
+
if (cb) {
|
|
1329
|
+
cb(err, message);
|
|
1330
|
+
}
|
|
1331
|
+
|
|
1332
|
+
if (!err) {
|
|
1333
|
+
logger.info('Channel: Updating message success!', message);
|
|
1334
|
+
messagesDispatcher({
|
|
1335
|
+
type: ON_MESSAGE_UPDATED,
|
|
1336
|
+
payload: {
|
|
1337
|
+
channel: currentGroupChannel,
|
|
1338
|
+
message: message
|
|
1339
|
+
}
|
|
1340
|
+
});
|
|
1341
|
+
pubSub.publish(topics.UPDATE_USER_MESSAGE, {
|
|
1342
|
+
message: message,
|
|
1343
|
+
channel: currentGroupChannel
|
|
1344
|
+
});
|
|
1345
|
+
} else {
|
|
1346
|
+
logger.warning('Channel: Updating message failed!', err);
|
|
1347
|
+
}
|
|
1348
|
+
});
|
|
1349
|
+
}, [currentGroupChannel.url, messagesDispatcher, onBeforeUpdateUserMessage]);
|
|
1350
|
+
}
|
|
1351
|
+
|
|
1352
|
+
function useResendMessageCallback(_ref, _ref2) {
|
|
1353
|
+
var currentGroupChannel = _ref.currentGroupChannel,
|
|
1354
|
+
messagesDispatcher = _ref.messagesDispatcher;
|
|
1355
|
+
var logger = _ref2.logger;
|
|
1356
|
+
return React.useCallback(function (failedMessage) {
|
|
1357
|
+
logger.info('Channel: Resending message has started', failedMessage);
|
|
1358
|
+
var messageType = failedMessage.messageType,
|
|
1359
|
+
file = failedMessage.file;
|
|
1360
|
+
|
|
1361
|
+
if (failedMessage && typeof failedMessage.isResendable === 'function' && failedMessage.isResendable()) {
|
|
1362
|
+
// Move the logic setting sendingStatus to pending into the reducer
|
|
1363
|
+
// eslint-disable-next-line no-param-reassign
|
|
1364
|
+
failedMessage.requestState = 'pending'; // eslint-disable-next-line no-param-reassign
|
|
1365
|
+
|
|
1366
|
+
failedMessage.sendingStatus = 'pending';
|
|
1367
|
+
messagesDispatcher({
|
|
1368
|
+
type: RESEND_MESSAGEGE_START,
|
|
1369
|
+
payload: failedMessage
|
|
1370
|
+
}); // userMessage
|
|
1371
|
+
|
|
1372
|
+
if (messageType === 'user') {
|
|
1373
|
+
currentGroupChannel.resendUserMessage(failedMessage).then(function (message) {
|
|
1374
|
+
logger.info('Channel: Resending message success!', message);
|
|
1375
|
+
messagesDispatcher({
|
|
1376
|
+
type: SEND_MESSAGEGE_SUCESS,
|
|
1377
|
+
payload: message
|
|
1378
|
+
});
|
|
1379
|
+
}).catch(function (e) {
|
|
1380
|
+
logger.warning('Channel: Resending message failed!', e); // eslint-disable-next-line no-param-reassign
|
|
1381
|
+
|
|
1382
|
+
failedMessage.requestState = 'failed'; // eslint-disable-next-line no-param-reassign
|
|
1383
|
+
|
|
1384
|
+
failedMessage.sendingStatus = 'failed';
|
|
1385
|
+
messagesDispatcher({
|
|
1386
|
+
type: SEND_MESSAGEGE_FAILURE,
|
|
1387
|
+
payload: failedMessage
|
|
1388
|
+
});
|
|
1389
|
+
}); // eslint-disable-next-line no-param-reassign
|
|
1390
|
+
|
|
1391
|
+
failedMessage.requestState = 'pending'; // eslint-disable-next-line no-param-reassign
|
|
1392
|
+
|
|
1393
|
+
failedMessage.sendingStatus = 'pending';
|
|
1394
|
+
messagesDispatcher({
|
|
1395
|
+
type: RESEND_MESSAGEGE_START,
|
|
1396
|
+
payload: failedMessage
|
|
1397
|
+
});
|
|
1398
|
+
return;
|
|
1399
|
+
}
|
|
1400
|
+
|
|
1401
|
+
if (messageType === 'file') {
|
|
1402
|
+
currentGroupChannel.resendFileMessage(failedMessage, file).then(function (message) {
|
|
1403
|
+
logger.info('Channel: Resending file message success!', message);
|
|
1404
|
+
messagesDispatcher({
|
|
1405
|
+
type: SEND_MESSAGEGE_SUCESS,
|
|
1406
|
+
payload: message
|
|
1407
|
+
});
|
|
1408
|
+
}).catch(function (e) {
|
|
1409
|
+
logger.warning('Channel: Resending file message failed!', e); // eslint-disable-next-line no-param-reassign
|
|
1410
|
+
|
|
1411
|
+
failedMessage.requestState = 'failed'; // eslint-disable-next-line no-param-reassign
|
|
1412
|
+
|
|
1413
|
+
failedMessage.sendingStatus = 'failed';
|
|
1414
|
+
messagesDispatcher({
|
|
1415
|
+
type: SEND_MESSAGEGE_FAILURE,
|
|
1416
|
+
payload: failedMessage
|
|
1417
|
+
});
|
|
1418
|
+
}); // eslint-disable-next-line no-param-reassign
|
|
1419
|
+
|
|
1420
|
+
failedMessage.requestState = 'pending'; // eslint-disable-next-line no-param-reassign
|
|
1421
|
+
|
|
1422
|
+
failedMessage.sendingStatus = 'pending';
|
|
1423
|
+
messagesDispatcher({
|
|
1424
|
+
type: RESEND_MESSAGEGE_START,
|
|
1425
|
+
payload: failedMessage
|
|
1426
|
+
});
|
|
1427
|
+
}
|
|
1428
|
+
} else {
|
|
1429
|
+
// to alert user on console
|
|
1430
|
+
// eslint-disable-next-line no-console
|
|
1431
|
+
console.error('Message is not resendable');
|
|
1432
|
+
logger.warning('Message is not resendable', failedMessage);
|
|
1433
|
+
}
|
|
1434
|
+
}, [currentGroupChannel, messagesDispatcher]);
|
|
1435
|
+
}
|
|
1436
|
+
|
|
1437
|
+
function useSendMessageCallback(_ref, _ref2) {
|
|
1438
|
+
var currentGroupChannel = _ref.currentGroupChannel,
|
|
1439
|
+
onBeforeSendUserMessage = _ref.onBeforeSendUserMessage;
|
|
1440
|
+
var sdk = _ref2.sdk,
|
|
1441
|
+
logger = _ref2.logger,
|
|
1442
|
+
pubSub = _ref2.pubSub,
|
|
1443
|
+
messagesDispatcher = _ref2.messagesDispatcher;
|
|
1444
|
+
var messageInputRef = React.useRef(null);
|
|
1445
|
+
var sendMessage = React.useCallback(function () {
|
|
1446
|
+
var quoteMessage = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;
|
|
1447
|
+
var text = messageInputRef.current.value;
|
|
1448
|
+
|
|
1449
|
+
var createParamsDefault = function createParamsDefault(txt) {
|
|
1450
|
+
var message = typeof txt === 'string' ? txt.trim() : txt;
|
|
1451
|
+
var params = new sdk.UserMessageParams();
|
|
1452
|
+
params.message = message;
|
|
1453
|
+
|
|
1454
|
+
if (quoteMessage) {
|
|
1455
|
+
params.isReplyToChannel = true;
|
|
1456
|
+
params.parentMessageId = quoteMessage.messageId;
|
|
1457
|
+
}
|
|
1458
|
+
|
|
1459
|
+
return params;
|
|
1460
|
+
};
|
|
1461
|
+
|
|
1462
|
+
var createCustomPrams = onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function';
|
|
1463
|
+
|
|
1464
|
+
if (createCustomPrams) {
|
|
1465
|
+
logger.info('Channel: creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);
|
|
1466
|
+
}
|
|
1467
|
+
|
|
1468
|
+
var params = onBeforeSendUserMessage ? onBeforeSendUserMessage(text, quoteMessage) : createParamsDefault(text);
|
|
1469
|
+
logger.info('Channel: Sending message has started', params);
|
|
1470
|
+
var pendingMsg = currentGroupChannel.sendUserMessage(params, function (res, err) {
|
|
1471
|
+
var swapParams = sdk.getErrorFirstCallback();
|
|
1472
|
+
var message = res;
|
|
1473
|
+
var error = err;
|
|
1474
|
+
|
|
1475
|
+
if (swapParams) {
|
|
1476
|
+
message = err;
|
|
1477
|
+
error = res;
|
|
1478
|
+
} // sending params instead of pending message
|
|
1479
|
+
// to make sure that we can resend the message once it fails
|
|
1480
|
+
|
|
1481
|
+
|
|
1482
|
+
if (error) {
|
|
1483
|
+
logger.warning('Channel: Sending message failed!', {
|
|
1484
|
+
message: message
|
|
1485
|
+
});
|
|
1486
|
+
messagesDispatcher({
|
|
1487
|
+
type: SEND_MESSAGEGE_FAILURE,
|
|
1488
|
+
payload: message
|
|
1489
|
+
});
|
|
1490
|
+
return;
|
|
1491
|
+
}
|
|
1492
|
+
|
|
1493
|
+
logger.info('Channel: Sending message success!', message);
|
|
1494
|
+
messagesDispatcher({
|
|
1495
|
+
type: SEND_MESSAGEGE_SUCESS,
|
|
1496
|
+
payload: message
|
|
1497
|
+
});
|
|
1498
|
+
});
|
|
1499
|
+
pubSub.publish(topics.SEND_MESSAGE_START, {
|
|
1500
|
+
/* pubSub is used instead of messagesDispatcher
|
|
1501
|
+
to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */
|
|
1502
|
+
message: pendingMsg,
|
|
1503
|
+
channel: currentGroupChannel
|
|
1504
|
+
});
|
|
1505
|
+
setTimeout(function () {
|
|
1506
|
+
return scrollIntoLast();
|
|
1507
|
+
});
|
|
1508
|
+
}, [currentGroupChannel, onBeforeSendUserMessage]);
|
|
1509
|
+
return [messageInputRef, sendMessage];
|
|
1510
|
+
}
|
|
1511
|
+
|
|
1512
|
+
function useSendFileMessageCallback(_ref, _ref2) {
|
|
1513
|
+
var currentGroupChannel = _ref.currentGroupChannel,
|
|
1514
|
+
onBeforeSendFileMessage = _ref.onBeforeSendFileMessage,
|
|
1515
|
+
_ref$imageCompression = _ref.imageCompression,
|
|
1516
|
+
imageCompression = _ref$imageCompression === void 0 ? {} : _ref$imageCompression;
|
|
1517
|
+
var sdk = _ref2.sdk,
|
|
1518
|
+
logger = _ref2.logger,
|
|
1519
|
+
pubSub = _ref2.pubSub,
|
|
1520
|
+
messagesDispatcher = _ref2.messagesDispatcher;
|
|
1521
|
+
var sendMessage = React.useCallback(function (file) {
|
|
1522
|
+
var quoteMessage = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
|
|
1523
|
+
var compressionRate = imageCompression.compressionRate,
|
|
1524
|
+
resizingWidth = imageCompression.resizingWidth,
|
|
1525
|
+
resizingHeight = imageCompression.resizingHeight;
|
|
1526
|
+
var createCustomParams = onBeforeSendFileMessage && typeof onBeforeSendFileMessage === 'function';
|
|
1527
|
+
var compressibleFileType = file.type === 'image/jpg' || file.type === 'image/png' || file.type === 'image/jpeg';
|
|
1528
|
+
var compressibleRatio = compressionRate > 0 && compressionRate < 1; // pxToNumber returns null if values are invalid
|
|
1529
|
+
|
|
1530
|
+
var compressibleDiamensions = pxToNumber(resizingWidth) || pxToNumber(resizingHeight);
|
|
1531
|
+
var canCompressImage = compressibleFileType && (compressibleRatio || compressibleDiamensions);
|
|
1532
|
+
|
|
1533
|
+
var createParamsDefault = function createParamsDefault(file_) {
|
|
1534
|
+
var params = new sdk.FileMessageParams();
|
|
1535
|
+
params.file = file_;
|
|
1536
|
+
|
|
1537
|
+
if (quoteMessage) {
|
|
1538
|
+
params.isReplyToChannel = true;
|
|
1539
|
+
params.parentMessageId = quoteMessage.messageId;
|
|
1540
|
+
}
|
|
1541
|
+
|
|
1542
|
+
return params;
|
|
1543
|
+
};
|
|
1544
|
+
|
|
1545
|
+
if (canCompressImage) {
|
|
1546
|
+
// Using image compression
|
|
1547
|
+
try {
|
|
1548
|
+
var image = document.createElement('img');
|
|
1549
|
+
image.src = URL.createObjectURL(file);
|
|
1550
|
+
|
|
1551
|
+
image.onload = function () {
|
|
1552
|
+
URL.revokeObjectURL(image.src);
|
|
1553
|
+
var canvas = document.createElement('canvas');
|
|
1554
|
+
var imageWdith = image.naturalWidth || image.width;
|
|
1555
|
+
var imageHeight = image.naturalHeight || image.height;
|
|
1556
|
+
var targetWidth = pxToNumber(resizingWidth) || imageWdith;
|
|
1557
|
+
var targetHeight = pxToNumber(resizingHeight) || imageHeight; // In canvas.toBlob(callback, mimeType, qualityArgument)
|
|
1558
|
+
// qualityArgument doesnt work
|
|
1559
|
+
// so in case compressibleDiamensions are not present, we use ratio
|
|
1560
|
+
|
|
1561
|
+
if (file.type === 'image/png' && !compressibleDiamensions) {
|
|
1562
|
+
targetWidth *= compressionRate;
|
|
1563
|
+
targetHeight *= compressionRate;
|
|
1564
|
+
}
|
|
1565
|
+
|
|
1566
|
+
canvas.width = targetWidth;
|
|
1567
|
+
canvas.height = targetHeight;
|
|
1568
|
+
var context = canvas.getContext('2d');
|
|
1569
|
+
context.drawImage(image, 0, 0, targetWidth, targetHeight);
|
|
1570
|
+
context.canvas.toBlob(function (newImageBlob) {
|
|
1571
|
+
var compressedFile = new File([newImageBlob], file.name, {
|
|
1572
|
+
type: file.type
|
|
1573
|
+
});
|
|
1574
|
+
|
|
1575
|
+
if (createCustomParams) {
|
|
1576
|
+
logger.info('Channel: Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);
|
|
1577
|
+
}
|
|
1578
|
+
|
|
1579
|
+
var params = createCustomParams ? onBeforeSendFileMessage(compressedFile, quoteMessage) : createParamsDefault(compressedFile);
|
|
1580
|
+
logger.info('Channel: Uploading file message start!', params);
|
|
1581
|
+
var pendingMessage = currentGroupChannel.sendFileMessage(params, function (response, err) {
|
|
1582
|
+
var swapParams = sdk.getErrorFirstCallback();
|
|
1583
|
+
|
|
1584
|
+
var _ref3 = swapParams ? [err, response] : [response, err],
|
|
1585
|
+
_ref4 = _rollupPluginBabelHelpers._slicedToArray(_ref3, 2),
|
|
1586
|
+
message = _ref4[0],
|
|
1587
|
+
error = _ref4[1];
|
|
1588
|
+
|
|
1589
|
+
if (error) {
|
|
1590
|
+
// sending params instead of pending message
|
|
1591
|
+
// to make sure that we can resend the message once it fails
|
|
1592
|
+
logger.error('Channel: Sending file message failed!', {
|
|
1593
|
+
message: message,
|
|
1594
|
+
error: error
|
|
1595
|
+
});
|
|
1596
|
+
message.localUrl = URL.createObjectURL(compressedFile);
|
|
1597
|
+
message.file = compressedFile;
|
|
1598
|
+
messagesDispatcher({
|
|
1599
|
+
type: SEND_MESSAGEGE_FAILURE,
|
|
1600
|
+
payload: message
|
|
1601
|
+
});
|
|
1602
|
+
return;
|
|
1603
|
+
}
|
|
1604
|
+
|
|
1605
|
+
logger.info('Channel: Sending file message success!', message);
|
|
1606
|
+
messagesDispatcher({
|
|
1607
|
+
type: SEND_MESSAGEGE_SUCESS,
|
|
1608
|
+
payload: message
|
|
1609
|
+
});
|
|
1610
|
+
});
|
|
1611
|
+
pubSub.publish(topics.SEND_MESSAGE_START, {
|
|
1612
|
+
/* pubSub is used instead of messagesDispatcher
|
|
1613
|
+
to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */
|
|
1614
|
+
message: _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, pendingMessage), {}, {
|
|
1615
|
+
url: URL.createObjectURL(compressedFile),
|
|
1616
|
+
// pending thumbnail message seems to be failed
|
|
1617
|
+
requestState: 'pending'
|
|
1618
|
+
}),
|
|
1619
|
+
channel: currentGroupChannel
|
|
1620
|
+
});
|
|
1621
|
+
setTimeout(function () {
|
|
1622
|
+
return scrollIntoLast();
|
|
1623
|
+
}, 1000);
|
|
1624
|
+
}, file.type, compressionRate);
|
|
1625
|
+
};
|
|
1626
|
+
} catch (error) {
|
|
1627
|
+
logger.error('Channel: Sending file message failed!', error);
|
|
1628
|
+
}
|
|
1629
|
+
} else {
|
|
1630
|
+
// Not using image compression
|
|
1631
|
+
if (createCustomParams) {
|
|
1632
|
+
logger.info('Channel: creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);
|
|
1633
|
+
}
|
|
1634
|
+
|
|
1635
|
+
var params = onBeforeSendFileMessage ? onBeforeSendFileMessage(file, quoteMessage) : createParamsDefault(file);
|
|
1636
|
+
logger.info('Channel: Uploading file message start!', params);
|
|
1637
|
+
var pendingMsg = currentGroupChannel.sendFileMessage(params, function (response, err) {
|
|
1638
|
+
var swapParams = sdk.getErrorFirstCallback();
|
|
1639
|
+
|
|
1640
|
+
var _ref5 = swapParams ? [err, response] : [response, err],
|
|
1641
|
+
_ref6 = _rollupPluginBabelHelpers._slicedToArray(_ref5, 2),
|
|
1642
|
+
message = _ref6[0],
|
|
1643
|
+
error = _ref6[1];
|
|
1644
|
+
|
|
1645
|
+
if (error) {
|
|
1646
|
+
// sending params instead of pending message
|
|
1647
|
+
// to make sure that we can resend the message once it fails
|
|
1648
|
+
logger.error('Channel: Sending file message failed!', {
|
|
1649
|
+
message: message,
|
|
1650
|
+
error: error
|
|
1651
|
+
});
|
|
1652
|
+
message.localUrl = URL.createObjectURL(file);
|
|
1653
|
+
message.file = file;
|
|
1654
|
+
messagesDispatcher({
|
|
1655
|
+
type: SEND_MESSAGEGE_FAILURE,
|
|
1656
|
+
payload: message
|
|
1657
|
+
});
|
|
1658
|
+
return;
|
|
1659
|
+
}
|
|
1660
|
+
|
|
1661
|
+
logger.info('Channel: Sending message success!', message);
|
|
1662
|
+
messagesDispatcher({
|
|
1663
|
+
type: SEND_MESSAGEGE_SUCESS,
|
|
1664
|
+
payload: message
|
|
1665
|
+
});
|
|
1666
|
+
});
|
|
1667
|
+
pubSub.publish(topics.SEND_MESSAGE_START, {
|
|
1668
|
+
/* pubSub is used instead of messagesDispatcher
|
|
1669
|
+
to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */
|
|
1670
|
+
message: _rollupPluginBabelHelpers._objectSpread2(_rollupPluginBabelHelpers._objectSpread2({}, pendingMsg), {}, {
|
|
1671
|
+
url: URL.createObjectURL(file),
|
|
1672
|
+
// pending thumbnail message seems to be failed
|
|
1673
|
+
requestState: 'pending'
|
|
1674
|
+
}),
|
|
1675
|
+
channel: currentGroupChannel
|
|
1676
|
+
});
|
|
1677
|
+
setTimeout(function () {
|
|
1678
|
+
return scrollIntoLast();
|
|
1679
|
+
}, 1000);
|
|
1680
|
+
}
|
|
1681
|
+
}, [currentGroupChannel, onBeforeSendFileMessage, imageCompression]);
|
|
1682
|
+
return [sendMessage];
|
|
1683
|
+
}
|
|
1684
|
+
|
|
1685
|
+
function useMemoizedEmojiListItems(_ref, _ref2) {
|
|
1686
|
+
var emojiContainer = _ref.emojiContainer,
|
|
1687
|
+
toggleReaction = _ref.toggleReaction;
|
|
1688
|
+
var useReaction = _ref2.useReaction,
|
|
1689
|
+
logger = _ref2.logger,
|
|
1690
|
+
userId = _ref2.userId,
|
|
1691
|
+
emojiAllList = _ref2.emojiAllList;
|
|
1692
|
+
|
|
1693
|
+
/* eslint-disable react/prop-types */
|
|
1694
|
+
return React.useMemo(function () {
|
|
1695
|
+
return function (_ref3) {
|
|
1696
|
+
var parentRef = _ref3.parentRef,
|
|
1697
|
+
parentContainRef = _ref3.parentContainRef,
|
|
1698
|
+
message = _ref3.message,
|
|
1699
|
+
closeDropdown = _ref3.closeDropdown,
|
|
1700
|
+
_ref3$spaceFromTrigge = _ref3.spaceFromTrigger,
|
|
1701
|
+
spaceFromTrigger = _ref3$spaceFromTrigge === void 0 ? {} : _ref3$spaceFromTrigge;
|
|
1702
|
+
|
|
1703
|
+
if (!useReaction || !(parentRef || parentContainRef || message || closeDropdown)) {
|
|
1704
|
+
logger.warning('Channel: Invalid Params in memoizedEmojiListItems');
|
|
1705
|
+
return null;
|
|
1706
|
+
}
|
|
1707
|
+
|
|
1708
|
+
return /*#__PURE__*/React__default["default"].createElement(ui_ContextMenu.EmojiListItems, {
|
|
1709
|
+
parentRef: parentRef,
|
|
1710
|
+
parentContainRef: parentContainRef,
|
|
1711
|
+
closeDropdown: closeDropdown,
|
|
1712
|
+
spaceFromTrigger: spaceFromTrigger
|
|
1713
|
+
}, emojiAllList.map(function (emoji) {
|
|
1714
|
+
var reactedReaction = message.reactions.filter(function (reaction) {
|
|
1715
|
+
return reaction.key === emoji.key;
|
|
1716
|
+
})[0];
|
|
1717
|
+
var isReacted = reactedReaction ? !(reactedReaction.userIds.indexOf(userId) < 0) : false;
|
|
1718
|
+
return /*#__PURE__*/React__default["default"].createElement(ui_ReactionButton, {
|
|
1719
|
+
key: emoji.key,
|
|
1720
|
+
width: "36px",
|
|
1721
|
+
height: "36px",
|
|
1722
|
+
selected: isReacted,
|
|
1723
|
+
onClick: function onClick() {
|
|
1724
|
+
closeDropdown();
|
|
1725
|
+
toggleReaction(message, emoji.key, isReacted);
|
|
1726
|
+
}
|
|
1727
|
+
}, /*#__PURE__*/React__default["default"].createElement(ui_ImageRenderer, {
|
|
1728
|
+
url: emoji.url,
|
|
1729
|
+
width: "28px",
|
|
1730
|
+
height: "28px",
|
|
1731
|
+
defaultComponent: /*#__PURE__*/React__default["default"].createElement(ui_Icon["default"], {
|
|
1732
|
+
width: "28px",
|
|
1733
|
+
height: "28px",
|
|
1734
|
+
type: ui_Icon.IconTypes.QUESTION
|
|
1735
|
+
})
|
|
1736
|
+
}));
|
|
1737
|
+
}));
|
|
1738
|
+
};
|
|
1739
|
+
}, [emojiContainer, toggleReaction]);
|
|
1740
|
+
}
|
|
1741
|
+
|
|
1742
|
+
function useToggleReactionCallback(_ref, _ref2) {
|
|
1743
|
+
var currentGroupChannel = _ref.currentGroupChannel;
|
|
1744
|
+
var logger = _ref2.logger;
|
|
1745
|
+
return React.useCallback(function (message, key, isReacted) {
|
|
1746
|
+
if (isReacted) {
|
|
1747
|
+
currentGroupChannel.deleteReaction(message, key).then(function (res) {
|
|
1748
|
+
logger.info('Delete reaction success', res);
|
|
1749
|
+
}).catch(function (err) {
|
|
1750
|
+
logger.warning('Delete reaction failed', err);
|
|
1751
|
+
});
|
|
1752
|
+
return;
|
|
1753
|
+
}
|
|
1754
|
+
|
|
1755
|
+
currentGroupChannel.addReaction(message, key).then(function (res) {
|
|
1756
|
+
logger.info('Add reaction success', res);
|
|
1757
|
+
}).catch(function (err) {
|
|
1758
|
+
logger.warning('Add reaction failed', err);
|
|
1759
|
+
});
|
|
1760
|
+
}, [currentGroupChannel]);
|
|
1761
|
+
}
|
|
1762
|
+
|
|
1763
|
+
function useScrollToMessage(_a, _b) {
|
|
1764
|
+
var setInitialTimeStamp = _a.setInitialTimeStamp,
|
|
1765
|
+
setAnimatedMessageId = _a.setAnimatedMessageId,
|
|
1766
|
+
allMessages = _a.allMessages;
|
|
1767
|
+
var logger = _b.logger;
|
|
1768
|
+
return React.useCallback(function (createdAt, messageId) {
|
|
1769
|
+
var isPresent = allMessages.find(function (m) {
|
|
1770
|
+
return m.messageId === messageId;
|
|
1771
|
+
});
|
|
1772
|
+
setAnimatedMessageId(null);
|
|
1773
|
+
setTimeout(function () {
|
|
1774
|
+
if (isPresent) {
|
|
1775
|
+
logger.info('Channel: scroll to message - message is present');
|
|
1776
|
+
setAnimatedMessageId(messageId);
|
|
1777
|
+
} else {
|
|
1778
|
+
logger.info('Channel: scroll to message - fetching older messages');
|
|
1779
|
+
setInitialTimeStamp(null);
|
|
1780
|
+
setInitialTimeStamp(createdAt);
|
|
1781
|
+
setAnimatedMessageId(messageId);
|
|
1782
|
+
}
|
|
1783
|
+
});
|
|
1784
|
+
}, [setInitialTimeStamp, setAnimatedMessageId, allMessages]);
|
|
1785
|
+
}
|
|
1786
|
+
|
|
1787
|
+
var ChannelContext = /*#__PURE__*/React__default["default"].createContext(undefined);
|
|
1788
|
+
|
|
1789
|
+
var ChannelProvider = function ChannelProvider(props) {
|
|
1790
|
+
var _a, _b, _c, _d;
|
|
1791
|
+
|
|
1792
|
+
var channelUrl = props.channelUrl,
|
|
1793
|
+
children = props.children,
|
|
1794
|
+
useMessageGrouping = props.useMessageGrouping,
|
|
1795
|
+
useReaction = props.useReaction,
|
|
1796
|
+
showSearchIcon = props.showSearchIcon,
|
|
1797
|
+
highlightedMessage = props.highlightedMessage,
|
|
1798
|
+
startingPoint = props.startingPoint,
|
|
1799
|
+
onBeforeSendUserMessage = props.onBeforeSendUserMessage,
|
|
1800
|
+
onBeforeSendFileMessage = props.onBeforeSendFileMessage,
|
|
1801
|
+
onBeforeUpdateUserMessage = props.onBeforeUpdateUserMessage,
|
|
1802
|
+
onChatHeaderActionClick = props.onChatHeaderActionClick,
|
|
1803
|
+
onSearchClick = props.onSearchClick,
|
|
1804
|
+
replyType = props.replyType,
|
|
1805
|
+
queries = props.queries;
|
|
1806
|
+
var globalStore = useSendbirdStateContext();
|
|
1807
|
+
var config = globalStore.config;
|
|
1808
|
+
var pubSub = config.pubSub,
|
|
1809
|
+
logger = config.logger,
|
|
1810
|
+
userId = config.userId,
|
|
1811
|
+
isOnline = config.isOnline,
|
|
1812
|
+
imageCompression = config.imageCompression;
|
|
1813
|
+
var sdk = (_b = (_a = globalStore === null || globalStore === void 0 ? void 0 : globalStore.stores) === null || _a === void 0 ? void 0 : _a.sdkStore) === null || _b === void 0 ? void 0 : _b.sdk;
|
|
1814
|
+
var sdkInit = (_d = (_c = globalStore === null || globalStore === void 0 ? void 0 : globalStore.stores) === null || _c === void 0 ? void 0 : _c.sdkStore) === null || _d === void 0 ? void 0 : _d.initialized;
|
|
1815
|
+
|
|
1816
|
+
var _e = React.useState(startingPoint),
|
|
1817
|
+
initialTimeStamp = _e[0],
|
|
1818
|
+
setInitialTimeStamp = _e[1];
|
|
1819
|
+
|
|
1820
|
+
React.useEffect(function () {
|
|
1821
|
+
setInitialTimeStamp(startingPoint);
|
|
1822
|
+
}, [startingPoint, channelUrl]);
|
|
1823
|
+
|
|
1824
|
+
var _f = React.useState(null),
|
|
1825
|
+
animatedMessageId = _f[0],
|
|
1826
|
+
setAnimatedMessageId = _f[1];
|
|
1827
|
+
|
|
1828
|
+
var _g = React.useState(highlightedMessage),
|
|
1829
|
+
highLightedMessageId = _g[0],
|
|
1830
|
+
setHighLightedMessageId = _g[1];
|
|
1831
|
+
|
|
1832
|
+
React.useEffect(function () {
|
|
1833
|
+
setHighLightedMessageId(highlightedMessage);
|
|
1834
|
+
}, [highlightedMessage]);
|
|
1835
|
+
var userFilledMessageListQuery = queries === null || queries === void 0 ? void 0 : queries.messageListParams;
|
|
1836
|
+
|
|
1837
|
+
var _h = React.useState(null),
|
|
1838
|
+
quoteMessage = _h[0],
|
|
1839
|
+
setQuoteMessage = _h[1];
|
|
1840
|
+
|
|
1841
|
+
var _j = React.useReducer(reducer, messagesInitialState),
|
|
1842
|
+
messagesStore = _j[0],
|
|
1843
|
+
messagesDispatcher = _j[1];
|
|
1844
|
+
|
|
1845
|
+
var scrollRef = React.useRef(null);
|
|
1846
|
+
var allMessages = messagesStore.allMessages,
|
|
1847
|
+
loading = messagesStore.loading,
|
|
1848
|
+
initialized = messagesStore.initialized,
|
|
1849
|
+
unreadSince = messagesStore.unreadSince,
|
|
1850
|
+
isInvalid = messagesStore.isInvalid,
|
|
1851
|
+
currentGroupChannel = messagesStore.currentGroupChannel,
|
|
1852
|
+
hasMorePrev = messagesStore.hasMorePrev,
|
|
1853
|
+
oldestMessageTimeStamp = messagesStore.oldestMessageTimeStamp,
|
|
1854
|
+
hasMoreNext = messagesStore.hasMoreNext,
|
|
1855
|
+
latestMessageTimeStamp = messagesStore.latestMessageTimeStamp,
|
|
1856
|
+
emojiContainer = messagesStore.emojiContainer,
|
|
1857
|
+
readStatus = messagesStore.readStatus;
|
|
1858
|
+
var isBroadcast = currentGroupChannel.isBroadcast,
|
|
1859
|
+
isSuper = currentGroupChannel.isSuper;
|
|
1860
|
+
var appInfo = sdk.appInfo;
|
|
1861
|
+
var usingReaction = (appInfo === null || appInfo === void 0 ? void 0 : appInfo.isUsingReaction) && !isBroadcast && !isSuper && useReaction // TODO: Make useReaction independent from appInfo.isUsingReaction
|
|
1862
|
+
;
|
|
1863
|
+
var emojiAllMap = React.useMemo(function () {
|
|
1864
|
+
return usingReaction ? getAllEmojisMapFromEmojiContainer(emojiContainer) : new Map();
|
|
1865
|
+
}, [emojiContainer]);
|
|
1866
|
+
var emojiAllList = React.useMemo(function () {
|
|
1867
|
+
return usingReaction ? getAllEmojisFromEmojiContainer(emojiContainer) : [];
|
|
1868
|
+
}, [emojiContainer]);
|
|
1869
|
+
var nicknamesMap = React.useMemo(function () {
|
|
1870
|
+
return usingReaction ? getNicknamesMapFromMembers(currentGroupChannel.members) : new Map();
|
|
1871
|
+
}, [currentGroupChannel.members]); // Scrollup is default scroll for channel
|
|
1872
|
+
|
|
1873
|
+
var onScrollCallback = useScrollCallback({
|
|
1874
|
+
currentGroupChannel: currentGroupChannel,
|
|
1875
|
+
oldestMessageTimeStamp: oldestMessageTimeStamp,
|
|
1876
|
+
userFilledMessageListQuery: userFilledMessageListQuery,
|
|
1877
|
+
replyType: replyType
|
|
1878
|
+
}, {
|
|
1879
|
+
hasMorePrev: hasMorePrev,
|
|
1880
|
+
logger: logger,
|
|
1881
|
+
messagesDispatcher: messagesDispatcher,
|
|
1882
|
+
sdk: sdk
|
|
1883
|
+
});
|
|
1884
|
+
var scrollToMessage = useScrollToMessage({
|
|
1885
|
+
setInitialTimeStamp: setInitialTimeStamp,
|
|
1886
|
+
setAnimatedMessageId: setAnimatedMessageId,
|
|
1887
|
+
allMessages: allMessages
|
|
1888
|
+
}, {
|
|
1889
|
+
logger: logger
|
|
1890
|
+
}); // onScrollDownCallback is added for navigation to different timestamps on messageSearch
|
|
1891
|
+
// hasMorePrev, onScrollCallback -> scroll up(default behavior)
|
|
1892
|
+
// hasMoreNext, onScrollDownCallback -> scroll down
|
|
1893
|
+
|
|
1894
|
+
var onScrollDownCallback = useScrollDownCallback({
|
|
1895
|
+
currentGroupChannel: currentGroupChannel,
|
|
1896
|
+
latestMessageTimeStamp: latestMessageTimeStamp,
|
|
1897
|
+
userFilledMessageListQuery: userFilledMessageListQuery,
|
|
1898
|
+
hasMoreNext: hasMoreNext,
|
|
1899
|
+
replyType: replyType
|
|
1900
|
+
}, {
|
|
1901
|
+
logger: logger,
|
|
1902
|
+
messagesDispatcher: messagesDispatcher,
|
|
1903
|
+
sdk: sdk
|
|
1904
|
+
});
|
|
1905
|
+
var toggleReaction = useToggleReactionCallback({
|
|
1906
|
+
currentGroupChannel: currentGroupChannel
|
|
1907
|
+
}, {
|
|
1908
|
+
logger: logger
|
|
1909
|
+
});
|
|
1910
|
+
var memoizedEmojiListItems = useMemoizedEmojiListItems({
|
|
1911
|
+
emojiContainer: emojiContainer,
|
|
1912
|
+
toggleReaction: toggleReaction
|
|
1913
|
+
}, {
|
|
1914
|
+
useReaction: usingReaction,
|
|
1915
|
+
logger: logger,
|
|
1916
|
+
userId: userId,
|
|
1917
|
+
emojiAllList: emojiAllList
|
|
1918
|
+
}); // to create message-datasource
|
|
1919
|
+
// this hook sets currentGroupChannel asynchronously
|
|
1920
|
+
|
|
1921
|
+
useSetChannel({
|
|
1922
|
+
channelUrl: channelUrl,
|
|
1923
|
+
sdkInit: sdkInit
|
|
1924
|
+
}, {
|
|
1925
|
+
messagesDispatcher: messagesDispatcher,
|
|
1926
|
+
sdk: sdk,
|
|
1927
|
+
logger: logger
|
|
1928
|
+
}); // to set quote message as null
|
|
1929
|
+
|
|
1930
|
+
React.useEffect(function () {
|
|
1931
|
+
setQuoteMessage(null);
|
|
1932
|
+
}, [channelUrl]); // Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher
|
|
1933
|
+
|
|
1934
|
+
useHandleChannelEvents({
|
|
1935
|
+
currentGroupChannel: currentGroupChannel,
|
|
1936
|
+
sdkInit: sdkInit,
|
|
1937
|
+
hasMoreNext: hasMoreNext
|
|
1938
|
+
}, {
|
|
1939
|
+
messagesDispatcher: messagesDispatcher,
|
|
1940
|
+
sdk: sdk,
|
|
1941
|
+
logger: logger,
|
|
1942
|
+
scrollRef: scrollRef,
|
|
1943
|
+
setQuoteMessage: setQuoteMessage
|
|
1944
|
+
}); // hook that fetches messages when channel changes
|
|
1945
|
+
// to be clear here useGetChannel sets currentGroupChannel
|
|
1946
|
+
// and useInitialMessagesFetch executes when currentGroupChannel changes
|
|
1947
|
+
// p.s This one executes on initialTimeStamp change too
|
|
1948
|
+
|
|
1949
|
+
useInitialMessagesFetch({
|
|
1950
|
+
currentGroupChannel: currentGroupChannel,
|
|
1951
|
+
userFilledMessageListQuery: userFilledMessageListQuery,
|
|
1952
|
+
initialTimeStamp: initialTimeStamp,
|
|
1953
|
+
latestMessageTimeStamp: latestMessageTimeStamp,
|
|
1954
|
+
replyType: replyType
|
|
1955
|
+
}, {
|
|
1956
|
+
sdk: sdk,
|
|
1957
|
+
logger: logger,
|
|
1958
|
+
messagesDispatcher: messagesDispatcher
|
|
1959
|
+
}); // handles API calls from withSendbird
|
|
1960
|
+
|
|
1961
|
+
React.useEffect(function () {
|
|
1962
|
+
var subScriber = pubSubHandler(channelUrl, pubSub, messagesDispatcher);
|
|
1963
|
+
return function () {
|
|
1964
|
+
pubSubHandleRemover(subScriber);
|
|
1965
|
+
};
|
|
1966
|
+
}, [channelUrl, sdkInit]); // handling connection breaks
|
|
1967
|
+
|
|
1968
|
+
useHandleReconnect({
|
|
1969
|
+
isOnline: isOnline,
|
|
1970
|
+
replyType: replyType
|
|
1971
|
+
}, {
|
|
1972
|
+
logger: logger,
|
|
1973
|
+
sdk: sdk,
|
|
1974
|
+
currentGroupChannel: currentGroupChannel,
|
|
1975
|
+
messagesDispatcher: messagesDispatcher,
|
|
1976
|
+
userFilledMessageListQuery: userFilledMessageListQuery
|
|
1977
|
+
}); // callbacks for Message CURD actions
|
|
1978
|
+
|
|
1979
|
+
var deleteMessage = useDeleteMessageCallback({
|
|
1980
|
+
currentGroupChannel: currentGroupChannel,
|
|
1981
|
+
messagesDispatcher: messagesDispatcher
|
|
1982
|
+
}, {
|
|
1983
|
+
logger: logger
|
|
1984
|
+
});
|
|
1985
|
+
var updateMessage = useUpdateMessageCallback({
|
|
1986
|
+
currentGroupChannel: currentGroupChannel,
|
|
1987
|
+
messagesDispatcher: messagesDispatcher,
|
|
1988
|
+
onBeforeUpdateUserMessage: onBeforeUpdateUserMessage
|
|
1989
|
+
}, {
|
|
1990
|
+
logger: logger,
|
|
1991
|
+
sdk: sdk,
|
|
1992
|
+
pubSub: pubSub
|
|
1993
|
+
});
|
|
1994
|
+
var resendMessage = useResendMessageCallback({
|
|
1995
|
+
currentGroupChannel: currentGroupChannel,
|
|
1996
|
+
messagesDispatcher: messagesDispatcher
|
|
1997
|
+
}, {
|
|
1998
|
+
logger: logger
|
|
1999
|
+
});
|
|
2000
|
+
|
|
2001
|
+
var _k = useSendMessageCallback({
|
|
2002
|
+
currentGroupChannel: currentGroupChannel,
|
|
2003
|
+
onBeforeSendUserMessage: onBeforeSendUserMessage
|
|
2004
|
+
}, {
|
|
2005
|
+
sdk: sdk,
|
|
2006
|
+
logger: logger,
|
|
2007
|
+
pubSub: pubSub,
|
|
2008
|
+
messagesDispatcher: messagesDispatcher
|
|
2009
|
+
}),
|
|
2010
|
+
messageInputRef = _k[0],
|
|
2011
|
+
sendMessage = _k[1];
|
|
2012
|
+
|
|
2013
|
+
var sendFileMessage = useSendFileMessageCallback({
|
|
2014
|
+
currentGroupChannel: currentGroupChannel,
|
|
2015
|
+
onBeforeSendFileMessage: onBeforeSendFileMessage,
|
|
2016
|
+
imageCompression: imageCompression
|
|
2017
|
+
}, {
|
|
2018
|
+
sdk: sdk,
|
|
2019
|
+
logger: logger,
|
|
2020
|
+
pubSub: pubSub,
|
|
2021
|
+
messagesDispatcher: messagesDispatcher
|
|
2022
|
+
})[0];
|
|
2023
|
+
return /*#__PURE__*/React__default["default"].createElement(ChannelContext.Provider, {
|
|
2024
|
+
value: {
|
|
2025
|
+
// props
|
|
2026
|
+
channelUrl: channelUrl,
|
|
2027
|
+
useMessageGrouping: useMessageGrouping,
|
|
2028
|
+
useReaction: usingReaction,
|
|
2029
|
+
showSearchIcon: showSearchIcon,
|
|
2030
|
+
highlightedMessage: highlightedMessage,
|
|
2031
|
+
startingPoint: startingPoint,
|
|
2032
|
+
onBeforeSendUserMessage: onBeforeSendUserMessage,
|
|
2033
|
+
onBeforeSendFileMessage: onBeforeSendFileMessage,
|
|
2034
|
+
onBeforeUpdateUserMessage: onBeforeUpdateUserMessage,
|
|
2035
|
+
onChatHeaderActionClick: onChatHeaderActionClick,
|
|
2036
|
+
onSearchClick: onSearchClick,
|
|
2037
|
+
replyType: replyType,
|
|
2038
|
+
queries: queries,
|
|
2039
|
+
// messagesStore
|
|
2040
|
+
allMessages: allMessages,
|
|
2041
|
+
loading: loading,
|
|
2042
|
+
initialized: initialized,
|
|
2043
|
+
unreadSince: unreadSince,
|
|
2044
|
+
isInvalid: isInvalid,
|
|
2045
|
+
currentGroupChannel: currentGroupChannel,
|
|
2046
|
+
hasMorePrev: hasMorePrev,
|
|
2047
|
+
hasMoreNext: hasMoreNext,
|
|
2048
|
+
oldestMessageTimeStamp: oldestMessageTimeStamp,
|
|
2049
|
+
latestMessageTimeStamp: latestMessageTimeStamp,
|
|
2050
|
+
emojiContainer: emojiContainer,
|
|
2051
|
+
readStatus: readStatus,
|
|
2052
|
+
// utils
|
|
2053
|
+
scrollToMessage: scrollToMessage,
|
|
2054
|
+
quoteMessage: quoteMessage,
|
|
2055
|
+
setQuoteMessage: setQuoteMessage,
|
|
2056
|
+
deleteMessage: deleteMessage,
|
|
2057
|
+
updateMessage: updateMessage,
|
|
2058
|
+
resendMessage: resendMessage,
|
|
2059
|
+
messageInputRef: messageInputRef,
|
|
2060
|
+
sendMessage: sendMessage,
|
|
2061
|
+
sendFileMessage: sendFileMessage,
|
|
2062
|
+
initialTimeStamp: initialTimeStamp,
|
|
2063
|
+
messageActionTypes: messageActionTypes,
|
|
2064
|
+
messagesDispatcher: messagesDispatcher,
|
|
2065
|
+
setInitialTimeStamp: setInitialTimeStamp,
|
|
2066
|
+
setAnimatedMessageId: setAnimatedMessageId,
|
|
2067
|
+
setHighLightedMessageId: setHighLightedMessageId,
|
|
2068
|
+
animatedMessageId: animatedMessageId,
|
|
2069
|
+
highLightedMessageId: highLightedMessageId,
|
|
2070
|
+
nicknamesMap: nicknamesMap,
|
|
2071
|
+
emojiAllMap: emojiAllMap,
|
|
2072
|
+
onScrollCallback: onScrollCallback,
|
|
2073
|
+
onScrollDownCallback: onScrollDownCallback,
|
|
2074
|
+
memoizedEmojiListItems: memoizedEmojiListItems,
|
|
2075
|
+
scrollRef: scrollRef,
|
|
2076
|
+
toggleReaction: toggleReaction
|
|
2077
|
+
}
|
|
2078
|
+
}, /*#__PURE__*/React__default["default"].createElement(UserProfileContext.UserProfileProvider, {
|
|
2079
|
+
disableUserProfile: props === null || props === void 0 ? void 0 : props.disableUserProfile,
|
|
2080
|
+
renderUserProfile: props === null || props === void 0 ? void 0 : props.renderUserProfile
|
|
2081
|
+
}, children));
|
|
2082
|
+
};
|
|
2083
|
+
|
|
2084
|
+
var useChannel = function useChannel() {
|
|
2085
|
+
return React__default["default"].useContext(ChannelContext);
|
|
2086
|
+
};
|
|
2087
|
+
|
|
2088
|
+
exports.ChannelProvider = ChannelProvider;
|
|
2089
|
+
exports.MARK_AS_READ = MARK_AS_READ;
|
|
2090
|
+
exports.compareMessagesForGrouping = compareMessagesForGrouping;
|
|
2091
|
+
exports.isAboutSame = isAboutSame;
|
|
2092
|
+
exports.isDisabledBecauseFrozen = isDisabledBecauseFrozen;
|
|
2093
|
+
exports.isDisabledBecauseMuted = isDisabledBecauseMuted;
|
|
2094
|
+
exports.isOperator = isOperator;
|
|
2095
|
+
exports.useChannel = useChannel;
|
|
2096
|
+
//# sourceMappingURL=ChannelProvider-f1fb0108.js.map
|