@sendbird/uikit-react 3.5.0-rc.1 → 3.5.0
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 +312 -235
- package/App.js.map +1 -1
- package/CHANGELOG.md +544 -0
- package/Channel/components/ChannelHeader.js +46 -41
- package/Channel/components/ChannelHeader.js.map +1 -1
- package/Channel/components/ChannelUI.js +104 -131
- package/Channel/components/ChannelUI.js.map +1 -1
- package/Channel/components/FileViewer.js +56 -52
- package/Channel/components/FileViewer.js.map +1 -1
- package/Channel/components/FrozenNotification.js +12 -7
- package/Channel/components/FrozenNotification.js.map +1 -1
- package/Channel/components/Message.js +240 -230
- package/Channel/components/Message.js.map +1 -1
- package/Channel/components/MessageInput.js +152 -129
- package/Channel/components/MessageInput.js.map +1 -1
- package/Channel/components/MessageList.js +260 -175
- package/Channel/components/MessageList.js.map +1 -1
- package/Channel/components/RemoveMessageModal.js +34 -30
- package/Channel/components/RemoveMessageModal.js.map +1 -1
- package/Channel/components/SuggestedMentionList.js +139 -193
- package/Channel/components/SuggestedMentionList.js.map +1 -1
- package/Channel/components/TypingIndicator.js +44 -61
- package/Channel/components/TypingIndicator.js.map +1 -1
- package/Channel/components/UnreadCount.js +18 -20
- package/Channel/components/UnreadCount.js.map +1 -1
- package/Channel/context.js +12 -19
- package/Channel/context.js.map +1 -1
- package/Channel.js +69 -44
- package/Channel.js.map +1 -1
- package/ChannelList/components/AddChannel.js +29 -30
- package/ChannelList/components/AddChannel.js.map +1 -1
- package/ChannelList/components/ChannelListHeader.js +32 -28
- package/ChannelList/components/ChannelListHeader.js.map +1 -1
- package/ChannelList/components/ChannelListUI.js +101 -142
- package/ChannelList/components/ChannelListUI.js.map +1 -1
- package/ChannelList/components/ChannelPreview.js +72 -82
- package/ChannelList/components/ChannelPreview.js.map +1 -1
- package/ChannelList/components/ChannelPreviewAction.js +36 -36
- package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/ChannelList/context.js +7 -8
- package/ChannelList/context.js.map +1 -1
- package/ChannelList.js +32 -31
- package/ChannelList.js.map +1 -1
- package/{ChannelListProvider-1d36e2e9.js → ChannelListProvider-4cf5c0f5.js} +233 -285
- package/ChannelListProvider-4cf5c0f5.js.map +1 -0
- package/{ChannelProvider-289cd35f.js → ChannelProvider-6e8e99df.js} +659 -726
- package/ChannelProvider-6e8e99df.js.map +1 -0
- package/ChannelSettings/components/ChannelProfile.js +33 -46
- package/ChannelSettings/components/ChannelProfile.js.map +1 -1
- package/ChannelSettings/components/ChannelSettingsUI.js +45 -48
- package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/ChannelSettings/components/EditDetailsModal.js +47 -58
- package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/ChannelSettings/components/LeaveChannel.js +40 -46
- package/ChannelSettings/components/LeaveChannel.js.map +1 -1
- package/ChannelSettings/components/ModerationPanel.js +522 -605
- package/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/ChannelSettings/components/UserListItem.js +71 -72
- package/ChannelSettings/components/UserListItem.js.map +1 -1
- package/ChannelSettings/components/UserPanel.js +29 -32
- package/ChannelSettings/components/UserPanel.js.map +1 -1
- package/ChannelSettings/context.js +53 -57
- package/ChannelSettings/context.js.map +1 -1
- package/ChannelSettings.js +20 -20
- package/ChannelSettings.js.map +1 -1
- package/CreateChannel/components/CreateChannelUI.js +24 -24
- package/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/CreateChannel/components/InviteUsers.js +102 -124
- package/CreateChannel/components/InviteUsers.js.map +1 -1
- package/CreateChannel/components/SelectChannelType.js +41 -42
- package/CreateChannel/components/SelectChannelType.js.map +1 -1
- package/CreateChannel/context.js +4 -4
- package/CreateChannel.js +22 -21
- package/CreateChannel.js.map +1 -1
- package/CreateChannelProvider-34603fa5.js +44 -0
- package/CreateChannelProvider-34603fa5.js.map +1 -0
- package/CreateOpenChannel/components/CreateOpenChannelUI.js +33 -43
- package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
- package/CreateOpenChannel/context.js +33 -33
- package/CreateOpenChannel/context.js.map +1 -1
- package/CreateOpenChannel.js +18 -17
- package/CreateOpenChannel.js.map +1 -1
- package/EditUserProfile/components/EditUserProfileUI.js +12 -13
- package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
- package/EditUserProfile/context.js +0 -2
- package/EditUserProfile/context.js.map +1 -1
- package/EditUserProfile.js +18 -17
- package/EditUserProfile.js.map +1 -1
- package/LocalizationContext-04c0c9dc.js +20 -0
- package/{LocalizationContext-289c1917.js.map → LocalizationContext-04c0c9dc.js.map} +1 -1
- package/MediaQueryContext-ff9dca2b.js +87 -0
- package/MediaQueryContext-ff9dca2b.js.map +1 -0
- package/MemberList-9bf26111.js +403 -0
- package/MemberList-9bf26111.js.map +1 -0
- package/Message/context.js +31 -0
- package/Message/context.js.map +1 -0
- package/MessageSearch/components/MessageSearchUI.js +62 -71
- package/MessageSearch/components/MessageSearchUI.js.map +1 -1
- package/MessageSearch/context.js +201 -224
- package/MessageSearch/context.js.map +1 -1
- package/MessageSearch.js +46 -58
- package/MessageSearch.js.map +1 -1
- package/OpenChannel/components/FrozenChannelNotification.js +8 -6
- package/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
- package/OpenChannel/components/OpenChannelHeader.js +27 -25
- package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
- package/OpenChannel/components/OpenChannelInput.js +50 -35
- package/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessage.js +174 -191
- package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessageList.js +72 -92
- package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/OpenChannel/components/OpenChannelUI.js +52 -49
- package/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/OpenChannel/context.js +8 -9
- package/OpenChannel/context.js.map +1 -1
- package/OpenChannel.js +36 -30
- package/OpenChannel.js.map +1 -1
- package/OpenChannelList/components/OpenChannelListUI.js +61 -76
- package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
- package/OpenChannelList/components/OpenChannelPreview.js +21 -22
- package/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
- package/OpenChannelList/context.js +3 -4
- package/OpenChannelList/context.js.map +1 -1
- package/OpenChannelList.js +26 -24
- package/OpenChannelList.js.map +1 -1
- package/OpenChannelListProvider-d7372692.js +429 -0
- package/OpenChannelListProvider-d7372692.js.map +1 -0
- package/OpenChannelProvider-24cd68b9.js +1885 -0
- package/OpenChannelProvider-24cd68b9.js.map +1 -0
- package/OpenChannelSettings/components/EditDetailsModal.js +47 -56
- package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/OpenChannelSettings/components/OpenChannelProfile.js +26 -31
- package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -43
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/OpenChannelSettings/components/OperatorUI.js +516 -586
- package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/OpenChannelSettings/components/ParticipantUI.js +15 -16
- package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
- package/OpenChannelSettings/context.js +56 -69
- package/OpenChannelSettings/context.js.map +1 -1
- package/OpenChannelSettings.js +19 -20
- package/OpenChannelSettings.js.map +1 -1
- package/README.md +62 -13
- package/RemoveMessageModal-94e2bf9e.js +36 -0
- package/RemoveMessageModal-94e2bf9e.js.map +1 -0
- package/SendbirdProvider.js +749 -408
- package/SendbirdProvider.js.map +1 -1
- package/Thread/components/ParentMessageInfo.js +238 -217
- package/Thread/components/ParentMessageInfo.js.map +1 -1
- package/Thread/components/ParentMessageInfoItem.js +112 -89
- package/Thread/components/ParentMessageInfoItem.js.map +1 -1
- package/Thread/components/ThreadHeader.js +22 -23
- package/Thread/components/ThreadHeader.js.map +1 -1
- package/Thread/components/ThreadList.js +108 -83
- package/Thread/components/ThreadList.js.map +1 -1
- package/Thread/components/ThreadListItem.js +306 -276
- package/Thread/components/ThreadListItem.js.map +1 -1
- package/Thread/components/ThreadMessageInput.js +146 -113
- package/Thread/components/ThreadMessageInput.js.map +1 -1
- package/Thread/components/ThreadUI.js +169 -138
- package/Thread/components/ThreadUI.js.map +1 -1
- package/Thread/context/types.js +9 -14
- package/Thread/context/types.js.map +1 -1
- package/Thread/context.js +8 -8
- package/Thread.js +87 -57
- package/Thread.js.map +1 -1
- package/ThreadProvider-203b94f3.js +1695 -0
- package/ThreadProvider-203b94f3.js.map +1 -0
- package/{UserProfileContext-e3530842.js → UserProfileContext-c776d522.js} +1 -4
- package/{UserProfileContext-e3530842.js.map → UserProfileContext-c776d522.js.map} +1 -1
- package/VoiceMessageInputWrapper-77d8f487.js +170 -0
- package/VoiceMessageInputWrapper-77d8f487.js.map +1 -0
- package/VoicePlayer/context.js +7 -0
- package/{NotificationChannel → VoicePlayer}/context.js.map +1 -1
- package/VoicePlayer/useVoicePlayer.js +84 -0
- package/VoicePlayer/useVoicePlayer.js.map +1 -0
- package/VoiceRecorder/context.js +156 -0
- package/VoiceRecorder/context.js.map +1 -0
- package/VoiceRecorder/useVoiceRecorder.js +121 -0
- package/VoiceRecorder/useVoiceRecorder.js.map +1 -0
- package/WebAudioUtils-62e6d3a7.js +123 -0
- package/WebAudioUtils-62e6d3a7.js.map +1 -0
- package/{_rollupPluginBabelHelpers-519f674b.js → _rollupPluginBabelHelpers-fb0e05a4.js} +17 -11
- package/_rollupPluginBabelHelpers-fb0e05a4.js.map +1 -0
- package/actionTypes-1db5749d.js +8 -0
- package/actionTypes-1db5749d.js.map +1 -0
- package/cjs/App.js +312 -235
- package/cjs/App.js.map +1 -1
- package/cjs/Channel/components/ChannelHeader.js +46 -41
- package/cjs/Channel/components/ChannelHeader.js.map +1 -1
- package/cjs/Channel/components/ChannelUI.js +102 -129
- package/cjs/Channel/components/ChannelUI.js.map +1 -1
- package/cjs/Channel/components/FileViewer.js +56 -52
- package/cjs/Channel/components/FileViewer.js.map +1 -1
- package/cjs/Channel/components/FrozenNotification.js +12 -7
- package/cjs/Channel/components/FrozenNotification.js.map +1 -1
- package/cjs/Channel/components/Message.js +243 -233
- package/cjs/Channel/components/Message.js.map +1 -1
- package/cjs/Channel/components/MessageInput.js +151 -128
- package/cjs/Channel/components/MessageInput.js.map +1 -1
- package/cjs/Channel/components/MessageList.js +260 -175
- package/cjs/Channel/components/MessageList.js.map +1 -1
- package/cjs/Channel/components/RemoveMessageModal.js +34 -30
- package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
- package/cjs/Channel/components/SuggestedMentionList.js +139 -193
- package/cjs/Channel/components/SuggestedMentionList.js.map +1 -1
- package/cjs/Channel/components/TypingIndicator.js +44 -61
- package/cjs/Channel/components/TypingIndicator.js.map +1 -1
- package/cjs/Channel/components/UnreadCount.js +18 -20
- package/cjs/Channel/components/UnreadCount.js.map +1 -1
- package/cjs/Channel/context.js +12 -23
- package/cjs/Channel/context.js.map +1 -1
- package/cjs/Channel.js +69 -44
- package/cjs/Channel.js.map +1 -1
- package/cjs/ChannelList/components/AddChannel.js +29 -30
- package/cjs/ChannelList/components/AddChannel.js.map +1 -1
- package/cjs/ChannelList/components/ChannelListHeader.js +32 -28
- package/cjs/ChannelList/components/ChannelListHeader.js.map +1 -1
- package/cjs/ChannelList/components/ChannelListUI.js +100 -141
- package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreview.js +72 -82
- package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreviewAction.js +36 -36
- package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/cjs/ChannelList/context.js +7 -8
- package/cjs/ChannelList/context.js.map +1 -1
- package/cjs/ChannelList.js +32 -31
- package/cjs/ChannelList.js.map +1 -1
- package/cjs/{ChannelListProvider-0de52d2b.js → ChannelListProvider-e0ce316a.js} +232 -284
- package/cjs/ChannelListProvider-e0ce316a.js.map +1 -0
- package/cjs/{ChannelProvider-fc58e60e.js → ChannelProvider-0df75472.js} +657 -724
- package/cjs/ChannelProvider-0df75472.js.map +1 -0
- package/cjs/ChannelSettings/components/ChannelProfile.js +33 -46
- package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js +45 -48
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/cjs/ChannelSettings/components/EditDetailsModal.js +47 -58
- package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/cjs/ChannelSettings/components/LeaveChannel.js +40 -46
- package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
- package/cjs/ChannelSettings/components/ModerationPanel.js +522 -605
- package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/cjs/ChannelSettings/components/UserListItem.js +71 -72
- package/cjs/ChannelSettings/components/UserListItem.js.map +1 -1
- package/cjs/ChannelSettings/components/UserPanel.js +29 -32
- package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
- package/cjs/ChannelSettings/context.js +55 -59
- package/cjs/ChannelSettings/context.js.map +1 -1
- package/cjs/ChannelSettings.js +20 -20
- package/cjs/ChannelSettings.js.map +1 -1
- package/cjs/CreateChannel/components/CreateChannelUI.js +24 -24
- package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/cjs/CreateChannel/components/InviteUsers.js +102 -124
- package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
- package/cjs/CreateChannel/components/SelectChannelType.js +41 -42
- package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
- package/cjs/CreateChannel/context.js +4 -4
- package/cjs/CreateChannel.js +22 -21
- package/cjs/CreateChannel.js.map +1 -1
- package/cjs/CreateChannelProvider-c0fca0a5.js +52 -0
- package/cjs/CreateChannelProvider-c0fca0a5.js.map +1 -0
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +33 -43
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
- package/cjs/CreateOpenChannel/context.js +33 -33
- package/cjs/CreateOpenChannel/context.js.map +1 -1
- package/cjs/CreateOpenChannel.js +18 -17
- package/cjs/CreateOpenChannel.js.map +1 -1
- package/cjs/EditUserProfile/components/EditUserProfileUI.js +12 -13
- package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
- package/cjs/EditUserProfile/context.js +0 -2
- package/cjs/EditUserProfile/context.js.map +1 -1
- package/cjs/EditUserProfile.js +18 -17
- package/cjs/EditUserProfile.js.map +1 -1
- package/cjs/{LocalizationContext-bddc5c2b.js → LocalizationContext-0e429c3d.js} +9 -11
- package/cjs/{LocalizationContext-bddc5c2b.js.map → LocalizationContext-0e429c3d.js.map} +1 -1
- package/cjs/MediaQueryContext-33fc3b17.js +94 -0
- package/cjs/MediaQueryContext-33fc3b17.js.map +1 -0
- package/cjs/MemberList-a45a51c4.js +409 -0
- package/cjs/MemberList-a45a51c4.js.map +1 -0
- package/cjs/Message/context.js +40 -0
- package/cjs/Message/context.js.map +1 -0
- package/cjs/MessageSearch/components/MessageSearchUI.js +61 -70
- package/cjs/MessageSearch/components/MessageSearchUI.js.map +1 -1
- package/cjs/MessageSearch/context.js +201 -224
- package/cjs/MessageSearch/context.js.map +1 -1
- package/cjs/MessageSearch.js +46 -58
- package/cjs/MessageSearch.js.map +1 -1
- package/cjs/OpenChannel/components/FrozenChannelNotification.js +8 -6
- package/cjs/OpenChannel/components/FrozenChannelNotification.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelHeader.js +27 -25
- package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelInput.js +50 -35
- package/cjs/OpenChannel/components/OpenChannelInput.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessage.js +174 -191
- package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessageList.js +72 -92
- package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelUI.js +52 -49
- package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/cjs/OpenChannel/context.js +8 -9
- package/cjs/OpenChannel/context.js.map +1 -1
- package/cjs/OpenChannel.js +36 -30
- package/cjs/OpenChannel.js.map +1 -1
- package/cjs/OpenChannelList/components/OpenChannelListUI.js +61 -76
- package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
- package/cjs/OpenChannelList/components/OpenChannelPreview.js +21 -22
- package/cjs/OpenChannelList/components/OpenChannelPreview.js.map +1 -1
- package/cjs/OpenChannelList/context.js +3 -4
- package/cjs/OpenChannelList/context.js.map +1 -1
- package/cjs/OpenChannelList.js +26 -24
- package/cjs/OpenChannelList.js.map +1 -1
- package/cjs/OpenChannelListProvider-fc8b53ee.js +439 -0
- package/cjs/OpenChannelListProvider-fc8b53ee.js.map +1 -0
- package/cjs/OpenChannelProvider-217a8ac2.js +1894 -0
- package/cjs/OpenChannelProvider-217a8ac2.js.map +1 -0
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js +47 -56
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +26 -31
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +45 -43
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OperatorUI.js +516 -586
- package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -16
- package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
- package/cjs/OpenChannelSettings/context.js +57 -70
- package/cjs/OpenChannelSettings/context.js.map +1 -1
- package/cjs/OpenChannelSettings.js +19 -20
- package/cjs/OpenChannelSettings.js.map +1 -1
- package/cjs/{RemoveMessageModal-9169766a.js → RemoveMessageModal-5903f232.js} +19 -14
- package/cjs/RemoveMessageModal-5903f232.js.map +1 -0
- package/cjs/SendbirdProvider.js +748 -408
- package/cjs/SendbirdProvider.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfo.js +237 -216
- package/cjs/Thread/components/ParentMessageInfo.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfoItem.js +111 -88
- package/cjs/Thread/components/ParentMessageInfoItem.js.map +1 -1
- package/cjs/Thread/components/ThreadHeader.js +22 -23
- package/cjs/Thread/components/ThreadHeader.js.map +1 -1
- package/cjs/Thread/components/ThreadList.js +108 -83
- package/cjs/Thread/components/ThreadList.js.map +1 -1
- package/cjs/Thread/components/ThreadListItem.js +305 -275
- package/cjs/Thread/components/ThreadListItem.js.map +1 -1
- package/cjs/Thread/components/ThreadMessageInput.js +146 -113
- package/cjs/Thread/components/ThreadMessageInput.js.map +1 -1
- package/cjs/Thread/components/ThreadUI.js +170 -139
- package/cjs/Thread/components/ThreadUI.js.map +1 -1
- package/cjs/Thread/context/types.js +13 -14
- package/cjs/Thread/context/types.js.map +1 -1
- package/cjs/Thread/context.js +8 -8
- package/cjs/Thread.js +87 -57
- package/cjs/Thread.js.map +1 -1
- package/cjs/ThreadProvider-8ee179c2.js +1704 -0
- package/cjs/ThreadProvider-8ee179c2.js.map +1 -0
- package/cjs/{UserProfileContext-8d0dee57.js → UserProfileContext-87580795.js} +1 -4
- package/cjs/{UserProfileContext-8d0dee57.js.map → UserProfileContext-87580795.js.map} +1 -1
- package/cjs/VoiceMessageInputWrapper-4fdc8ef1.js +176 -0
- package/cjs/VoiceMessageInputWrapper-4fdc8ef1.js.map +1 -0
- package/cjs/VoicePlayer/context.js +17 -0
- package/cjs/{NotificationChannel → VoicePlayer}/context.js.map +1 -1
- package/cjs/VoicePlayer/useVoicePlayer.js +88 -0
- package/cjs/VoicePlayer/useVoicePlayer.js.map +1 -0
- package/cjs/VoiceRecorder/context.js +166 -0
- package/cjs/VoiceRecorder/context.js.map +1 -0
- package/cjs/VoiceRecorder/useVoiceRecorder.js +126 -0
- package/cjs/VoiceRecorder/useVoiceRecorder.js.map +1 -0
- package/cjs/WebAudioUtils-e226789c.js +126 -0
- package/cjs/WebAudioUtils-e226789c.js.map +1 -0
- package/cjs/{_rollupPluginBabelHelpers-fed1e122.js → _rollupPluginBabelHelpers-c89f311a.js} +17 -10
- package/cjs/_rollupPluginBabelHelpers-c89f311a.js.map +1 -0
- package/cjs/actionTypes-0fa2943d.js +10 -0
- package/cjs/actionTypes-0fa2943d.js.map +1 -0
- package/cjs/{color-f47044b3.js → color-bada0fc7.js} +13 -21
- package/cjs/color-bada0fc7.js.map +1 -0
- package/cjs/{compareIds-4124b297.js → compareIds-ccccfe86.js} +5 -6
- package/cjs/compareIds-ccccfe86.js.map +1 -0
- package/cjs/const-a85f3364.js +20 -0
- package/cjs/const-a85f3364.js.map +1 -0
- package/cjs/{const-fd64914b.js → const-d8cece19.js} +4 -4
- package/cjs/const-d8cece19.js.map +1 -0
- package/cjs/consts-1c3020ad.js +6 -0
- package/cjs/consts-1c3020ad.js.map +1 -0
- package/cjs/consts-1d94dc61.js +6 -0
- package/cjs/consts-1d94dc61.js.map +1 -0
- package/cjs/consts-5e0f96b3.js +41 -0
- package/cjs/consts-5e0f96b3.js.map +1 -0
- package/cjs/consts-740f60b8.js +6 -0
- package/cjs/consts-740f60b8.js.map +1 -0
- package/cjs/{context-7a0e057b.js → context-8e7e8457.js} +6 -5
- package/cjs/{context-7a0e057b.js.map → context-8e7e8457.js.map} +1 -1
- package/cjs/dist/index.css +1640 -1187
- package/cjs/dist/index.css.map +1 -1
- package/cjs/handlers/OpenChannelHandler.js.map +1 -1
- package/cjs/handlers/SessionHandler.js.map +1 -1
- package/cjs/{index-d14a43c4.js → index-016f7106.js} +1 -1
- package/cjs/{index-d14a43c4.js.map → index-016f7106.js.map} +1 -1
- package/cjs/{index-9ca07037.js → index-1613ae03.js} +29 -37
- package/cjs/index-1613ae03.js.map +1 -0
- package/cjs/index-2be14d85.js +57 -0
- package/cjs/index-2be14d85.js.map +1 -0
- package/cjs/index-3b30939e.js +79 -0
- package/cjs/index-3b30939e.js.map +1 -0
- package/cjs/index-5231fde8.js +585 -0
- package/cjs/index-5231fde8.js.map +1 -0
- package/cjs/index-648c06ed.js +330 -0
- package/cjs/index-648c06ed.js.map +1 -0
- package/cjs/{index-5d5497c2.js → index-6cb0d040.js} +11 -25
- package/cjs/index-6cb0d040.js.map +1 -0
- package/cjs/{index-c475c3c8.js → index-71fdaa1b.js} +55 -63
- package/cjs/index-71fdaa1b.js.map +1 -0
- package/cjs/{index-343cd84a.js → index-7d125728.js} +2 -2
- package/cjs/{index-343cd84a.js.map → index-7d125728.js.map} +1 -1
- package/cjs/{index-3a4f8219.js → index-7f6bbe0c.js} +42 -51
- package/cjs/index-7f6bbe0c.js.map +1 -0
- package/cjs/{index-8de8f28a.js → index-869e9a94.js} +2 -2
- package/cjs/{index-8de8f28a.js.map → index-869e9a94.js.map} +1 -1
- package/cjs/index-89d81dad.js +456 -0
- package/cjs/index-89d81dad.js.map +1 -0
- package/cjs/{index-abbc8024.js → index-8affdde5.js} +57 -3
- package/cjs/index-8affdde5.js.map +1 -0
- package/cjs/index-99f16473.js +202 -0
- package/cjs/index-99f16473.js.map +1 -0
- package/cjs/index-c9d348b6.js +367 -0
- package/cjs/index-c9d348b6.js.map +1 -0
- package/cjs/index-e8c0080f.js +161 -0
- package/cjs/index-e8c0080f.js.map +1 -0
- package/cjs/{index-c5cd589d.js → index-f570d25c.js} +1 -1
- package/cjs/index-f570d25c.js.map +1 -0
- package/cjs/index.js +84 -63
- package/cjs/index.js.map +1 -1
- package/cjs/index.module-0585715f.js +6 -0
- package/cjs/index.module-0585715f.js.map +1 -0
- package/cjs/lame.all.js +2541 -0
- package/cjs/lame.all.js.map +1 -0
- package/cjs/resolvedReplyType-67e78c63.js +32 -0
- package/cjs/resolvedReplyType-67e78c63.js.map +1 -0
- package/cjs/sendbirdSelectors.js +307 -417
- package/cjs/sendbirdSelectors.js.map +1 -1
- package/cjs/{stringSet-3e6167ef.js → stringSet-106da549.js} +112 -90
- package/cjs/stringSet-106da549.js.map +1 -0
- package/cjs/tokenize-2aa0f876.js +164 -0
- package/cjs/tokenize-2aa0f876.js.map +1 -0
- package/cjs/topics-b384e6b3.js +18 -0
- package/cjs/topics-b384e6b3.js.map +1 -0
- package/cjs/types-e0b77c8c.js +17 -0
- package/cjs/types-e0b77c8c.js.map +1 -0
- package/cjs/ui/Accordion.js +21 -24
- package/cjs/ui/Accordion.js.map +1 -1
- package/cjs/ui/AccordionGroup.js +10 -13
- package/cjs/ui/AccordionGroup.js.map +1 -1
- package/cjs/ui/AdminMessage.js +10 -13
- package/cjs/ui/AdminMessage.js.map +1 -1
- package/cjs/ui/Avatar.js +57 -79
- package/cjs/ui/Avatar.js.map +1 -1
- package/cjs/ui/Badge.js +16 -15
- package/cjs/ui/Badge.js.map +1 -1
- package/cjs/ui/BottomSheet.js +14 -12
- package/cjs/ui/BottomSheet.js.map +1 -1
- package/cjs/ui/Button.js +20 -35
- package/cjs/ui/Button.js.map +1 -1
- package/cjs/ui/ChannelAvatar.js +38 -41
- package/cjs/ui/ChannelAvatar.js.map +1 -1
- package/cjs/ui/Checkbox.js +11 -13
- package/cjs/ui/Checkbox.js.map +1 -1
- package/cjs/ui/ConnectionStatus.js +7 -5
- package/cjs/ui/ConnectionStatus.js.map +1 -1
- package/cjs/ui/ContextMenu.js +175 -199
- package/cjs/ui/ContextMenu.js.map +1 -1
- package/cjs/ui/DateSeparator.js +12 -14
- package/cjs/ui/DateSeparator.js.map +1 -1
- package/cjs/ui/EmojiReactions.js +299 -107
- package/cjs/ui/EmojiReactions.js.map +1 -1
- package/cjs/ui/FileMessageItemBody.js +22 -23
- package/cjs/ui/FileMessageItemBody.js.map +1 -1
- package/cjs/ui/FileViewer.js +36 -36
- package/cjs/ui/FileViewer.js.map +1 -1
- package/cjs/ui/Icon.js +447 -623
- package/cjs/ui/Icon.js.map +1 -1
- package/cjs/ui/IconButton.js +20 -31
- package/cjs/ui/IconButton.js.map +1 -1
- package/cjs/ui/ImageRenderer.js +34 -43
- package/cjs/ui/ImageRenderer.js.map +1 -1
- package/cjs/ui/Input.js +16 -16
- package/cjs/ui/Input.js.map +1 -1
- package/cjs/ui/Label.js +2 -2
- package/cjs/ui/LinkLabel.js +4 -3
- package/cjs/ui/LinkLabel.js.map +1 -1
- package/cjs/ui/Loader.js +10 -12
- package/cjs/ui/Loader.js.map +1 -1
- package/cjs/ui/MentionLabel.js +58 -65
- package/cjs/ui/MentionLabel.js.map +1 -1
- package/cjs/ui/MentionUserLabel.js +12 -10
- package/cjs/ui/MentionUserLabel.js.map +1 -1
- package/cjs/ui/MessageContent.js +212 -548
- package/cjs/ui/MessageContent.js.map +1 -1
- package/cjs/ui/MessageInput.js +392 -119
- package/cjs/ui/MessageInput.js.map +1 -1
- package/cjs/ui/MessageItemMenu.js +83 -83
- package/cjs/ui/MessageItemMenu.js.map +1 -1
- package/cjs/ui/MessageItemReactionMenu.js +58 -62
- package/cjs/ui/MessageItemReactionMenu.js.map +1 -1
- package/cjs/ui/MessageSearchFileItem.js +56 -51
- package/cjs/ui/MessageSearchFileItem.js.map +1 -1
- package/cjs/ui/MessageSearchItem.js +42 -41
- package/cjs/ui/MessageSearchItem.js.map +1 -1
- package/cjs/ui/MessageStatus.js +10 -11
- package/cjs/ui/MessageStatus.js.map +1 -1
- package/cjs/ui/Modal.js +52 -46
- package/cjs/ui/Modal.js.map +1 -1
- package/cjs/ui/MutedAvatarOverlay.js +10 -10
- package/cjs/ui/MutedAvatarOverlay.js.map +1 -1
- package/cjs/ui/OGMessageItemBody.js +67 -63
- package/cjs/ui/OGMessageItemBody.js.map +1 -1
- package/cjs/ui/OpenChannelAdminMessage.js +8 -7
- package/cjs/ui/OpenChannelAdminMessage.js.map +1 -1
- package/cjs/ui/OpenChannelAvatar.js +18 -17
- package/cjs/ui/OpenChannelAvatar.js.map +1 -1
- package/cjs/ui/OpenchannelConversationHeader.js +17 -13
- package/cjs/ui/OpenchannelConversationHeader.js.map +1 -1
- package/cjs/ui/OpenchannelFileMessage.js +140 -151
- package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
- package/cjs/ui/OpenchannelOGMessage.js +204 -233
- package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
- package/cjs/ui/OpenchannelThumbnailMessage.js +215 -222
- package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/cjs/ui/OpenchannelUserMessage.js +168 -178
- package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
- package/cjs/ui/PlaceHolder.js +5 -6
- package/cjs/ui/PlaceHolder.js.map +1 -1
- package/cjs/ui/PlaybackTime.js +35 -0
- package/cjs/ui/PlaybackTime.js.map +1 -0
- package/cjs/ui/ProgressBar.js +40 -0
- package/cjs/ui/ProgressBar.js.map +1 -0
- package/cjs/ui/QuoteMessage.js +50 -44
- package/cjs/ui/QuoteMessage.js.map +1 -1
- package/cjs/ui/QuoteMessageInput.js +31 -29
- package/cjs/ui/QuoteMessageInput.js.map +1 -1
- package/cjs/ui/ReactionBadge.js +13 -21
- package/cjs/ui/ReactionBadge.js.map +1 -1
- package/cjs/ui/ReactionButton.js +30 -27
- package/cjs/ui/ReactionButton.js.map +1 -1
- package/cjs/ui/SortByRow.js +14 -18
- package/cjs/ui/SortByRow.js.map +1 -1
- package/cjs/ui/TextButton.js +13 -21
- package/cjs/ui/TextButton.js.map +1 -1
- package/cjs/ui/TextMessageItemBody.js +41 -48
- package/cjs/ui/TextMessageItemBody.js.map +1 -1
- package/cjs/ui/ThreadReplies.js +25 -22
- package/cjs/ui/ThreadReplies.js.map +1 -1
- package/cjs/ui/ThumbnailMessageItemBody.js +36 -45
- package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
- package/cjs/ui/Toggle.js +202 -0
- package/cjs/ui/Toggle.js.map +1 -0
- package/cjs/ui/Tooltip.js +8 -9
- package/cjs/ui/Tooltip.js.map +1 -1
- package/cjs/ui/TooltipWrapper.js +17 -20
- package/cjs/ui/TooltipWrapper.js.map +1 -1
- package/cjs/ui/UnknownMessageItemBody.js +21 -22
- package/cjs/ui/UnknownMessageItemBody.js.map +1 -1
- package/cjs/ui/UserListItem.js +76 -76
- package/cjs/ui/UserListItem.js.map +1 -1
- package/cjs/ui/UserProfile.js +31 -29
- package/cjs/ui/UserProfile.js.map +1 -1
- package/cjs/ui/VoiceMessageItemBody.js +119 -0
- package/cjs/ui/VoiceMessageItemBody.js.map +1 -0
- package/cjs/ui/VoiceMessgeInput.js +22 -0
- package/cjs/ui/VoiceMessgeInput.js.map +1 -0
- package/cjs/ui/Word.js +31 -39
- package/cjs/ui/Word.js.map +1 -1
- package/cjs/useDirtyGetMentions-b8ca5675.js +77 -0
- package/cjs/useDirtyGetMentions-b8ca5675.js.map +1 -0
- package/cjs/useLongPress-8037894e.js +87 -0
- package/cjs/useLongPress-8037894e.js.map +1 -0
- package/cjs/useSendbirdStateContext.js +2 -3
- package/cjs/useSendbirdStateContext.js.map +1 -1
- package/cjs/utils/message/getOutgoingMessageState.js +16 -21
- package/cjs/utils/message/getOutgoingMessageState.js.map +1 -1
- package/cjs/utils/message/isVoiceMessage.js +12 -0
- package/cjs/utils/message/isVoiceMessage.js.map +1 -0
- package/cjs/{utils-5f86a394.js → utils-01ff5332.js} +3 -7
- package/cjs/{utils-5f86a394.js.map → utils-01ff5332.js.map} +1 -1
- package/cjs/utils-2edcddc8.js +35 -0
- package/cjs/utils-2edcddc8.js.map +1 -0
- package/cjs/utils-5ac3db44.js +31 -0
- package/cjs/utils-5ac3db44.js.map +1 -0
- package/cjs/{utils-374d57b4.js → utils-ad7b5b82.js} +1 -1
- package/cjs/{utils-374d57b4.js.map → utils-ad7b5b82.js.map} +1 -1
- package/cjs/uuid-12b01f73.js +15 -0
- package/cjs/{uuid-2475ef6c.js.map → uuid-12b01f73.js.map} +1 -1
- package/cjs/withSendbird.js +5 -6
- package/cjs/withSendbird.js.map +1 -1
- package/{color-163ba24d.js → color-347926b6.js} +5 -14
- package/{color-163ba24d.js.map → color-347926b6.js.map} +1 -1
- package/{compareIds-ef41eb2c.js → compareIds-3a43c11b.js} +5 -6
- package/compareIds-3a43c11b.js.map +1 -0
- package/const-18dba7a4.js +13 -0
- package/const-18dba7a4.js.map +1 -0
- package/{const-76d87f47.js → const-c608f749.js} +4 -4
- package/const-c608f749.js.map +1 -0
- package/consts-6bca01c7.js +4 -0
- package/consts-6bca01c7.js.map +1 -0
- package/consts-7a169a0f.js +4 -0
- package/consts-7a169a0f.js.map +1 -0
- package/consts-c1baf70a.js +27 -0
- package/consts-c1baf70a.js.map +1 -0
- package/consts-fb4d475a.js +4 -0
- package/consts-fb4d475a.js.map +1 -0
- package/context-786ef1a2.js +13 -0
- package/{context-10475c77.js.map → context-786ef1a2.js.map} +1 -1
- package/dist/index.css +1640 -1187
- package/dist/index.css.map +1 -1
- package/handlers/OpenChannelHandler.js.map +1 -1
- package/handlers/SessionHandler.js.map +1 -1
- package/{index-12754b45.js → index-06b854f7.js} +55 -63
- package/index-06b854f7.js.map +1 -0
- package/index-2673effb.js +360 -0
- package/index-2673effb.js.map +1 -0
- package/{index-4ebfc7a7.js → index-319984d0.js} +1 -1
- package/{index-4ebfc7a7.js.map → index-319984d0.js.map} +1 -1
- package/{index-3c013a28.js → index-4455855e.js} +2 -2
- package/{index-3c013a28.js.map → index-4455855e.js.map} +1 -1
- package/index-6663ce18.js +450 -0
- package/index-6663ce18.js.map +1 -0
- package/{index-a02da5bd.js → index-6c252d25.js} +2 -2
- package/{index-a02da5bd.js.map → index-6c252d25.js.map} +1 -1
- package/index-71a20863.js +320 -0
- package/index-71a20863.js.map +1 -0
- package/index-7d71b26c.js +154 -0
- package/index-7d71b26c.js.map +1 -0
- package/{index-2f346069.js → index-9a4e0846.js} +1 -1
- package/index-9a4e0846.js.map +1 -0
- package/{index-232388fa.js → index-9cd77b08.js} +29 -37
- package/index-9cd77b08.js.map +1 -0
- package/index-c149ea48.js +187 -0
- package/index-c149ea48.js.map +1 -0
- package/index-cf3939c6.js +76 -0
- package/index-cf3939c6.js.map +1 -0
- package/index-cf859f03.js +540 -0
- package/index-cf859f03.js.map +1 -0
- package/{index-2784bdd8.js → index-e33f7f55.js} +11 -25
- package/index-e33f7f55.js.map +1 -0
- package/{index-aea7b7d6.js → index-eabd1e7e.js} +39 -48
- package/index-eabd1e7e.js.map +1 -0
- package/index-ebb62af1.js +51 -0
- package/index-ebb62af1.js.map +1 -0
- package/{index-751f97ce.js → index-edf844f0.js} +57 -4
- package/index-edf844f0.js.map +1 -0
- package/index.d.ts +176 -124
- package/index.js +84 -63
- package/index.js.map +1 -1
- package/index.module-6b7ed635.js +4 -0
- package/index.module-6b7ed635.js.map +1 -0
- package/lame.all.js +2537 -0
- package/lame.all.js.map +1 -0
- package/package.json +62 -41
- package/resolvedReplyType-8776d777.js +29 -0
- package/resolvedReplyType-8776d777.js.map +1 -0
- package/sendbirdSelectors.js +307 -417
- package/sendbirdSelectors.js.map +1 -1
- package/{stringSet-9ae71b7d.js → stringSet-e0ee1265.js} +112 -90
- package/stringSet-e0ee1265.js.map +1 -0
- package/tokenize-1b053c86.js +159 -0
- package/tokenize-1b053c86.js.map +1 -0
- package/topics-70f569e9.js +16 -0
- package/topics-70f569e9.js.map +1 -0
- package/types-77bbdda6.js +15 -0
- package/types-77bbdda6.js.map +1 -0
- package/ui/Accordion.js +21 -24
- package/ui/Accordion.js.map +1 -1
- package/ui/AccordionGroup.js +10 -13
- package/ui/AccordionGroup.js.map +1 -1
- package/ui/AdminMessage.js +10 -13
- package/ui/AdminMessage.js.map +1 -1
- package/ui/Avatar.js +57 -79
- package/ui/Avatar.js.map +1 -1
- package/ui/Badge.js +16 -15
- package/ui/Badge.js.map +1 -1
- package/ui/BottomSheet.js +14 -12
- package/ui/BottomSheet.js.map +1 -1
- package/ui/Button.js +20 -35
- package/ui/Button.js.map +1 -1
- package/ui/ChannelAvatar.js +38 -41
- package/ui/ChannelAvatar.js.map +1 -1
- package/ui/Checkbox.js +11 -13
- package/ui/Checkbox.js.map +1 -1
- package/ui/ConnectionStatus.js +7 -5
- package/ui/ConnectionStatus.js.map +1 -1
- package/ui/ContextMenu.js +176 -200
- package/ui/ContextMenu.js.map +1 -1
- package/ui/DateSeparator.js +12 -14
- package/ui/DateSeparator.js.map +1 -1
- package/ui/EmojiReactions.js +300 -108
- package/ui/EmojiReactions.js.map +1 -1
- package/ui/FileMessageItemBody.js +22 -23
- package/ui/FileMessageItemBody.js.map +1 -1
- package/ui/FileViewer.js +36 -36
- package/ui/FileViewer.js.map +1 -1
- package/ui/Icon.js +448 -622
- package/ui/Icon.js.map +1 -1
- package/ui/IconButton.js +20 -31
- package/ui/IconButton.js.map +1 -1
- package/ui/ImageRenderer.js +34 -43
- package/ui/ImageRenderer.js.map +1 -1
- package/ui/Input.js +16 -16
- package/ui/Input.js.map +1 -1
- package/ui/Label.js +2 -2
- package/ui/LinkLabel.js +4 -3
- package/ui/LinkLabel.js.map +1 -1
- package/ui/Loader.js +10 -12
- package/ui/Loader.js.map +1 -1
- package/ui/MentionLabel.js +58 -65
- package/ui/MentionLabel.js.map +1 -1
- package/ui/MentionUserLabel.js +12 -10
- package/ui/MentionUserLabel.js.map +1 -1
- package/ui/MessageContent.js +215 -551
- package/ui/MessageContent.js.map +1 -1
- package/ui/MessageInput.js +392 -120
- package/ui/MessageInput.js.map +1 -1
- package/ui/MessageItemMenu.js +83 -83
- package/ui/MessageItemMenu.js.map +1 -1
- package/ui/MessageItemReactionMenu.js +58 -62
- package/ui/MessageItemReactionMenu.js.map +1 -1
- package/ui/MessageSearchFileItem.js +55 -50
- package/ui/MessageSearchFileItem.js.map +1 -1
- package/ui/MessageSearchItem.js +41 -40
- package/ui/MessageSearchItem.js.map +1 -1
- package/ui/MessageStatus.js +10 -11
- package/ui/MessageStatus.js.map +1 -1
- package/ui/Modal.js +52 -46
- package/ui/Modal.js.map +1 -1
- package/ui/MutedAvatarOverlay.js +10 -10
- package/ui/MutedAvatarOverlay.js.map +1 -1
- package/ui/OGMessageItemBody.js +68 -64
- package/ui/OGMessageItemBody.js.map +1 -1
- package/ui/OpenChannelAdminMessage.js +8 -7
- package/ui/OpenChannelAdminMessage.js.map +1 -1
- package/ui/OpenChannelAvatar.js +18 -17
- package/ui/OpenChannelAvatar.js.map +1 -1
- package/ui/OpenchannelConversationHeader.js +17 -13
- package/ui/OpenchannelConversationHeader.js.map +1 -1
- package/ui/OpenchannelFileMessage.js +140 -151
- package/ui/OpenchannelFileMessage.js.map +1 -1
- package/ui/OpenchannelOGMessage.js +204 -233
- package/ui/OpenchannelOGMessage.js.map +1 -1
- package/ui/OpenchannelThumbnailMessage.js +215 -222
- package/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/ui/OpenchannelUserMessage.js +168 -178
- package/ui/OpenchannelUserMessage.js.map +1 -1
- package/ui/PlaceHolder.js +5 -6
- package/ui/PlaceHolder.js.map +1 -1
- package/ui/PlaybackTime.js +26 -0
- package/ui/PlaybackTime.js.map +1 -0
- package/ui/ProgressBar.js +30 -0
- package/ui/ProgressBar.js.map +1 -0
- package/ui/QuoteMessage.js +50 -44
- package/ui/QuoteMessage.js.map +1 -1
- package/ui/QuoteMessageInput.js +31 -29
- package/ui/QuoteMessageInput.js.map +1 -1
- package/ui/ReactionBadge.js +13 -21
- package/ui/ReactionBadge.js.map +1 -1
- package/ui/ReactionButton.js +30 -27
- package/ui/ReactionButton.js.map +1 -1
- package/ui/SortByRow.js +14 -18
- package/ui/SortByRow.js.map +1 -1
- package/ui/TextButton.js +13 -21
- package/ui/TextButton.js.map +1 -1
- package/ui/TextMessageItemBody.js +41 -48
- package/ui/TextMessageItemBody.js.map +1 -1
- package/ui/ThreadReplies.js +25 -22
- package/ui/ThreadReplies.js.map +1 -1
- package/ui/ThumbnailMessageItemBody.js +36 -45
- package/ui/ThumbnailMessageItemBody.js.map +1 -1
- package/ui/Toggle.js +191 -0
- package/ui/Toggle.js.map +1 -0
- package/ui/Tooltip.js +8 -9
- package/ui/Tooltip.js.map +1 -1
- package/ui/TooltipWrapper.js +17 -20
- package/ui/TooltipWrapper.js.map +1 -1
- package/ui/UnknownMessageItemBody.js +21 -22
- package/ui/UnknownMessageItemBody.js.map +1 -1
- package/ui/UserListItem.js +76 -76
- package/ui/UserListItem.js.map +1 -1
- package/ui/UserProfile.js +31 -29
- package/ui/UserProfile.js.map +1 -1
- package/ui/VoiceMessageItemBody.js +110 -0
- package/ui/VoiceMessageItemBody.js.map +1 -0
- package/ui/VoiceMessgeInput.js +14 -0
- package/ui/VoiceMessgeInput.js.map +1 -0
- package/ui/Word.js +31 -39
- package/ui/Word.js.map +1 -1
- package/useDirtyGetMentions-f00f1f94.js +75 -0
- package/useDirtyGetMentions-f00f1f94.js.map +1 -0
- package/useLongPress-1ab49410.js +85 -0
- package/useLongPress-1ab49410.js.map +1 -0
- package/useSendbirdStateContext.js +2 -3
- package/useSendbirdStateContext.js.map +1 -1
- package/utils/message/getOutgoingMessageState.js +9 -15
- package/utils/message/getOutgoingMessageState.js.map +1 -1
- package/utils/message/isVoiceMessage.js +8 -0
- package/utils/message/isVoiceMessage.js.map +1 -0
- package/{utils-ea66f822.js → utils-56cb7de5.js} +1 -1
- package/{utils-ea66f822.js.map → utils-56cb7de5.js.map} +1 -1
- package/utils-77f7e8b2.js +29 -0
- package/utils-77f7e8b2.js.map +1 -0
- package/{utils-ddb0df4c.js → utils-7f3d0d8c.js} +3 -7
- package/{utils-ddb0df4c.js.map → utils-7f3d0d8c.js.map} +1 -1
- package/utils-af9b1c06.js +31 -0
- package/utils-af9b1c06.js.map +1 -0
- package/uuid-92d22300.js +13 -0
- package/{uuid-7e004f47.js.map → uuid-92d22300.js.map} +1 -1
- package/withSendbird.js +5 -6
- package/withSendbird.js.map +1 -1
- package/ChannelListProvider-1d36e2e9.js.map +0 -1
- package/ChannelProvider-289cd35f.js.map +0 -1
- package/CreateChannelProvider-72b655e9.js +0 -55
- package/CreateChannelProvider-72b655e9.js.map +0 -1
- package/LocalizationContext-289c1917.js +0 -22
- package/MediaQueryContext-273d29f6.js +0 -90
- package/MediaQueryContext-273d29f6.js.map +0 -1
- package/MemberList-7ad0fa0b.js +0 -435
- package/MemberList-7ad0fa0b.js.map +0 -1
- package/NotificationChannel/components/NotificationChannelUI.js +0 -119
- package/NotificationChannel/components/NotificationChannelUI.js.map +0 -1
- package/NotificationChannel/components/NotificationList.js +0 -111
- package/NotificationChannel/components/NotificationList.js.map +0 -1
- package/NotificationChannel/components/NotificationMessageWrap.js +0 -136
- package/NotificationChannel/components/NotificationMessageWrap.js.map +0 -1
- package/NotificationChannel/context.js +0 -12
- package/NotificationChannel.js +0 -58
- package/NotificationChannel.js.map +0 -1
- package/NotificationChannelProvider-ad556c64.js +0 -535
- package/NotificationChannelProvider-ad556c64.js.map +0 -1
- package/OpenChannelListProvider-0febf8b2.js +0 -434
- package/OpenChannelListProvider-0febf8b2.js.map +0 -1
- package/OpenChannelProvider-c254c663.js +0 -2000
- package/OpenChannelProvider-c254c663.js.map +0 -1
- package/RemoveMessageModal-d6cbf9fa.js +0 -31
- package/RemoveMessageModal-d6cbf9fa.js.map +0 -1
- package/ThreadProvider-8696ef31.js +0 -1644
- package/ThreadProvider-8696ef31.js.map +0 -1
- package/_rollupPluginBabelHelpers-519f674b.js.map +0 -1
- package/actionTypes-9f87e87f.js +0 -6
- package/actionTypes-9f87e87f.js.map +0 -1
- package/cjs/ChannelListProvider-0de52d2b.js.map +0 -1
- package/cjs/ChannelProvider-fc58e60e.js.map +0 -1
- package/cjs/CreateChannelProvider-a82d20f4.js +0 -62
- package/cjs/CreateChannelProvider-a82d20f4.js.map +0 -1
- package/cjs/MediaQueryContext-4711a81f.js +0 -97
- package/cjs/MediaQueryContext-4711a81f.js.map +0 -1
- package/cjs/MemberList-b2623166.js +0 -441
- package/cjs/MemberList-b2623166.js.map +0 -1
- package/cjs/NotificationChannel/components/NotificationChannelUI.js +0 -125
- package/cjs/NotificationChannel/components/NotificationChannelUI.js.map +0 -1
- package/cjs/NotificationChannel/components/NotificationList.js +0 -117
- package/cjs/NotificationChannel/components/NotificationList.js.map +0 -1
- package/cjs/NotificationChannel/components/NotificationMessageWrap.js +0 -142
- package/cjs/NotificationChannel/components/NotificationMessageWrap.js.map +0 -1
- package/cjs/NotificationChannel/context.js +0 -21
- package/cjs/NotificationChannel.js +0 -64
- package/cjs/NotificationChannel.js.map +0 -1
- package/cjs/NotificationChannelProvider-2cdc7ff4.js +0 -543
- package/cjs/NotificationChannelProvider-2cdc7ff4.js.map +0 -1
- package/cjs/OpenChannelListProvider-60bc3c69.js +0 -443
- package/cjs/OpenChannelListProvider-60bc3c69.js.map +0 -1
- package/cjs/OpenChannelProvider-3ed4eb6e.js +0 -2009
- package/cjs/OpenChannelProvider-3ed4eb6e.js.map +0 -1
- package/cjs/RemoveMessageModal-9169766a.js.map +0 -1
- package/cjs/ThreadProvider-389f5031.js +0 -1653
- package/cjs/ThreadProvider-389f5031.js.map +0 -1
- package/cjs/_rollupPluginBabelHelpers-fed1e122.js.map +0 -1
- package/cjs/actionTypes-2f90e726.js +0 -10
- package/cjs/actionTypes-2f90e726.js.map +0 -1
- package/cjs/color-f47044b3.js.map +0 -1
- package/cjs/compareIds-4124b297.js.map +0 -1
- package/cjs/const-015e5589.js +0 -20
- package/cjs/const-015e5589.js.map +0 -1
- package/cjs/const-fd64914b.js.map +0 -1
- package/cjs/index-30c97863.js +0 -194
- package/cjs/index-30c97863.js.map +0 -1
- package/cjs/index-3a4f8219.js.map +0 -1
- package/cjs/index-40e4653a.js +0 -59
- package/cjs/index-40e4653a.js.map +0 -1
- package/cjs/index-5d5497c2.js.map +0 -1
- package/cjs/index-62c1bdfc.js +0 -701
- package/cjs/index-62c1bdfc.js.map +0 -1
- package/cjs/index-9ca07037.js.map +0 -1
- package/cjs/index-9f3670d0.js +0 -360
- package/cjs/index-9f3670d0.js.map +0 -1
- package/cjs/index-abbc8024.js.map +0 -1
- package/cjs/index-c475c3c8.js.map +0 -1
- package/cjs/index-c5cd589d.js.map +0 -1
- package/cjs/stringSet-3e6167ef.js.map +0 -1
- package/cjs/topics-56842e14.js +0 -22
- package/cjs/topics-56842e14.js.map +0 -1
- package/cjs/tslib.es6-b8ba50ef.js +0 -110
- package/cjs/tslib.es6-b8ba50ef.js.map +0 -1
- package/cjs/useLongPress-99c66f7f.js +0 -118
- package/cjs/useLongPress-99c66f7f.js.map +0 -1
- package/cjs/utils-9adfd244.js +0 -38
- package/cjs/utils-9adfd244.js.map +0 -1
- package/cjs/utils-f6a96ebf.js +0 -32
- package/cjs/utils-f6a96ebf.js.map +0 -1
- package/cjs/uuid-2475ef6c.js +0 -19
- package/compareIds-ef41eb2c.js.map +0 -1
- package/const-76d87f47.js.map +0 -1
- package/const-da6f3d34.js +0 -14
- package/const-da6f3d34.js.map +0 -1
- package/context-10475c77.js +0 -12
- package/index-12754b45.js.map +0 -1
- package/index-1e46e582.js +0 -179
- package/index-1e46e582.js.map +0 -1
- package/index-232388fa.js.map +0 -1
- package/index-2784bdd8.js.map +0 -1
- package/index-2f346069.js.map +0 -1
- package/index-4637b0de.js +0 -57
- package/index-4637b0de.js.map +0 -1
- package/index-4900e890.js +0 -353
- package/index-4900e890.js.map +0 -1
- package/index-751f97ce.js.map +0 -1
- package/index-855ef33d.js +0 -662
- package/index-855ef33d.js.map +0 -1
- package/index-aea7b7d6.js.map +0 -1
- package/stringSet-9ae71b7d.js.map +0 -1
- package/topics-e2963bba.js +0 -13
- package/topics-e2963bba.js.map +0 -1
- package/tslib.es6-72df3331.js +0 -104
- package/tslib.es6-72df3331.js.map +0 -1
- package/useLongPress-1a777e9e.js +0 -116
- package/useLongPress-1a777e9e.js.map +0 -1
- package/utils-2976f2c1.js +0 -30
- package/utils-2976f2c1.js.map +0 -1
- package/utils-6b69fb18.js +0 -34
- package/utils-6b69fb18.js.map +0 -1
- package/uuid-7e004f47.js +0 -17
|
@@ -1,20 +1,17 @@
|
|
|
1
|
-
import React__default, { useEffect, useCallback, useRef,
|
|
2
|
-
import { U as UserProfileProvider } from './UserProfileContext-
|
|
1
|
+
import React__default, { useEffect, useCallback, useRef, useState, useReducer, useMemo } from 'react';
|
|
2
|
+
import { U as UserProfileProvider } from './UserProfileContext-c776d522.js';
|
|
3
3
|
import useSendbirdStateContext from './useSendbirdStateContext.js';
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import './
|
|
8
|
-
import { _ as _objectSpread2 } from './_rollupPluginBabelHelpers-
|
|
9
|
-
import { c as compareIds } from './compareIds-
|
|
10
|
-
import { N as NEXT_RESULT_SIZE, P as PREV_RESULT_SIZE } from './const-da6f3d34.js';
|
|
4
|
+
import { N as NEXT_RESULT_SIZE, P as PREV_RESULT_SIZE, T as ThreadReplySelectType } from './const-18dba7a4.js';
|
|
5
|
+
import { f as format } from './index-4455855e.js';
|
|
6
|
+
import { P as PUBSUB_TOPICS } from './topics-70f569e9.js';
|
|
7
|
+
import { a as getSendingMessageStatus, b as isReadMessage, c as filterMessageListParams } from './index-cf859f03.js';
|
|
8
|
+
import { _ as _objectSpread2 } from './_rollupPluginBabelHelpers-fb0e05a4.js';
|
|
9
|
+
import { c as compareIds } from './compareIds-3a43c11b.js';
|
|
11
10
|
import { GroupChannelHandler } from '@sendbird/chat/groupChannel';
|
|
12
|
-
import { u as uuidv4 } from './uuid-
|
|
13
|
-
import { ReplyType } from '@sendbird/chat/message';
|
|
14
|
-
import {
|
|
15
|
-
import
|
|
16
|
-
import ImageRenderer from './ui/ImageRenderer.js';
|
|
17
|
-
import Icon, { IconTypes } from './ui/Icon.js';
|
|
11
|
+
import { u as uuidv4 } from './uuid-92d22300.js';
|
|
12
|
+
import { ReplyType, MessageMetaArray } from '@sendbird/chat/message';
|
|
13
|
+
import { b as VOICE_MESSAGE_FILE_NAME, c as VOICE_MESSAGE_MIME_TYPE, M as META_ARRAY_VOICE_DURATION_KEY, d as META_ARRAY_MESSAGE_TYPE_KEY, e as META_ARRAY_MESSAGE_TYPE_VALUE__VOICE } from './consts-c1baf70a.js';
|
|
14
|
+
import { a as getCaseResolvedThreadReplySelectType } from './resolvedReplyType-8776d777.js';
|
|
18
15
|
|
|
19
16
|
const RESET_MESSAGES = 'RESET_MESSAGES';
|
|
20
17
|
const FETCH_INITIAL_MESSAGES_START = 'FETCH_INITIAL_MESSAGES_START';
|
|
@@ -73,19 +70,37 @@ const {
|
|
|
73
70
|
FAILED,
|
|
74
71
|
PENDING
|
|
75
72
|
} = getSendingMessageStatus();
|
|
73
|
+
const scrollToRenderedMessage = (scrollRef, initialTimeStamp) => {
|
|
74
|
+
try {
|
|
75
|
+
var _container$querySelec;
|
|
76
|
+
const container = scrollRef.current;
|
|
77
|
+
// scroll into the message with initialTimeStamp
|
|
78
|
+
const element = (_container$querySelec = container.querySelectorAll(`[data-sb-created-at="${initialTimeStamp}"]`)) === null || _container$querySelec === void 0 ? void 0 : _container$querySelec[0];
|
|
79
|
+
if (element) {
|
|
80
|
+
// Calculate the offset of the element from the top of the container
|
|
81
|
+
const containerHeight = container.offsetHeight;
|
|
82
|
+
const elementHeight = element.offsetHeight;
|
|
83
|
+
const elementOffset = (containerHeight - elementHeight) / 2;
|
|
84
|
+
// Set the scroll position of the container to bring the element to the middle
|
|
85
|
+
container.scrollTop = element.offsetTop - elementOffset;
|
|
86
|
+
}
|
|
87
|
+
} catch (_unused) {
|
|
88
|
+
// do nothing
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
/* eslint-disable default-param-last */
|
|
76
93
|
const scrollIntoLast = function () {
|
|
77
94
|
let initialTry = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;
|
|
78
95
|
let scrollRef = arguments.length > 1 ? arguments[1] : undefined;
|
|
79
96
|
const MAX_TRIES = 10;
|
|
80
97
|
const currentTry = initialTry;
|
|
81
|
-
|
|
82
98
|
if (currentTry > MAX_TRIES) {
|
|
83
99
|
return;
|
|
84
100
|
}
|
|
85
|
-
|
|
86
101
|
try {
|
|
87
|
-
const scrollDOM = (scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) || document.querySelector('.sendbird-conversation__messages-padding');
|
|
88
|
-
|
|
102
|
+
const scrollDOM = (scrollRef === null || scrollRef === void 0 ? void 0 : scrollRef.current) || document.querySelector('.sendbird-conversation__messages-padding');
|
|
103
|
+
// eslint-disable-next-line no-multi-assign
|
|
89
104
|
scrollDOM.scrollTop = scrollDOM.scrollHeight;
|
|
90
105
|
} catch (error) {
|
|
91
106
|
setTimeout(() => {
|
|
@@ -97,7 +112,8 @@ const pubSubHandleRemover = subscriber => {
|
|
|
97
112
|
subscriber.forEach(s => {
|
|
98
113
|
try {
|
|
99
114
|
s.remove();
|
|
100
|
-
} catch (
|
|
115
|
+
} catch (_unused2) {
|
|
116
|
+
//
|
|
101
117
|
}
|
|
102
118
|
});
|
|
103
119
|
};
|
|
@@ -110,13 +126,12 @@ const pubSubHandler = _ref => {
|
|
|
110
126
|
} = _ref;
|
|
111
127
|
const subscriber = new Map();
|
|
112
128
|
if (!pubSub || !pubSub.subscribe) return subscriber;
|
|
113
|
-
subscriber.set(SEND_USER_MESSAGE, pubSub.subscribe(SEND_USER_MESSAGE, msg => {
|
|
129
|
+
subscriber.set(PUBSUB_TOPICS.SEND_USER_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.SEND_USER_MESSAGE, msg => {
|
|
114
130
|
const {
|
|
115
131
|
channel,
|
|
116
132
|
message
|
|
117
133
|
} = msg;
|
|
118
134
|
scrollIntoLast(0, scrollRef);
|
|
119
|
-
|
|
120
135
|
if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
|
|
121
136
|
dispatcher({
|
|
122
137
|
type: SEND_MESSAGEGE_SUCESS,
|
|
@@ -124,12 +139,11 @@ const pubSubHandler = _ref => {
|
|
|
124
139
|
});
|
|
125
140
|
}
|
|
126
141
|
}));
|
|
127
|
-
subscriber.set(SEND_MESSAGE_START, pubSub.subscribe(SEND_MESSAGE_START, msg => {
|
|
142
|
+
subscriber.set(PUBSUB_TOPICS.SEND_MESSAGE_START, pubSub.subscribe(PUBSUB_TOPICS.SEND_MESSAGE_START, msg => {
|
|
128
143
|
const {
|
|
129
144
|
channel,
|
|
130
145
|
message
|
|
131
146
|
} = msg;
|
|
132
|
-
|
|
133
147
|
if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
|
|
134
148
|
dispatcher({
|
|
135
149
|
type: SEND_MESSAGEGE_START,
|
|
@@ -137,13 +151,12 @@ const pubSubHandler = _ref => {
|
|
|
137
151
|
});
|
|
138
152
|
}
|
|
139
153
|
}));
|
|
140
|
-
subscriber.set(SEND_FILE_MESSAGE, pubSub.subscribe(SEND_FILE_MESSAGE, msg => {
|
|
154
|
+
subscriber.set(PUBSUB_TOPICS.SEND_FILE_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.SEND_FILE_MESSAGE, msg => {
|
|
141
155
|
const {
|
|
142
156
|
channel,
|
|
143
157
|
message
|
|
144
158
|
} = msg;
|
|
145
159
|
scrollIntoLast(0, scrollRef);
|
|
146
|
-
|
|
147
160
|
if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
|
|
148
161
|
dispatcher({
|
|
149
162
|
type: SEND_MESSAGEGE_SUCESS,
|
|
@@ -151,13 +164,12 @@ const pubSubHandler = _ref => {
|
|
|
151
164
|
});
|
|
152
165
|
}
|
|
153
166
|
}));
|
|
154
|
-
subscriber.set(UPDATE_USER_MESSAGE, pubSub.subscribe(UPDATE_USER_MESSAGE, msg => {
|
|
167
|
+
subscriber.set(PUBSUB_TOPICS.UPDATE_USER_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.UPDATE_USER_MESSAGE, msg => {
|
|
155
168
|
const {
|
|
156
169
|
channel,
|
|
157
170
|
message,
|
|
158
171
|
fromSelector
|
|
159
172
|
} = msg;
|
|
160
|
-
|
|
161
173
|
if (fromSelector && channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
|
|
162
174
|
dispatcher({
|
|
163
175
|
type: ON_MESSAGE_UPDATED,
|
|
@@ -168,12 +180,11 @@ const pubSubHandler = _ref => {
|
|
|
168
180
|
});
|
|
169
181
|
}
|
|
170
182
|
}));
|
|
171
|
-
subscriber.set(DELETE_MESSAGE, pubSub.subscribe(DELETE_MESSAGE, msg => {
|
|
183
|
+
subscriber.set(PUBSUB_TOPICS.DELETE_MESSAGE, pubSub.subscribe(PUBSUB_TOPICS.DELETE_MESSAGE, msg => {
|
|
172
184
|
const {
|
|
173
185
|
channel,
|
|
174
186
|
messageId
|
|
175
187
|
} = msg;
|
|
176
|
-
|
|
177
188
|
if (channelUrl === (channel === null || channel === void 0 ? void 0 : channel.url)) {
|
|
178
189
|
dispatcher({
|
|
179
190
|
type: ON_MESSAGE_DELETED,
|
|
@@ -198,37 +209,16 @@ const isDisabledBecauseMuted = function () {
|
|
|
198
209
|
const myMutedState = groupChannel === null || groupChannel === void 0 ? void 0 : groupChannel.myMutedState;
|
|
199
210
|
return myMutedState === 'muted';
|
|
200
211
|
};
|
|
201
|
-
const getAllEmojisFromEmojiContainer = function () {
|
|
202
|
-
let emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
203
|
-
const {
|
|
204
|
-
emojiCategories = []
|
|
205
|
-
} = emojiContainer;
|
|
206
|
-
const allEmojis = [];
|
|
207
|
-
|
|
208
|
-
for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {
|
|
209
|
-
const {
|
|
210
|
-
emojis
|
|
211
|
-
} = emojiCategories[categoryIndex];
|
|
212
|
-
|
|
213
|
-
for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {
|
|
214
|
-
allEmojis.push(emojis[emojiIndex]);
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
return allEmojis;
|
|
219
|
-
};
|
|
220
212
|
const getAllEmojisMapFromEmojiContainer = function () {
|
|
221
213
|
let emojiContainer = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
222
214
|
const {
|
|
223
215
|
emojiCategories = []
|
|
224
216
|
} = emojiContainer;
|
|
225
217
|
const allEmojisMap = new Map();
|
|
226
|
-
|
|
227
218
|
for (let categoryIndex = 0; categoryIndex < emojiCategories.length; categoryIndex += 1) {
|
|
228
219
|
const {
|
|
229
220
|
emojis
|
|
230
221
|
} = emojiCategories[categoryIndex];
|
|
231
|
-
|
|
232
222
|
for (let emojiIndex = 0; emojiIndex < emojis.length; emojiIndex += 1) {
|
|
233
223
|
const {
|
|
234
224
|
key,
|
|
@@ -237,13 +227,11 @@ const getAllEmojisMapFromEmojiContainer = function () {
|
|
|
237
227
|
allEmojisMap.set(key, url);
|
|
238
228
|
}
|
|
239
229
|
}
|
|
240
|
-
|
|
241
230
|
return allEmojisMap;
|
|
242
231
|
};
|
|
243
232
|
const getNicknamesMapFromMembers = function () {
|
|
244
233
|
let members = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
245
234
|
const nicknamesMap = new Map();
|
|
246
|
-
|
|
247
235
|
for (let memberIndex = 0; memberIndex < members.length; memberIndex += 1) {
|
|
248
236
|
const {
|
|
249
237
|
userId,
|
|
@@ -251,24 +239,39 @@ const getNicknamesMapFromMembers = function () {
|
|
|
251
239
|
} = members[memberIndex];
|
|
252
240
|
nicknamesMap.set(userId, nickname);
|
|
253
241
|
}
|
|
254
|
-
|
|
255
242
|
return nicknamesMap;
|
|
256
243
|
};
|
|
244
|
+
const getUniqueListBy = (arr, key) => [...new Map(arr.map(item => [item[key], item])).values()];
|
|
245
|
+
const getUniqueListByMessageId = arr => getUniqueListBy(arr, 'messageId');
|
|
246
|
+
const sortByCreatedAt = messages => messages.sort((a, b) => a.createdAt - b.createdAt);
|
|
247
|
+
const mergeAndSortMessages = (oldMessages, newMessages) => {
|
|
248
|
+
const lastOldMessage = oldMessages[oldMessages.length - 1];
|
|
249
|
+
const firstNewMessage = newMessages[0];
|
|
250
|
+
// If the last message of oldMessages is older than the first message of newMessages,
|
|
251
|
+
// then we can safely append newMessages to oldMessages.
|
|
252
|
+
if ((lastOldMessage === null || lastOldMessage === void 0 ? void 0 : lastOldMessage.createdAt) < (firstNewMessage === null || firstNewMessage === void 0 ? void 0 : firstNewMessage.createdAt)) {
|
|
253
|
+
return [...oldMessages, ...newMessages];
|
|
254
|
+
}
|
|
255
|
+
|
|
256
|
+
// todo: optimize this
|
|
257
|
+
// If the last message of oldMessages is newer than the first message of newMessages,
|
|
258
|
+
// then we need to merge the two arrays and sort them by createdAt.
|
|
259
|
+
const mergedMessages = [...oldMessages, ...newMessages];
|
|
260
|
+
const unique = getUniqueListByMessageId(mergedMessages);
|
|
261
|
+
return sortByCreatedAt(unique);
|
|
262
|
+
};
|
|
257
263
|
const getMessageCreatedAt = message => format(message.createdAt, 'p');
|
|
258
264
|
const isSameGroup = (message, comparingMessage, currentChannel) => {
|
|
259
265
|
var _message$sender, _comparingMessage$sen, _message$sender2, _comparingMessage$sen2;
|
|
260
|
-
|
|
261
266
|
if (!(message && comparingMessage && message.messageType && message.messageType !== 'admin' && comparingMessage.messageType && (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)) {
|
|
262
267
|
return false;
|
|
263
268
|
}
|
|
264
|
-
|
|
265
269
|
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) && isReadMessage(currentChannel, message) === isReadMessage(currentChannel, comparingMessage);
|
|
266
270
|
};
|
|
267
271
|
const compareMessagesForGrouping = (prevMessage, currMessage, nextMessage, currentChannel, replyType) => {
|
|
268
272
|
if (replyType === 'THREAD' && currMessage !== null && currMessage !== void 0 && currMessage.threadInfo) {
|
|
269
273
|
return [false, false];
|
|
270
274
|
}
|
|
271
|
-
|
|
272
275
|
const sendingStatus = (currMessage === null || currMessage === void 0 ? void 0 : currMessage.sendingStatus) || '';
|
|
273
276
|
const isAcceptable = sendingStatus !== 'pending' && sendingStatus !== 'failed';
|
|
274
277
|
return [isSameGroup(prevMessage, currMessage, currentChannel) && isAcceptable, isSameGroup(currMessage, nextMessage, currentChannel) && isAcceptable];
|
|
@@ -277,36 +280,45 @@ const passUnsuccessfullMessages = (allMessages, newMessage) => {
|
|
|
277
280
|
const {
|
|
278
281
|
sendingStatus = UNDEFINED
|
|
279
282
|
} = newMessage;
|
|
280
|
-
|
|
281
283
|
if (sendingStatus === SUCCEEDED$1 || sendingStatus === PENDING) {
|
|
282
284
|
const lastIndexOfSucceededMessage = allMessages.map(message => message.sendingStatus || (message.isAdminMessage && message.isAdminMessage() ? SUCCEEDED$1 : UNDEFINED)).lastIndexOf(SUCCEEDED$1);
|
|
283
|
-
|
|
284
285
|
if (lastIndexOfSucceededMessage + 1 < allMessages.length) {
|
|
285
286
|
const messages = [...allMessages];
|
|
286
287
|
messages.splice(lastIndexOfSucceededMessage + 1, 0, newMessage);
|
|
287
288
|
return messages;
|
|
288
289
|
}
|
|
289
290
|
}
|
|
290
|
-
|
|
291
291
|
return [...allMessages, newMessage];
|
|
292
292
|
};
|
|
293
293
|
const pxToNumber = px => {
|
|
294
294
|
if (typeof px === 'number') {
|
|
295
295
|
return px;
|
|
296
296
|
}
|
|
297
|
-
|
|
298
297
|
if (typeof px === 'string') {
|
|
299
298
|
const parsed = Number.parseFloat(px);
|
|
300
|
-
|
|
301
299
|
if (!Number.isNaN(parsed)) {
|
|
302
300
|
return parsed;
|
|
303
301
|
}
|
|
304
302
|
}
|
|
305
|
-
|
|
306
303
|
return null;
|
|
307
304
|
};
|
|
308
305
|
const isAboutSame = (a, b, px) => Math.abs(a - b) <= px;
|
|
309
306
|
|
|
307
|
+
/**
|
|
308
|
+
* This function helps consider the every condition
|
|
309
|
+
* related to enabling emoji reaction feature.
|
|
310
|
+
*/
|
|
311
|
+
|
|
312
|
+
function getIsReactionEnabled(_ref) {
|
|
313
|
+
let {
|
|
314
|
+
isBroadcast = false,
|
|
315
|
+
isSuper = false,
|
|
316
|
+
globalLevel = true,
|
|
317
|
+
moduleLevel
|
|
318
|
+
} = _ref;
|
|
319
|
+
return !(isBroadcast || isSuper) && (moduleLevel !== null && moduleLevel !== void 0 ? moduleLevel : globalLevel);
|
|
320
|
+
}
|
|
321
|
+
|
|
310
322
|
var messagesInitialState = {
|
|
311
323
|
initialized: false,
|
|
312
324
|
loading: true,
|
|
@@ -332,22 +344,18 @@ var messagesInitialState = {
|
|
|
332
344
|
const {
|
|
333
345
|
SUCCEEDED
|
|
334
346
|
} = getSendingMessageStatus();
|
|
335
|
-
|
|
336
347
|
const getOldestMessageTimeStamp = function () {
|
|
337
348
|
let messages = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
338
349
|
const oldestMessage = messages[0];
|
|
339
350
|
return oldestMessage && oldestMessage.createdAt || null;
|
|
340
351
|
};
|
|
341
|
-
|
|
342
352
|
const getLatestMessageTimeStamp = function () {
|
|
343
353
|
let messages = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
|
|
344
354
|
const latestMessage = messages[messages.length - 1];
|
|
345
355
|
return latestMessage && latestMessage.createdAt || null;
|
|
346
356
|
};
|
|
347
|
-
|
|
348
357
|
function reducer(state, action) {
|
|
349
358
|
var _state$currentGroupCh7, _action$payload, _action$payload$chann;
|
|
350
|
-
|
|
351
359
|
switch (action.type) {
|
|
352
360
|
case RESET_MESSAGES:
|
|
353
361
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
@@ -357,7 +365,6 @@ function reducer(state, action) {
|
|
|
357
365
|
hasMoreNext: false,
|
|
358
366
|
allMessages: []
|
|
359
367
|
});
|
|
360
|
-
|
|
361
368
|
case FETCH_INITIAL_MESSAGES_START:
|
|
362
369
|
{
|
|
363
370
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
@@ -365,20 +372,16 @@ function reducer(state, action) {
|
|
|
365
372
|
allMessages: [...state.allMessages.filter(m => m.sendingStatus !== SUCCEEDED)]
|
|
366
373
|
});
|
|
367
374
|
}
|
|
368
|
-
|
|
369
375
|
case FETCH_INITIAL_MESSAGES_SUCCESS:
|
|
370
376
|
{
|
|
371
377
|
var _state$currentGroupCh;
|
|
372
|
-
|
|
373
378
|
const {
|
|
374
379
|
currentGroupChannel,
|
|
375
380
|
messages
|
|
376
381
|
} = action.payload;
|
|
377
|
-
|
|
378
382
|
if (!((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) === ((_state$currentGroupCh = state.currentGroupChannel) === null || _state$currentGroupCh === void 0 ? void 0 : _state$currentGroupCh.url))) {
|
|
379
383
|
return state;
|
|
380
384
|
}
|
|
381
|
-
|
|
382
385
|
const oldestMessageTimeStamp = getOldestMessageTimeStamp(messages);
|
|
383
386
|
const latestMessageTimeStamp = getLatestMessageTimeStamp(messages);
|
|
384
387
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
@@ -391,23 +394,20 @@ function reducer(state, action) {
|
|
|
391
394
|
allMessages: [...messages]
|
|
392
395
|
});
|
|
393
396
|
}
|
|
394
|
-
|
|
395
397
|
case FETCH_PREV_MESSAGES_SUCCESS:
|
|
396
398
|
{
|
|
397
399
|
var _state$currentGroupCh2;
|
|
398
|
-
|
|
399
400
|
const {
|
|
400
401
|
currentGroupChannel,
|
|
401
402
|
messages
|
|
402
403
|
} = action.payload;
|
|
403
|
-
|
|
404
404
|
if (!((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) === ((_state$currentGroupCh2 = state.currentGroupChannel) === null || _state$currentGroupCh2 === void 0 ? void 0 : _state$currentGroupCh2.url))) {
|
|
405
405
|
return state;
|
|
406
406
|
}
|
|
407
|
-
|
|
408
407
|
const hasMorePrev = messages && messages.length === PREV_RESULT_SIZE + 1;
|
|
409
|
-
const oldestMessageTimeStamp = getOldestMessageTimeStamp(messages);
|
|
408
|
+
const oldestMessageTimeStamp = getOldestMessageTimeStamp(messages);
|
|
410
409
|
|
|
410
|
+
// Remove duplicated messages
|
|
411
411
|
const duplicatedMessageIds = [];
|
|
412
412
|
const updatedOldMessages = state.allMessages.map(msg => {
|
|
413
413
|
const duplicatedMessage = messages.find(_ref => {
|
|
@@ -416,11 +416,9 @@ function reducer(state, action) {
|
|
|
416
416
|
} = _ref;
|
|
417
417
|
return compareIds(messageId, msg.messageId);
|
|
418
418
|
});
|
|
419
|
-
|
|
420
419
|
if (!duplicatedMessage) {
|
|
421
420
|
return msg;
|
|
422
421
|
}
|
|
423
|
-
|
|
424
422
|
duplicatedMessageIds.push(duplicatedMessage.messageId);
|
|
425
423
|
return duplicatedMessage.updatedAt > msg.updatedAt ? duplicatedMessage : msg;
|
|
426
424
|
});
|
|
@@ -431,61 +429,38 @@ function reducer(state, action) {
|
|
|
431
429
|
allMessages: [...filteredNewMessages, ...updatedOldMessages]
|
|
432
430
|
});
|
|
433
431
|
}
|
|
434
|
-
|
|
435
432
|
case FETCH_NEXT_MESSAGES_SUCCESS:
|
|
436
433
|
{
|
|
437
434
|
var _state$currentGroupCh3;
|
|
438
|
-
|
|
439
435
|
const {
|
|
440
436
|
currentGroupChannel,
|
|
441
437
|
messages
|
|
442
438
|
} = action.payload;
|
|
443
|
-
|
|
444
439
|
if (!((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) === ((_state$currentGroupCh3 = state.currentGroupChannel) === null || _state$currentGroupCh3 === void 0 ? void 0 : _state$currentGroupCh3.url))) {
|
|
445
440
|
return state;
|
|
446
441
|
}
|
|
447
|
-
|
|
448
442
|
const hasMoreNext = messages && messages.length === NEXT_RESULT_SIZE + 1;
|
|
449
|
-
const latestMessageTimeStamp = getLatestMessageTimeStamp(messages);
|
|
450
|
-
|
|
451
|
-
const duplicatedMessageIds = [];
|
|
452
|
-
const updatedOldMessages = state.allMessages.map(msg => {
|
|
453
|
-
const duplicatedMessage = messages.find(_ref2 => {
|
|
454
|
-
let {
|
|
455
|
-
messageId
|
|
456
|
-
} = _ref2;
|
|
457
|
-
return compareIds(messageId, msg.messageId);
|
|
458
|
-
});
|
|
459
|
-
|
|
460
|
-
if (!duplicatedMessage) {
|
|
461
|
-
return msg;
|
|
462
|
-
}
|
|
443
|
+
const latestMessageTimeStamp = getLatestMessageTimeStamp(messages);
|
|
463
444
|
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
});
|
|
467
|
-
const filteredNewMessages = duplicatedMessageIds.length > 0 ? messages.filter(msg => !duplicatedMessageIds.find(messageId => compareIds(messageId, msg.messageId))) : messages;
|
|
445
|
+
// sort ~
|
|
446
|
+
const sortedMessages = mergeAndSortMessages(state.allMessages, messages);
|
|
468
447
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
469
448
|
hasMoreNext,
|
|
470
449
|
latestMessageTimeStamp,
|
|
471
|
-
allMessages:
|
|
450
|
+
allMessages: sortedMessages
|
|
472
451
|
});
|
|
473
452
|
}
|
|
474
|
-
|
|
475
453
|
case FETCH_INITIAL_MESSAGES_FAILURE:
|
|
476
454
|
case FETCH_PREV_MESSAGES_FAILURE:
|
|
477
455
|
case FETCH_NEXT_MESSAGES_FAILURE:
|
|
478
456
|
{
|
|
479
457
|
var _state$currentGroupCh4;
|
|
480
|
-
|
|
481
458
|
const {
|
|
482
459
|
currentGroupChannel
|
|
483
460
|
} = action.payload;
|
|
484
|
-
|
|
485
461
|
if ((currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url) !== (state === null || state === void 0 ? void 0 : (_state$currentGroupCh4 = state.currentGroupChannel) === null || _state$currentGroupCh4 === void 0 ? void 0 : _state$currentGroupCh4.url)) {
|
|
486
462
|
return state;
|
|
487
463
|
}
|
|
488
|
-
|
|
489
464
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
490
465
|
loading: false,
|
|
491
466
|
initialized: false,
|
|
@@ -496,12 +471,10 @@ function reducer(state, action) {
|
|
|
496
471
|
latestMessageTimeStamp: null
|
|
497
472
|
});
|
|
498
473
|
}
|
|
499
|
-
|
|
500
474
|
case SEND_MESSAGEGE_START:
|
|
501
475
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
502
476
|
allMessages: [...state.allMessages, _objectSpread2({}, action.payload)]
|
|
503
477
|
});
|
|
504
|
-
|
|
505
478
|
case SEND_MESSAGEGE_SUCESS:
|
|
506
479
|
{
|
|
507
480
|
const message = action.payload;
|
|
@@ -511,7 +484,6 @@ function reducer(state, action) {
|
|
|
511
484
|
allMessages: pendingIndex > -1 ? [...filteredMessages.slice(0, pendingIndex), message, ...filteredMessages.slice(pendingIndex)] : [...filteredMessages, message]
|
|
512
485
|
});
|
|
513
486
|
}
|
|
514
|
-
|
|
515
487
|
case SEND_MESSAGEGE_FAILURE:
|
|
516
488
|
{
|
|
517
489
|
// eslint-disable-next-line no-param-reassign
|
|
@@ -520,7 +492,6 @@ function reducer(state, action) {
|
|
|
520
492
|
allMessages: state.allMessages.map(m => compareIds(m.reqId, action.payload.reqId) ? action.payload : m)
|
|
521
493
|
});
|
|
522
494
|
}
|
|
523
|
-
|
|
524
495
|
case SET_CURRENT_CHANNEL:
|
|
525
496
|
{
|
|
526
497
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
@@ -528,7 +499,6 @@ function reducer(state, action) {
|
|
|
528
499
|
isInvalid: false
|
|
529
500
|
});
|
|
530
501
|
}
|
|
531
|
-
|
|
532
502
|
case SET_CHANNEL_INVALID:
|
|
533
503
|
{
|
|
534
504
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
@@ -536,7 +506,6 @@ function reducer(state, action) {
|
|
|
536
506
|
isInvalid: true
|
|
537
507
|
});
|
|
538
508
|
}
|
|
539
|
-
|
|
540
509
|
case ON_MESSAGE_RECEIVED:
|
|
541
510
|
{
|
|
542
511
|
const {
|
|
@@ -554,57 +523,47 @@ function reducer(state, action) {
|
|
|
554
523
|
unreadSince
|
|
555
524
|
} = state;
|
|
556
525
|
const currentGroupChannelUrl = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url;
|
|
557
|
-
|
|
558
526
|
if (!compareIds(channel === null || channel === void 0 ? void 0 : channel.url, currentGroupChannelUrl)) {
|
|
559
527
|
return state;
|
|
560
|
-
}
|
|
561
|
-
|
|
562
|
-
|
|
528
|
+
}
|
|
529
|
+
// Excluded overlapping messages
|
|
563
530
|
if (state.allMessages.some(msg => msg.messageId === message.messageId)) {
|
|
564
531
|
return state;
|
|
565
|
-
}
|
|
566
|
-
|
|
567
|
-
|
|
532
|
+
}
|
|
533
|
+
// Filter by userFilledQuery
|
|
568
534
|
if (state.messageListParams && !filterMessageListParams(state.messageListParams, message)) {
|
|
569
535
|
return state;
|
|
570
536
|
}
|
|
571
|
-
|
|
572
537
|
if (message.isAdminMessage && message.isAdminMessage()) {
|
|
573
538
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
574
539
|
allMessages: passUnsuccessfullMessages(state.allMessages, message)
|
|
575
540
|
});
|
|
576
|
-
}
|
|
577
|
-
|
|
541
|
+
}
|
|
578
542
|
|
|
543
|
+
// Update members when sender profileUrl, nickname, friendName has been changed
|
|
579
544
|
const senderMember = members === null || members === void 0 ? void 0 : members.find(m => (m === null || m === void 0 ? void 0 : m.userId) === (sender === null || sender === void 0 ? void 0 : sender.userId));
|
|
580
|
-
|
|
581
545
|
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
546
|
channel.members = members.map(member => {
|
|
583
547
|
if (member.userId === sender.userId) {
|
|
584
548
|
return sender;
|
|
585
549
|
}
|
|
586
|
-
|
|
587
550
|
return member;
|
|
588
551
|
});
|
|
589
552
|
}
|
|
590
|
-
|
|
591
553
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
592
554
|
currentGroupChannel: channel,
|
|
593
555
|
unreadSince: state !== null && state !== void 0 && state.unreadSince ? unreadSince : format(new Date(), 'p MMM dd'),
|
|
594
556
|
allMessages: passUnsuccessfullMessages(state.allMessages, message)
|
|
595
557
|
});
|
|
596
558
|
}
|
|
597
|
-
|
|
598
559
|
case ON_MESSAGE_UPDATED:
|
|
599
560
|
{
|
|
600
561
|
var _state$currentGroupCh5;
|
|
601
|
-
|
|
602
562
|
const {
|
|
603
563
|
channel,
|
|
604
564
|
message
|
|
605
565
|
} = action.payload;
|
|
606
566
|
const currentGroupChannelUrl = (state === null || state === void 0 ? void 0 : (_state$currentGroupCh5 = state.currentGroupChannel) === null || _state$currentGroupCh5 === void 0 ? void 0 : _state$currentGroupCh5.url) || '';
|
|
607
|
-
|
|
608
567
|
if (!compareIds(channel === null || channel === void 0 ? void 0 : channel.url, currentGroupChannelUrl)) {
|
|
609
568
|
return state; // Ignore event when it is not for the current channel
|
|
610
569
|
}
|
|
@@ -615,13 +574,11 @@ function reducer(state, action) {
|
|
|
615
574
|
allMessages: state.allMessages.filter(m => !compareIds(m.messageId, message === null || message === void 0 ? void 0 : message.messageId))
|
|
616
575
|
});
|
|
617
576
|
}
|
|
618
|
-
|
|
619
577
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
620
578
|
allMessages: state.allMessages.map(m => {
|
|
621
579
|
if (compareIds(m.messageId, message.messageId)) {
|
|
622
580
|
return message;
|
|
623
581
|
}
|
|
624
|
-
|
|
625
582
|
if (compareIds(m.parentMessageId, message.messageId)) {
|
|
626
583
|
m.parentMessage = message; // eslint-disable-line no-param-reassign
|
|
627
584
|
}
|
|
@@ -630,11 +587,9 @@ function reducer(state, action) {
|
|
|
630
587
|
})
|
|
631
588
|
});
|
|
632
589
|
}
|
|
633
|
-
|
|
634
590
|
case ON_MESSAGE_THREAD_INFO_UPDATED:
|
|
635
591
|
{
|
|
636
592
|
var _state$currentGroupCh6;
|
|
637
|
-
|
|
638
593
|
const {
|
|
639
594
|
channel,
|
|
640
595
|
event
|
|
@@ -645,7 +600,6 @@ function reducer(state, action) {
|
|
|
645
600
|
targetMessageId
|
|
646
601
|
} = event;
|
|
647
602
|
const currentGroupChannelUrl = (state === null || state === void 0 ? void 0 : (_state$currentGroupCh6 = state.currentGroupChannel) === null || _state$currentGroupCh6 === void 0 ? void 0 : _state$currentGroupCh6.url) || '';
|
|
648
|
-
|
|
649
603
|
if (!compareIds(channel === null || channel === void 0 ? void 0 : channel.url, currentGroupChannelUrl) || !compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
|
|
650
604
|
return state; // Ignore event when it is not for the current channel
|
|
651
605
|
}
|
|
@@ -661,38 +615,31 @@ function reducer(state, action) {
|
|
|
661
615
|
})
|
|
662
616
|
});
|
|
663
617
|
}
|
|
664
|
-
|
|
665
618
|
case RESEND_MESSAGEGE_START:
|
|
666
619
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
667
620
|
allMessages: state.allMessages.map(m => compareIds(m.reqId, action.payload.reqId) ? action.payload : m)
|
|
668
621
|
});
|
|
669
|
-
|
|
670
622
|
case MARK_AS_READ:
|
|
671
623
|
if (((_state$currentGroupCh7 = state.currentGroupChannel) === null || _state$currentGroupCh7 === void 0 ? void 0 : _state$currentGroupCh7.url) !== ((_action$payload = action.payload) === null || _action$payload === void 0 ? void 0 : (_action$payload$chann = _action$payload.channel) === null || _action$payload$chann === void 0 ? void 0 : _action$payload$chann.url)) {
|
|
672
624
|
return state;
|
|
673
625
|
}
|
|
674
|
-
|
|
675
626
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
676
627
|
unreadSince: null
|
|
677
628
|
});
|
|
678
|
-
|
|
679
629
|
case ON_MESSAGE_DELETED:
|
|
680
630
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
681
631
|
allMessages: state.allMessages.filter(m => !compareIds(m.messageId, action.payload))
|
|
682
632
|
});
|
|
683
|
-
|
|
684
633
|
case ON_MESSAGE_DELETED_BY_REQ_ID:
|
|
685
634
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
686
635
|
allMessages: state.allMessages.filter(m => !compareIds(m.reqId, action.payload))
|
|
687
636
|
});
|
|
688
|
-
|
|
689
637
|
case SET_EMOJI_CONTAINER:
|
|
690
638
|
{
|
|
691
639
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
692
640
|
emojiContainer: action.payload
|
|
693
641
|
});
|
|
694
642
|
}
|
|
695
|
-
|
|
696
643
|
case ON_REACTION_UPDATED:
|
|
697
644
|
{
|
|
698
645
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
@@ -701,86 +648,102 @@ function reducer(state, action) {
|
|
|
701
648
|
if (m.applyReactionEvent && typeof m.applyReactionEvent === 'function') {
|
|
702
649
|
m.applyReactionEvent(action.payload);
|
|
703
650
|
}
|
|
704
|
-
|
|
705
651
|
return m;
|
|
706
652
|
}
|
|
707
|
-
|
|
708
653
|
return m;
|
|
709
654
|
})
|
|
710
655
|
});
|
|
711
656
|
}
|
|
712
|
-
|
|
713
657
|
case MESSAGE_LIST_PARAMS_CHANGED:
|
|
714
658
|
{
|
|
715
659
|
return _objectSpread2(_objectSpread2({}, state), {}, {
|
|
716
660
|
messageListParams: action.payload
|
|
717
661
|
});
|
|
718
662
|
}
|
|
719
|
-
|
|
720
663
|
default:
|
|
721
664
|
return state;
|
|
722
665
|
}
|
|
723
666
|
}
|
|
724
667
|
|
|
725
|
-
|
|
726
|
-
|
|
727
|
-
|
|
728
|
-
|
|
729
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
737
|
-
|
|
738
|
-
|
|
739
|
-
|
|
740
|
-
|
|
741
|
-
|
|
668
|
+
/**
|
|
669
|
+
* Handles ChannelEvents and send values to dispatcher using messagesDispatcher
|
|
670
|
+
* messagesDispatcher: Dispatcher
|
|
671
|
+
* sdk: sdkInstance
|
|
672
|
+
* logger: loggerInstance
|
|
673
|
+
* channelUrl: string
|
|
674
|
+
* sdkInit: bool
|
|
675
|
+
*/
|
|
676
|
+
|
|
677
|
+
const DELIVERY_RECIPT = 'delivery_receipt';
|
|
678
|
+
function useHandleChannelEvents(_ref, _ref2) {
|
|
679
|
+
var _store$stores$sdkStor, _store$stores$sdkStor2, _store$stores$sdkStor3;
|
|
680
|
+
let {
|
|
681
|
+
sdkInit,
|
|
682
|
+
currentUserId,
|
|
683
|
+
currentGroupChannel,
|
|
684
|
+
disableMarkAsRead
|
|
685
|
+
} = _ref;
|
|
686
|
+
let {
|
|
687
|
+
sdk,
|
|
688
|
+
logger,
|
|
689
|
+
scrollRef,
|
|
690
|
+
setQuoteMessage,
|
|
691
|
+
messagesDispatcher
|
|
692
|
+
} = _ref2;
|
|
693
|
+
const store = useSendbirdStateContext();
|
|
694
|
+
const {
|
|
695
|
+
markAsReadScheduler,
|
|
696
|
+
markAsDeliveredScheduler,
|
|
697
|
+
disableMarkAsDelivered
|
|
698
|
+
} = store.config;
|
|
699
|
+
const canSetMarkAsDelivered = (_store$stores$sdkStor = store.stores.sdkStore.sdk) === null || _store$stores$sdkStor === void 0 ? void 0 : (_store$stores$sdkStor2 = _store$stores$sdkStor.appInfo) === null || _store$stores$sdkStor2 === void 0 ? void 0 : (_store$stores$sdkStor3 = _store$stores$sdkStor2.premiumFeatureList) === null || _store$stores$sdkStor3 === void 0 ? void 0 : _store$stores$sdkStor3.find(feature => feature === DELIVERY_RECIPT);
|
|
700
|
+
useEffect(() => {
|
|
701
|
+
const channelUrl = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url;
|
|
702
|
+
const channelHandlerId = uuidv4();
|
|
742
703
|
if (channelUrl && sdkInit) {
|
|
743
|
-
var
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)
|
|
747
|
-
var
|
|
748
|
-
|
|
704
|
+
var _sdk$groupChannel;
|
|
705
|
+
const channelHandler = {
|
|
706
|
+
onMessageReceived: (channel, message) => {
|
|
707
|
+
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
|
|
708
|
+
var _document$getElementB, _document$getElementB2;
|
|
709
|
+
let scrollToEnd = false;
|
|
749
710
|
try {
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
711
|
+
const {
|
|
712
|
+
current
|
|
713
|
+
} = scrollRef;
|
|
714
|
+
scrollToEnd = current.offsetHeight + current.scrollTop >= current.scrollHeight - 10;
|
|
715
|
+
// 10 is a buffer
|
|
716
|
+
} catch (error) {
|
|
717
|
+
//
|
|
753
718
|
}
|
|
754
|
-
|
|
755
719
|
logger.info('Channel | useHandleChannelEvents: onMessageReceived', message);
|
|
756
720
|
messagesDispatcher({
|
|
757
721
|
type: ON_MESSAGE_RECEIVED,
|
|
758
722
|
payload: {
|
|
759
|
-
channel
|
|
760
|
-
message
|
|
723
|
+
channel,
|
|
724
|
+
message
|
|
761
725
|
}
|
|
762
726
|
});
|
|
763
|
-
|
|
764
|
-
|
|
727
|
+
if (scrollToEnd && ((_document$getElementB = document.getElementById('sendbird-dropdown-portal')) === null || _document$getElementB === void 0 ? void 0 : _document$getElementB.childElementCount) === 0 && ((_document$getElementB2 = document.getElementById('sendbird-emoji-list-portal')) === null || _document$getElementB2 === void 0 ? void 0 : _document$getElementB2.childElementCount) === 0) {
|
|
728
|
+
// and !openContextMenu
|
|
765
729
|
try {
|
|
766
|
-
setTimeout(
|
|
767
|
-
var _a;
|
|
768
|
-
|
|
769
|
-
if (!disableMarkAsRead) {
|
|
770
|
-
(_a = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.markAsRead) === null || _a === void 0 ? void 0 : _a.call(currentGroupChannel);
|
|
771
|
-
}
|
|
772
|
-
|
|
730
|
+
setTimeout(() => {
|
|
773
731
|
scrollIntoLast(0, scrollRef);
|
|
774
732
|
});
|
|
733
|
+
if (!disableMarkAsRead) {
|
|
734
|
+
markAsReadScheduler.push(currentGroupChannel);
|
|
735
|
+
}
|
|
736
|
+
if (canSetMarkAsDelivered && !disableMarkAsDelivered) {
|
|
737
|
+
markAsDeliveredScheduler.push(currentGroupChannel);
|
|
738
|
+
}
|
|
775
739
|
} catch (error) {
|
|
776
740
|
logger.warning('Channel | onMessageReceived | scroll to end failed');
|
|
777
741
|
}
|
|
778
742
|
}
|
|
779
743
|
}
|
|
780
744
|
},
|
|
781
|
-
onUnreadMemberStatusUpdated:
|
|
745
|
+
onUnreadMemberStatusUpdated: channel => {
|
|
782
746
|
logger.info('Channel | useHandleChannelEvents: onUnreadMemberStatusUpdated', channel);
|
|
783
|
-
|
|
784
747
|
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
|
|
785
748
|
messagesDispatcher({
|
|
786
749
|
type: SET_CURRENT_CHANNEL,
|
|
@@ -789,7 +752,7 @@ function useHandleChannelEvents(_a, _b) {
|
|
|
789
752
|
}
|
|
790
753
|
},
|
|
791
754
|
// before(onDeliveryReceiptUpdated)
|
|
792
|
-
onUndeliveredMemberStatusUpdated:
|
|
755
|
+
onUndeliveredMemberStatusUpdated: channel => {
|
|
793
756
|
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
|
|
794
757
|
logger.info('Channel | useHandleChannelEvents: onDeliveryReceiptUpdated', channel);
|
|
795
758
|
messagesDispatcher({
|
|
@@ -798,33 +761,33 @@ function useHandleChannelEvents(_a, _b) {
|
|
|
798
761
|
});
|
|
799
762
|
}
|
|
800
763
|
},
|
|
801
|
-
onMessageUpdated:
|
|
764
|
+
onMessageUpdated: (channel, message) => {
|
|
802
765
|
logger.info('Channel | useHandleChannelEvents: onMessageUpdated', message);
|
|
803
766
|
messagesDispatcher({
|
|
804
767
|
type: ON_MESSAGE_UPDATED,
|
|
805
768
|
payload: {
|
|
806
|
-
channel
|
|
807
|
-
message
|
|
769
|
+
channel,
|
|
770
|
+
message
|
|
808
771
|
}
|
|
809
772
|
});
|
|
810
773
|
},
|
|
811
|
-
onThreadInfoUpdated:
|
|
774
|
+
onThreadInfoUpdated: (channel, threadInfoUpdateEvent) => {
|
|
812
775
|
logger.info('Channel | useHandleChannelEvents: onThreadInfoUpdated', {
|
|
813
|
-
channel
|
|
814
|
-
threadInfoUpdateEvent
|
|
776
|
+
channel,
|
|
777
|
+
threadInfoUpdateEvent
|
|
815
778
|
});
|
|
816
779
|
messagesDispatcher({
|
|
817
780
|
type: ON_MESSAGE_THREAD_INFO_UPDATED,
|
|
818
781
|
payload: {
|
|
819
|
-
channel
|
|
782
|
+
channel,
|
|
820
783
|
event: threadInfoUpdateEvent
|
|
821
784
|
}
|
|
822
785
|
});
|
|
823
786
|
},
|
|
824
|
-
onMessageDeleted:
|
|
787
|
+
onMessageDeleted: (channel, messageId) => {
|
|
825
788
|
logger.info('Channel | useHandleChannelEvents: onMessageDeleted', {
|
|
826
|
-
channel
|
|
827
|
-
messageId
|
|
789
|
+
channel,
|
|
790
|
+
messageId
|
|
828
791
|
});
|
|
829
792
|
setQuoteMessage(null);
|
|
830
793
|
messagesDispatcher({
|
|
@@ -832,17 +795,17 @@ function useHandleChannelEvents(_a, _b) {
|
|
|
832
795
|
payload: messageId
|
|
833
796
|
});
|
|
834
797
|
},
|
|
835
|
-
onReactionUpdated:
|
|
798
|
+
onReactionUpdated: (channel, reactionEvent) => {
|
|
836
799
|
logger.info('Channel | useHandleChannelEvents: onReactionUpdated', {
|
|
837
|
-
channel
|
|
838
|
-
reactionEvent
|
|
800
|
+
channel,
|
|
801
|
+
reactionEvent
|
|
839
802
|
});
|
|
840
803
|
messagesDispatcher({
|
|
841
804
|
type: ON_REACTION_UPDATED,
|
|
842
805
|
payload: reactionEvent
|
|
843
806
|
});
|
|
844
807
|
},
|
|
845
|
-
onChannelChanged:
|
|
808
|
+
onChannelChanged: channel => {
|
|
846
809
|
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
|
|
847
810
|
logger.info('Channel | useHandleChannelEvents: onChannelChanged', channel);
|
|
848
811
|
messagesDispatcher({
|
|
@@ -851,7 +814,7 @@ function useHandleChannelEvents(_a, _b) {
|
|
|
851
814
|
});
|
|
852
815
|
}
|
|
853
816
|
},
|
|
854
|
-
onChannelFrozen:
|
|
817
|
+
onChannelFrozen: channel => {
|
|
855
818
|
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
|
|
856
819
|
logger.info('Channel | useHandleChannelEvents: onChannelFrozen', channel);
|
|
857
820
|
messagesDispatcher({
|
|
@@ -860,7 +823,7 @@ function useHandleChannelEvents(_a, _b) {
|
|
|
860
823
|
});
|
|
861
824
|
}
|
|
862
825
|
},
|
|
863
|
-
onChannelUnfrozen:
|
|
826
|
+
onChannelUnfrozen: channel => {
|
|
864
827
|
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
|
|
865
828
|
logger.info('Channel | useHandleChannelEvents: onChannelUnFrozen', channel);
|
|
866
829
|
messagesDispatcher({
|
|
@@ -869,11 +832,11 @@ function useHandleChannelEvents(_a, _b) {
|
|
|
869
832
|
});
|
|
870
833
|
}
|
|
871
834
|
},
|
|
872
|
-
onUserMuted:
|
|
835
|
+
onUserMuted: (channel, user) => {
|
|
873
836
|
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
|
|
874
837
|
logger.info('Channel | useHandleChannelEvents: onUserMuted', {
|
|
875
|
-
channel
|
|
876
|
-
user
|
|
838
|
+
channel,
|
|
839
|
+
user
|
|
877
840
|
});
|
|
878
841
|
messagesDispatcher({
|
|
879
842
|
type: SET_CURRENT_CHANNEL,
|
|
@@ -881,11 +844,11 @@ function useHandleChannelEvents(_a, _b) {
|
|
|
881
844
|
});
|
|
882
845
|
}
|
|
883
846
|
},
|
|
884
|
-
onUserUnmuted:
|
|
847
|
+
onUserUnmuted: (channel, user) => {
|
|
885
848
|
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
|
|
886
849
|
logger.info('Channel | useHandleChannelEvents: onUserUnmuted', {
|
|
887
|
-
channel
|
|
888
|
-
user
|
|
850
|
+
channel,
|
|
851
|
+
user
|
|
889
852
|
});
|
|
890
853
|
messagesDispatcher({
|
|
891
854
|
type: SET_CURRENT_CHANNEL,
|
|
@@ -893,13 +856,12 @@ function useHandleChannelEvents(_a, _b) {
|
|
|
893
856
|
});
|
|
894
857
|
}
|
|
895
858
|
},
|
|
896
|
-
onUserBanned:
|
|
897
|
-
var
|
|
898
|
-
|
|
899
|
-
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl) && (user === null || user === void 0 ? void 0 : user.userId) === ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.currentUser) === null || _a === void 0 ? void 0 : _a.userId)) {
|
|
859
|
+
onUserBanned: (channel, user) => {
|
|
860
|
+
var _sdk$currentUser;
|
|
861
|
+
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl) && (user === null || user === void 0 ? void 0 : user.userId) === (sdk === null || sdk === void 0 ? void 0 : (_sdk$currentUser = sdk.currentUser) === null || _sdk$currentUser === void 0 ? void 0 : _sdk$currentUser.userId)) {
|
|
900
862
|
logger.info('Channel | useHandleChannelEvents: onUserBanned', {
|
|
901
|
-
channel
|
|
902
|
-
user
|
|
863
|
+
channel,
|
|
864
|
+
user
|
|
903
865
|
});
|
|
904
866
|
messagesDispatcher({
|
|
905
867
|
type: SET_CURRENT_CHANNEL,
|
|
@@ -907,11 +869,11 @@ function useHandleChannelEvents(_a, _b) {
|
|
|
907
869
|
});
|
|
908
870
|
}
|
|
909
871
|
},
|
|
910
|
-
onOperatorUpdated:
|
|
872
|
+
onOperatorUpdated: (channel, users) => {
|
|
911
873
|
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
|
|
912
874
|
logger.info('Channel | useHandleChannelEvents: onOperatorUpdated', {
|
|
913
|
-
channel
|
|
914
|
-
users
|
|
875
|
+
channel,
|
|
876
|
+
users
|
|
915
877
|
});
|
|
916
878
|
messagesDispatcher({
|
|
917
879
|
type: SET_CURRENT_CHANNEL,
|
|
@@ -919,13 +881,12 @@ function useHandleChannelEvents(_a, _b) {
|
|
|
919
881
|
});
|
|
920
882
|
}
|
|
921
883
|
},
|
|
922
|
-
onUserLeft:
|
|
884
|
+
onUserLeft: (channel, user) => {
|
|
923
885
|
if (compareIds(channel === null || channel === void 0 ? void 0 : channel.url, channelUrl)) {
|
|
924
886
|
logger.info('Channel | useHandleChannelEvents: onUserLeft', {
|
|
925
|
-
channel
|
|
926
|
-
user
|
|
887
|
+
channel,
|
|
888
|
+
user
|
|
927
889
|
});
|
|
928
|
-
|
|
929
890
|
if ((user === null || user === void 0 ? void 0 : user.userId) === currentUserId) {
|
|
930
891
|
messagesDispatcher({
|
|
931
892
|
type: SET_CURRENT_CHANNEL,
|
|
@@ -936,20 +897,18 @@ function useHandleChannelEvents(_a, _b) {
|
|
|
936
897
|
}
|
|
937
898
|
};
|
|
938
899
|
logger.info('Channel | useHandleChannelEvents: Setup event handler', {
|
|
939
|
-
channelHandlerId
|
|
940
|
-
channelHandler
|
|
941
|
-
});
|
|
942
|
-
|
|
943
|
-
(
|
|
900
|
+
channelHandlerId,
|
|
901
|
+
channelHandler
|
|
902
|
+
});
|
|
903
|
+
// Add this group channel handler to the Sendbird chat instance
|
|
904
|
+
(_sdk$groupChannel = sdk.groupChannel) === null || _sdk$groupChannel === void 0 ? void 0 : _sdk$groupChannel.addGroupChannelHandler(channelHandlerId, new GroupChannelHandler(channelHandler));
|
|
944
905
|
}
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
if ((_a = sdk === null || sdk === void 0 ? void 0 : sdk.groupChannel) === null || _a === void 0 ? void 0 : _a.removeGroupChannelHandler) {
|
|
906
|
+
return () => {
|
|
907
|
+
var _sdk$groupChannel2;
|
|
908
|
+
if (sdk !== null && sdk !== void 0 && (_sdk$groupChannel2 = sdk.groupChannel) !== null && _sdk$groupChannel2 !== void 0 && _sdk$groupChannel2.removeGroupChannelHandler) {
|
|
950
909
|
logger.info('Channel | useHandleChannelEvents: Removing message reciver handler', channelHandlerId);
|
|
951
910
|
sdk.groupChannel.removeGroupChannelHandler(channelHandlerId);
|
|
952
|
-
} else if (sdk
|
|
911
|
+
} else if (sdk !== null && sdk !== void 0 && sdk.groupChannel) {
|
|
953
912
|
logger.error('Channel | useHandleChannelEvents: Not found the removeGroupChannelHandler');
|
|
954
913
|
}
|
|
955
914
|
};
|
|
@@ -965,7 +924,8 @@ function useSetChannel(_ref, _ref2) {
|
|
|
965
924
|
let {
|
|
966
925
|
messagesDispatcher,
|
|
967
926
|
sdk,
|
|
968
|
-
logger
|
|
927
|
+
logger,
|
|
928
|
+
markAsReadScheduler
|
|
969
929
|
} = _ref2;
|
|
970
930
|
useEffect(() => {
|
|
971
931
|
if (channelUrl && sdkInit && sdk && sdk.groupChannel) {
|
|
@@ -977,13 +937,8 @@ function useSetChannel(_ref, _ref2) {
|
|
|
977
937
|
payload: groupChannel
|
|
978
938
|
});
|
|
979
939
|
logger.info('Channel: Mark as read', groupChannel);
|
|
980
|
-
|
|
981
940
|
if (!disableMarkAsRead) {
|
|
982
|
-
|
|
983
|
-
try {
|
|
984
|
-
groupChannel.markAsRead();
|
|
985
|
-
} catch (_unused) {//
|
|
986
|
-
}
|
|
941
|
+
markAsReadScheduler.push(groupChannel);
|
|
987
942
|
}
|
|
988
943
|
}).catch(e => {
|
|
989
944
|
logger.warning('Channel | useSetChannel fetch channel failed', {
|
|
@@ -1027,30 +982,25 @@ function useInitialMessagesFetch(_ref, _ref2) {
|
|
|
1027
982
|
type: RESET_MESSAGES,
|
|
1028
983
|
payload: null
|
|
1029
984
|
});
|
|
1030
|
-
|
|
1031
985
|
if (currentGroupChannel && currentGroupChannel !== null && currentGroupChannel !== void 0 && currentGroupChannel.getMessagesByTimestamp) {
|
|
1032
986
|
const messageListParams = {};
|
|
1033
987
|
messageListParams.prevResultSize = PREV_RESULT_SIZE;
|
|
1034
|
-
|
|
1035
988
|
if (initialTimeStamp) {
|
|
1036
989
|
messageListParams.nextResultSize = NEXT_RESULT_SIZE;
|
|
1037
990
|
}
|
|
1038
|
-
|
|
1039
991
|
messageListParams.isInclusive = true;
|
|
1040
992
|
messageListParams.includeReactions = true;
|
|
1041
|
-
|
|
993
|
+
messageListParams.includeMetaArray = true;
|
|
1042
994
|
if (replyType && (replyType === 'QUOTE_REPLY' || replyType === 'THREAD')) {
|
|
1043
995
|
messageListParams.includeThreadInfo = true;
|
|
1044
996
|
messageListParams.includeParentMessageInfo = true;
|
|
1045
997
|
messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
|
|
1046
998
|
}
|
|
1047
|
-
|
|
1048
999
|
if (userFilledMessageListQuery) {
|
|
1049
1000
|
Object.keys(userFilledMessageListQuery).forEach(key => {
|
|
1050
1001
|
messageListParams[key] = userFilledMessageListQuery[key];
|
|
1051
1002
|
});
|
|
1052
1003
|
}
|
|
1053
|
-
|
|
1054
1004
|
if (replyType && (replyType === 'QUOTE_REPLY' || replyType === 'THREAD') || userFilledMessageListQuery) {
|
|
1055
1005
|
logger.info('Channel useInitialMessagesFetch: Setup messageListParams', messageListParams);
|
|
1056
1006
|
messagesDispatcher({
|
|
@@ -1058,7 +1008,6 @@ function useInitialMessagesFetch(_ref, _ref2) {
|
|
|
1058
1008
|
payload: messageListParams
|
|
1059
1009
|
});
|
|
1060
1010
|
}
|
|
1061
|
-
|
|
1062
1011
|
logger.info('Channel: Fetching messages', {
|
|
1063
1012
|
currentGroupChannel,
|
|
1064
1013
|
userFilledMessageListQuery
|
|
@@ -1086,6 +1035,10 @@ function useInitialMessagesFetch(_ref, _ref2) {
|
|
|
1086
1035
|
}).finally(() => {
|
|
1087
1036
|
if (!initialTimeStamp) {
|
|
1088
1037
|
setTimeout(() => scrollIntoLast(0, scrollRef));
|
|
1038
|
+
} else {
|
|
1039
|
+
setTimeout(() => {
|
|
1040
|
+
scrollToRenderedMessage(scrollRef, initialTimeStamp);
|
|
1041
|
+
}, 500);
|
|
1089
1042
|
}
|
|
1090
1043
|
});
|
|
1091
1044
|
}
|
|
@@ -1100,82 +1053,75 @@ function useInitialMessagesFetch(_ref, _ref2) {
|
|
|
1100
1053
|
*/
|
|
1101
1054
|
}
|
|
1102
1055
|
|
|
1103
|
-
function useHandleReconnect(
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1056
|
+
function useHandleReconnect(_ref, _ref2) {
|
|
1057
|
+
let {
|
|
1058
|
+
isOnline,
|
|
1059
|
+
replyType,
|
|
1060
|
+
disableMarkAsRead
|
|
1061
|
+
} = _ref;
|
|
1062
|
+
let {
|
|
1063
|
+
logger,
|
|
1064
|
+
sdk,
|
|
1065
|
+
scrollRef,
|
|
1066
|
+
currentGroupChannel,
|
|
1067
|
+
messagesDispatcher,
|
|
1068
|
+
markAsReadScheduler,
|
|
1069
|
+
userFilledMessageListQuery
|
|
1070
|
+
} = _ref2;
|
|
1071
|
+
useEffect(() => {
|
|
1072
|
+
const wasOffline = !isOnline;
|
|
1073
|
+
return () => {
|
|
1074
|
+
// state changed from offline to online
|
|
1075
|
+
if (wasOffline && currentGroupChannel !== null && currentGroupChannel !== void 0 && currentGroupChannel.url) {
|
|
1076
|
+
var _sdk$appInfo, _sdk$groupChannel;
|
|
1120
1077
|
logger.info('Refreshing conversation state');
|
|
1121
|
-
|
|
1122
|
-
|
|
1078
|
+
const isReactionEnabled = (sdk === null || sdk === void 0 ? void 0 : (_sdk$appInfo = sdk.appInfo) === null || _sdk$appInfo === void 0 ? void 0 : _sdk$appInfo.useReaction) || false;
|
|
1079
|
+
const messageListParams = {
|
|
1123
1080
|
prevResultSize: PREV_RESULT_SIZE,
|
|
1124
1081
|
isInclusive: true,
|
|
1125
1082
|
includeReactions: isReactionEnabled,
|
|
1126
1083
|
nextResultSize: NEXT_RESULT_SIZE
|
|
1127
1084
|
};
|
|
1128
|
-
|
|
1129
1085
|
if (replyType && replyType === 'QUOTE_REPLY') {
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1086
|
+
messageListParams.includeThreadInfo = true;
|
|
1087
|
+
messageListParams.includeParentMessageInfo = true;
|
|
1088
|
+
messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
|
|
1133
1089
|
}
|
|
1134
|
-
|
|
1135
1090
|
if (userFilledMessageListQuery) {
|
|
1136
|
-
Object.keys(userFilledMessageListQuery).forEach(
|
|
1137
|
-
|
|
1091
|
+
Object.keys(userFilledMessageListQuery).forEach(key => {
|
|
1092
|
+
messageListParams[key] = userFilledMessageListQuery[key];
|
|
1138
1093
|
});
|
|
1139
1094
|
}
|
|
1140
|
-
|
|
1141
1095
|
logger.info('Channel: Fetching messages', {
|
|
1142
|
-
currentGroupChannel
|
|
1143
|
-
userFilledMessageListQuery
|
|
1096
|
+
currentGroupChannel,
|
|
1097
|
+
userFilledMessageListQuery
|
|
1144
1098
|
});
|
|
1145
1099
|
messagesDispatcher({
|
|
1146
1100
|
type: FETCH_INITIAL_MESSAGES_START,
|
|
1147
1101
|
payload: null
|
|
1148
1102
|
});
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
var lastMessageTime = new Date().getTime();
|
|
1153
|
-
groupChannel.getMessagesByTimestamp(lastMessageTime, messageListParams_1).then(function (messages) {
|
|
1103
|
+
sdk === null || sdk === void 0 ? void 0 : (_sdk$groupChannel = sdk.groupChannel) === null || _sdk$groupChannel === void 0 ? void 0 : _sdk$groupChannel.getChannel(currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.url).then(groupChannel => {
|
|
1104
|
+
const lastMessageTime = new Date().getTime();
|
|
1105
|
+
groupChannel.getMessagesByTimestamp(lastMessageTime, messageListParams).then(messages => {
|
|
1154
1106
|
messagesDispatcher({
|
|
1155
1107
|
type: FETCH_INITIAL_MESSAGES_SUCCESS,
|
|
1156
1108
|
payload: {
|
|
1157
|
-
currentGroupChannel
|
|
1158
|
-
messages
|
|
1109
|
+
currentGroupChannel,
|
|
1110
|
+
messages
|
|
1159
1111
|
}
|
|
1160
1112
|
});
|
|
1161
|
-
setTimeout(
|
|
1162
|
-
|
|
1163
|
-
});
|
|
1164
|
-
}).catch(function (error) {
|
|
1113
|
+
setTimeout(() => scrollIntoLast(0, scrollRef));
|
|
1114
|
+
}).catch(error => {
|
|
1165
1115
|
logger.error('Channel: Fetching messages failed', error);
|
|
1166
1116
|
messagesDispatcher({
|
|
1167
1117
|
type: FETCH_INITIAL_MESSAGES_FAILURE,
|
|
1168
1118
|
payload: {
|
|
1169
|
-
currentGroupChannel
|
|
1119
|
+
currentGroupChannel
|
|
1170
1120
|
}
|
|
1171
1121
|
});
|
|
1172
1122
|
});
|
|
1173
|
-
|
|
1174
1123
|
if (!disableMarkAsRead) {
|
|
1175
|
-
|
|
1176
|
-
(_a = currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.markAsRead) === null || _a === void 0 ? void 0 : _a.call(currentGroupChannel);
|
|
1177
|
-
} catch (_b) {//
|
|
1178
|
-
}
|
|
1124
|
+
markAsReadScheduler.push(currentGroupChannel);
|
|
1179
1125
|
}
|
|
1180
1126
|
});
|
|
1181
1127
|
}
|
|
@@ -1200,7 +1146,6 @@ function useScrollCallback(_ref, _ref2) {
|
|
|
1200
1146
|
if (!hasMorePrev) {
|
|
1201
1147
|
return;
|
|
1202
1148
|
}
|
|
1203
|
-
|
|
1204
1149
|
const {
|
|
1205
1150
|
appInfo = {}
|
|
1206
1151
|
} = sdk;
|
|
@@ -1210,19 +1155,17 @@ function useScrollCallback(_ref, _ref2) {
|
|
|
1210
1155
|
isInclusive: true,
|
|
1211
1156
|
includeReactions: isReactionEnabled
|
|
1212
1157
|
};
|
|
1213
|
-
|
|
1158
|
+
messageListParams.includeMetaArray = true;
|
|
1214
1159
|
if (replyType === 'QUOTE_REPLY' || replyType === 'THREAD') {
|
|
1215
1160
|
messageListParams.includeThreadInfo = true;
|
|
1216
1161
|
messageListParams.includeParentMessageInfo = true;
|
|
1217
1162
|
messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
|
|
1218
1163
|
}
|
|
1219
|
-
|
|
1220
1164
|
if (userFilledMessageListQuery) {
|
|
1221
1165
|
Object.keys(userFilledMessageListQuery).forEach(key => {
|
|
1222
1166
|
messageListParams[key] = userFilledMessageListQuery[key];
|
|
1223
1167
|
});
|
|
1224
1168
|
}
|
|
1225
|
-
|
|
1226
1169
|
logger.info('Channel: Fetching messages', {
|
|
1227
1170
|
currentGroupChannel,
|
|
1228
1171
|
userFilledMessageListQuery
|
|
@@ -1266,7 +1209,6 @@ function useScrollDownCallback(_ref, _ref2) {
|
|
|
1266
1209
|
if (!hasMoreNext) {
|
|
1267
1210
|
return;
|
|
1268
1211
|
}
|
|
1269
|
-
|
|
1270
1212
|
const {
|
|
1271
1213
|
appInfo = {}
|
|
1272
1214
|
} = sdk;
|
|
@@ -1276,19 +1218,17 @@ function useScrollDownCallback(_ref, _ref2) {
|
|
|
1276
1218
|
isInclusive: true,
|
|
1277
1219
|
includeReactions: isReactionEnabled
|
|
1278
1220
|
};
|
|
1279
|
-
|
|
1221
|
+
messageListParams.includeMetaArray = true;
|
|
1280
1222
|
if (replyType && (replyType === 'QUOTE_REPLY' || replyType === 'THREAD')) {
|
|
1281
1223
|
messageListParams.includeThreadInfo = true;
|
|
1282
1224
|
messageListParams.includeParentMessageInfo = true;
|
|
1283
1225
|
messageListParams.replyType = ReplyType.ONLY_REPLY_TO_CHANNEL;
|
|
1284
1226
|
}
|
|
1285
|
-
|
|
1286
1227
|
if (userFilledMessageListQuery) {
|
|
1287
1228
|
Object.keys(userFilledMessageListQuery).forEach(key => {
|
|
1288
1229
|
messageListParams[key] = userFilledMessageListQuery[key];
|
|
1289
1230
|
});
|
|
1290
1231
|
}
|
|
1291
|
-
|
|
1292
1232
|
logger.info('Channel: Fetching later messages', {
|
|
1293
1233
|
currentGroupChannel,
|
|
1294
1234
|
userFilledMessageListQuery
|
|
@@ -1329,8 +1269,8 @@ function useDeleteMessageCallback(_ref, _ref2) {
|
|
|
1329
1269
|
requestState
|
|
1330
1270
|
} = message;
|
|
1331
1271
|
return new Promise((resolve, reject) => {
|
|
1332
|
-
logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState);
|
|
1333
|
-
|
|
1272
|
+
logger.info('Channel | useDeleteMessageCallback: Deleting message requestState:', requestState);
|
|
1273
|
+
// Message is only on local
|
|
1334
1274
|
if (requestState === 'failed' || requestState === 'pending') {
|
|
1335
1275
|
logger.info('Channel | useDeleteMessageCallback: Deleted message from local:', message);
|
|
1336
1276
|
messagesDispatcher({
|
|
@@ -1339,7 +1279,6 @@ function useDeleteMessageCallback(_ref, _ref2) {
|
|
|
1339
1279
|
});
|
|
1340
1280
|
resolve(message);
|
|
1341
1281
|
}
|
|
1342
|
-
|
|
1343
1282
|
logger.info('Channel | useDeleteMessageCallback: Deleting message from remote:', requestState);
|
|
1344
1283
|
currentGroupChannel.deleteMessage(message).then(() => {
|
|
1345
1284
|
logger.info('Channel | useDeleteMessageCallback: Deleting message success!', message);
|
|
@@ -1374,37 +1313,29 @@ function useUpdateMessageCallback(_ref, _ref2) {
|
|
|
1374
1313
|
mentionedUsers,
|
|
1375
1314
|
mentionTemplate
|
|
1376
1315
|
} = props;
|
|
1377
|
-
|
|
1378
1316
|
const createParamsDefault = () => {
|
|
1379
1317
|
const params = {};
|
|
1380
1318
|
params.message = message;
|
|
1381
|
-
|
|
1382
1319
|
if (isMentionEnabled && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
|
|
1383
1320
|
params.mentionedUsers = mentionedUsers;
|
|
1384
1321
|
}
|
|
1385
|
-
|
|
1386
1322
|
if (isMentionEnabled && mentionTemplate) {
|
|
1387
1323
|
params.mentionedMessageTemplate = mentionTemplate;
|
|
1388
1324
|
} else {
|
|
1389
1325
|
params.mentionedMessageTemplate = message;
|
|
1390
1326
|
}
|
|
1391
|
-
|
|
1392
1327
|
return params;
|
|
1393
1328
|
};
|
|
1394
|
-
|
|
1395
1329
|
const createCustomPrams = onBeforeUpdateUserMessage && typeof onBeforeUpdateUserMessage === 'function';
|
|
1396
|
-
|
|
1397
1330
|
if (createCustomPrams) {
|
|
1398
1331
|
logger.info('Channel: creating params using onBeforeUpdateUserMessage', onBeforeUpdateUserMessage);
|
|
1399
1332
|
}
|
|
1400
|
-
|
|
1401
1333
|
const params = onBeforeUpdateUserMessage ? onBeforeUpdateUserMessage(message) : createParamsDefault();
|
|
1402
1334
|
logger.info('Channel: Updating message!', params);
|
|
1403
1335
|
currentGroupChannel.updateUserMessage(messageId, params).then((msg, err) => {
|
|
1404
1336
|
if (callback) {
|
|
1405
1337
|
callback(err, msg);
|
|
1406
1338
|
}
|
|
1407
|
-
|
|
1408
1339
|
logger.info('Channel: Updating message success!', msg);
|
|
1409
1340
|
messagesDispatcher({
|
|
1410
1341
|
type: ON_MESSAGE_UPDATED,
|
|
@@ -1413,7 +1344,7 @@ function useUpdateMessageCallback(_ref, _ref2) {
|
|
|
1413
1344
|
message: msg
|
|
1414
1345
|
}
|
|
1415
1346
|
});
|
|
1416
|
-
pubSub.publish(UPDATE_USER_MESSAGE, {
|
|
1347
|
+
pubSub.publish(PUBSUB_TOPICS.UPDATE_USER_MESSAGE, {
|
|
1417
1348
|
message: msg,
|
|
1418
1349
|
channel: currentGroupChannel
|
|
1419
1350
|
});
|
|
@@ -1435,18 +1366,18 @@ function useResendMessageCallback(_ref, _ref2) {
|
|
|
1435
1366
|
messageType,
|
|
1436
1367
|
file
|
|
1437
1368
|
} = failedMessage;
|
|
1438
|
-
|
|
1439
1369
|
if (failedMessage !== null && failedMessage !== void 0 && failedMessage.isResendable) {
|
|
1440
1370
|
// Move the logic setting sendingStatus to pending into the reducer
|
|
1441
1371
|
// eslint-disable-next-line no-param-reassign
|
|
1442
|
-
failedMessage.requestState = 'pending';
|
|
1443
|
-
|
|
1372
|
+
failedMessage.requestState = 'pending';
|
|
1373
|
+
// eslint-disable-next-line no-param-reassign
|
|
1444
1374
|
failedMessage.sendingStatus = 'pending';
|
|
1445
1375
|
messagesDispatcher({
|
|
1446
1376
|
type: RESEND_MESSAGEGE_START,
|
|
1447
1377
|
payload: failedMessage
|
|
1448
|
-
});
|
|
1378
|
+
});
|
|
1449
1379
|
|
|
1380
|
+
// userMessage
|
|
1450
1381
|
if (messageType === 'user') {
|
|
1451
1382
|
currentGroupChannel.resendUserMessage(failedMessage).then(message => {
|
|
1452
1383
|
logger.info('Channel: Resending message success!', message);
|
|
@@ -1455,19 +1386,20 @@ function useResendMessageCallback(_ref, _ref2) {
|
|
|
1455
1386
|
payload: message
|
|
1456
1387
|
});
|
|
1457
1388
|
}).catch(e => {
|
|
1458
|
-
logger.warning('Channel: Resending message failed!', e);
|
|
1459
|
-
|
|
1460
|
-
failedMessage.requestState = 'failed';
|
|
1461
|
-
|
|
1389
|
+
logger.warning('Channel: Resending message failed!', e);
|
|
1390
|
+
// eslint-disable-next-line no-param-reassign
|
|
1391
|
+
failedMessage.requestState = 'failed';
|
|
1392
|
+
// eslint-disable-next-line no-param-reassign
|
|
1462
1393
|
failedMessage.sendingStatus = 'failed';
|
|
1463
1394
|
messagesDispatcher({
|
|
1464
1395
|
type: SEND_MESSAGEGE_FAILURE,
|
|
1465
1396
|
payload: failedMessage
|
|
1466
1397
|
});
|
|
1467
|
-
});
|
|
1468
|
-
|
|
1469
|
-
failedMessage.requestState = 'pending'; // eslint-disable-next-line no-param-reassign
|
|
1398
|
+
});
|
|
1470
1399
|
|
|
1400
|
+
// eslint-disable-next-line no-param-reassign
|
|
1401
|
+
failedMessage.requestState = 'pending';
|
|
1402
|
+
// eslint-disable-next-line no-param-reassign
|
|
1471
1403
|
failedMessage.sendingStatus = 'pending';
|
|
1472
1404
|
messagesDispatcher({
|
|
1473
1405
|
type: RESEND_MESSAGEGE_START,
|
|
@@ -1475,7 +1407,6 @@ function useResendMessageCallback(_ref, _ref2) {
|
|
|
1475
1407
|
});
|
|
1476
1408
|
return;
|
|
1477
1409
|
}
|
|
1478
|
-
|
|
1479
1410
|
if (messageType === 'file') {
|
|
1480
1411
|
currentGroupChannel.resendFileMessage(failedMessage, file).then(message => {
|
|
1481
1412
|
logger.info('Channel: Resending file message success!', message);
|
|
@@ -1484,19 +1415,20 @@ function useResendMessageCallback(_ref, _ref2) {
|
|
|
1484
1415
|
payload: message
|
|
1485
1416
|
});
|
|
1486
1417
|
}).catch(e => {
|
|
1487
|
-
logger.warning('Channel: Resending file message failed!', e);
|
|
1488
|
-
|
|
1489
|
-
failedMessage.requestState = 'failed';
|
|
1490
|
-
|
|
1418
|
+
logger.warning('Channel: Resending file message failed!', e);
|
|
1419
|
+
// eslint-disable-next-line no-param-reassign
|
|
1420
|
+
failedMessage.requestState = 'failed';
|
|
1421
|
+
// eslint-disable-next-line no-param-reassign
|
|
1491
1422
|
failedMessage.sendingStatus = 'failed';
|
|
1492
1423
|
messagesDispatcher({
|
|
1493
1424
|
type: SEND_MESSAGEGE_FAILURE,
|
|
1494
1425
|
payload: failedMessage
|
|
1495
1426
|
});
|
|
1496
|
-
});
|
|
1497
|
-
|
|
1498
|
-
failedMessage.requestState = 'pending'; // eslint-disable-next-line no-param-reassign
|
|
1427
|
+
});
|
|
1499
1428
|
|
|
1429
|
+
// eslint-disable-next-line no-param-reassign
|
|
1430
|
+
failedMessage.requestState = 'pending';
|
|
1431
|
+
// eslint-disable-next-line no-param-reassign
|
|
1500
1432
|
failedMessage.sendingStatus = 'pending';
|
|
1501
1433
|
messagesDispatcher({
|
|
1502
1434
|
type: RESEND_MESSAGEGE_START,
|
|
@@ -1533,39 +1465,32 @@ function useSendMessageCallback(_ref, _ref2) {
|
|
|
1533
1465
|
// mentionedUserIds,
|
|
1534
1466
|
mentionedUsers
|
|
1535
1467
|
} = props;
|
|
1536
|
-
|
|
1537
1468
|
const createParamsDefault = () => {
|
|
1538
1469
|
const params = {};
|
|
1539
|
-
params.message =
|
|
1540
|
-
|
|
1470
|
+
params.message = message;
|
|
1471
|
+
// if (isMentionEnabled && mentionedUserIds?.length > 0) {
|
|
1541
1472
|
if (isMentionEnabled && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
|
|
1542
1473
|
// params.mentionedUserIds = mentionedUserIds;
|
|
1543
1474
|
params.mentionedUsers = mentionedUsers;
|
|
1544
|
-
}
|
|
1545
|
-
|
|
1546
|
-
|
|
1475
|
+
}
|
|
1476
|
+
// if (isMentionEnabled && mentionTemplate && mentionedUserIds?.length > 0) {
|
|
1547
1477
|
if (isMentionEnabled && mentionTemplate && (mentionedUsers === null || mentionedUsers === void 0 ? void 0 : mentionedUsers.length) > 0) {
|
|
1548
|
-
params.mentionedMessageTemplate =
|
|
1478
|
+
params.mentionedMessageTemplate = mentionTemplate;
|
|
1549
1479
|
}
|
|
1550
|
-
|
|
1551
1480
|
if (quoteMessage) {
|
|
1552
1481
|
params.isReplyToChannel = true;
|
|
1553
1482
|
params.parentMessageId = quoteMessage.messageId;
|
|
1554
1483
|
}
|
|
1555
|
-
|
|
1556
1484
|
return params;
|
|
1557
1485
|
};
|
|
1558
|
-
|
|
1559
1486
|
const createCustomPrams = onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function';
|
|
1560
|
-
|
|
1561
1487
|
if (createCustomPrams) {
|
|
1562
1488
|
logger.info('Channel: creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);
|
|
1563
1489
|
}
|
|
1564
|
-
|
|
1565
1490
|
const params = onBeforeSendUserMessage ? onBeforeSendUserMessage(message, quoteMessage) : createParamsDefault();
|
|
1566
1491
|
logger.info('Channel: Sending message has started', params);
|
|
1567
1492
|
currentGroupChannel.sendUserMessage(params).onPending(pendingMsg => {
|
|
1568
|
-
pubSub.publish(SEND_MESSAGE_START, {
|
|
1493
|
+
pubSub.publish(PUBSUB_TOPICS.SEND_MESSAGE_START, {
|
|
1569
1494
|
/* pubSub is used instead of messagesDispatcher
|
|
1570
1495
|
to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */
|
|
1571
1496
|
message: pendingMsg,
|
|
@@ -1613,44 +1538,39 @@ function useSendFileMessageCallback(_ref, _ref2) {
|
|
|
1613
1538
|
} = imageCompression;
|
|
1614
1539
|
const createCustomParams = onBeforeSendFileMessage && typeof onBeforeSendFileMessage === 'function';
|
|
1615
1540
|
const compressibleFileType = file.type === 'image/jpg' || file.type === 'image/png' || file.type === 'image/jpeg';
|
|
1616
|
-
const compressibleRatio = compressionRate > 0 && compressionRate < 1;
|
|
1617
|
-
|
|
1541
|
+
const compressibleRatio = compressionRate > 0 && compressionRate < 1;
|
|
1542
|
+
// pxToNumber returns null if values are invalid
|
|
1618
1543
|
const compressibleDiamensions = pxToNumber(resizingWidth) || pxToNumber(resizingHeight);
|
|
1619
1544
|
const canCompressImage = compressibleFileType && (compressibleRatio || compressibleDiamensions);
|
|
1620
|
-
|
|
1621
1545
|
const createParamsDefault = file_ => {
|
|
1622
1546
|
const params = {};
|
|
1623
1547
|
params.file = file_;
|
|
1624
|
-
|
|
1625
1548
|
if (quoteMessage) {
|
|
1626
1549
|
params.isReplyToChannel = true;
|
|
1627
1550
|
params.parentMessageId = quoteMessage.messageId;
|
|
1628
1551
|
}
|
|
1629
|
-
|
|
1630
1552
|
return params;
|
|
1631
1553
|
};
|
|
1632
|
-
|
|
1633
1554
|
if (canCompressImage) {
|
|
1634
1555
|
// Using image compression
|
|
1635
1556
|
try {
|
|
1636
1557
|
const image = document.createElement('img');
|
|
1637
1558
|
image.src = URL.createObjectURL(file);
|
|
1638
|
-
|
|
1639
1559
|
image.onload = () => {
|
|
1640
1560
|
URL.revokeObjectURL(image.src);
|
|
1641
1561
|
const canvas = document.createElement('canvas');
|
|
1642
1562
|
const imageWdith = image.naturalWidth || image.width;
|
|
1643
1563
|
const imageHeight = image.naturalHeight || image.height;
|
|
1644
1564
|
let targetWidth = pxToNumber(resizingWidth) || imageWdith;
|
|
1645
|
-
let targetHeight = pxToNumber(resizingHeight) || imageHeight;
|
|
1565
|
+
let targetHeight = pxToNumber(resizingHeight) || imageHeight;
|
|
1566
|
+
|
|
1567
|
+
// In canvas.toBlob(callback, mimeType, qualityArgument)
|
|
1646
1568
|
// qualityArgument doesnt work
|
|
1647
1569
|
// so in case compressibleDiamensions are not present, we use ratio
|
|
1648
|
-
|
|
1649
1570
|
if (file.type === 'image/png' && !compressibleDiamensions) {
|
|
1650
1571
|
targetWidth *= compressionRate;
|
|
1651
1572
|
targetHeight *= compressionRate;
|
|
1652
1573
|
}
|
|
1653
|
-
|
|
1654
1574
|
canvas.width = targetWidth;
|
|
1655
1575
|
canvas.height = targetHeight;
|
|
1656
1576
|
const context = canvas.getContext('2d');
|
|
@@ -1659,15 +1579,13 @@ function useSendFileMessageCallback(_ref, _ref2) {
|
|
|
1659
1579
|
const compressedFile = new File([newImageBlob], file.name, {
|
|
1660
1580
|
type: file.type
|
|
1661
1581
|
});
|
|
1662
|
-
|
|
1663
1582
|
if (createCustomParams) {
|
|
1664
1583
|
logger.info('Channel: Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);
|
|
1665
1584
|
}
|
|
1666
|
-
|
|
1667
1585
|
const params = createCustomParams ? onBeforeSendFileMessage(compressedFile, quoteMessage) : createParamsDefault(compressedFile);
|
|
1668
1586
|
logger.info('Channel: Uploading file message start!', params);
|
|
1669
1587
|
currentGroupChannel.sendFileMessage(params).onPending(pendingMessage => {
|
|
1670
|
-
pubSub.publish(SEND_MESSAGE_START, {
|
|
1588
|
+
pubSub.publish(PUBSUB_TOPICS.SEND_MESSAGE_START, {
|
|
1671
1589
|
/* pubSub is used instead of messagesDispatcher
|
|
1672
1590
|
to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */
|
|
1673
1591
|
message: _objectSpread2(_objectSpread2({}, pendingMessage), {}, {
|
|
@@ -1682,10 +1600,10 @@ function useSendFileMessageCallback(_ref, _ref2) {
|
|
|
1682
1600
|
logger.error('Channel: Sending file message failed!', {
|
|
1683
1601
|
failedMessage,
|
|
1684
1602
|
err
|
|
1685
|
-
});
|
|
1686
|
-
|
|
1687
|
-
failedMessage.localUrl = URL.createObjectURL(compressedFile);
|
|
1688
|
-
|
|
1603
|
+
});
|
|
1604
|
+
// eslint-disable-next-line no-param-reassign
|
|
1605
|
+
failedMessage.localUrl = URL.createObjectURL(compressedFile);
|
|
1606
|
+
// eslint-disable-next-line no-param-reassign
|
|
1689
1607
|
failedMessage.file = compressedFile;
|
|
1690
1608
|
messagesDispatcher({
|
|
1691
1609
|
type: SEND_MESSAGEGE_FAILURE,
|
|
@@ -1708,11 +1626,10 @@ function useSendFileMessageCallback(_ref, _ref2) {
|
|
|
1708
1626
|
if (createCustomParams) {
|
|
1709
1627
|
logger.info('Channel: creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);
|
|
1710
1628
|
}
|
|
1711
|
-
|
|
1712
1629
|
const params = onBeforeSendFileMessage ? onBeforeSendFileMessage(file, quoteMessage) : createParamsDefault(file);
|
|
1713
1630
|
logger.info('Channel: Uploading file message start!', params);
|
|
1714
1631
|
currentGroupChannel.sendFileMessage(params).onPending(pendingMsg => {
|
|
1715
|
-
pubSub.publish(SEND_MESSAGE_START, {
|
|
1632
|
+
pubSub.publish(PUBSUB_TOPICS.SEND_MESSAGE_START, {
|
|
1716
1633
|
/* pubSub is used instead of messagesDispatcher
|
|
1717
1634
|
to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */
|
|
1718
1635
|
message: _objectSpread2(_objectSpread2({}, pendingMsg), {}, {
|
|
@@ -1727,10 +1644,10 @@ function useSendFileMessageCallback(_ref, _ref2) {
|
|
|
1727
1644
|
logger.error('Channel: Sending file message failed!', {
|
|
1728
1645
|
message,
|
|
1729
1646
|
error
|
|
1730
|
-
});
|
|
1731
|
-
|
|
1732
|
-
message.localUrl = URL.createObjectURL(file);
|
|
1733
|
-
|
|
1647
|
+
});
|
|
1648
|
+
// eslint-disable-next-line no-param-reassign
|
|
1649
|
+
message.localUrl = URL.createObjectURL(file);
|
|
1650
|
+
// eslint-disable-next-line no-param-reassign
|
|
1734
1651
|
message.file = file;
|
|
1735
1652
|
messagesDispatcher({
|
|
1736
1653
|
type: SEND_MESSAGEGE_FAILURE,
|
|
@@ -1748,64 +1665,6 @@ function useSendFileMessageCallback(_ref, _ref2) {
|
|
|
1748
1665
|
return [sendMessage];
|
|
1749
1666
|
}
|
|
1750
1667
|
|
|
1751
|
-
function useMemoizedEmojiListItems(_ref, _ref2) {
|
|
1752
|
-
let {
|
|
1753
|
-
emojiContainer,
|
|
1754
|
-
toggleReaction
|
|
1755
|
-
} = _ref;
|
|
1756
|
-
let {
|
|
1757
|
-
isReactionEnabled,
|
|
1758
|
-
logger,
|
|
1759
|
-
userId,
|
|
1760
|
-
emojiAllList
|
|
1761
|
-
} = _ref2;
|
|
1762
|
-
|
|
1763
|
-
/* eslint-disable react/prop-types */
|
|
1764
|
-
return useMemo(() => _ref3 => {
|
|
1765
|
-
let {
|
|
1766
|
-
parentRef,
|
|
1767
|
-
parentContainRef,
|
|
1768
|
-
message,
|
|
1769
|
-
closeDropdown,
|
|
1770
|
-
spaceFromTrigger = {}
|
|
1771
|
-
} = _ref3;
|
|
1772
|
-
|
|
1773
|
-
if (!isReactionEnabled || !(parentRef || parentContainRef || message || closeDropdown)) {
|
|
1774
|
-
logger.warning('Channel: Invalid Params in memoizedEmojiListItems');
|
|
1775
|
-
return null;
|
|
1776
|
-
}
|
|
1777
|
-
|
|
1778
|
-
return /*#__PURE__*/React__default.createElement(EmojiListItems, {
|
|
1779
|
-
parentRef: parentRef,
|
|
1780
|
-
parentContainRef: parentContainRef,
|
|
1781
|
-
closeDropdown: closeDropdown,
|
|
1782
|
-
spaceFromTrigger: spaceFromTrigger
|
|
1783
|
-
}, emojiAllList.map(emoji => {
|
|
1784
|
-
const reactedReaction = message.reactions.filter(reaction => reaction.key === emoji.key)[0];
|
|
1785
|
-
const isReacted = reactedReaction ? !(reactedReaction.userIds.indexOf(userId) < 0) : false;
|
|
1786
|
-
return /*#__PURE__*/React__default.createElement(ReactionButton, {
|
|
1787
|
-
key: emoji.key,
|
|
1788
|
-
width: "36px",
|
|
1789
|
-
height: "36px",
|
|
1790
|
-
selected: isReacted,
|
|
1791
|
-
onClick: () => {
|
|
1792
|
-
closeDropdown();
|
|
1793
|
-
toggleReaction(message, emoji.key, isReacted);
|
|
1794
|
-
}
|
|
1795
|
-
}, /*#__PURE__*/React__default.createElement(ImageRenderer, {
|
|
1796
|
-
url: emoji.url,
|
|
1797
|
-
width: "28px",
|
|
1798
|
-
height: "28px",
|
|
1799
|
-
defaultComponent: /*#__PURE__*/React__default.createElement(Icon, {
|
|
1800
|
-
width: "28px",
|
|
1801
|
-
height: "28px",
|
|
1802
|
-
type: IconTypes.QUESTION
|
|
1803
|
-
})
|
|
1804
|
-
}));
|
|
1805
|
-
}));
|
|
1806
|
-
}, [emojiContainer, toggleReaction]);
|
|
1807
|
-
}
|
|
1808
|
-
|
|
1809
1668
|
function useToggleReactionCallback(_ref, _ref2) {
|
|
1810
1669
|
let {
|
|
1811
1670
|
currentGroupChannel
|
|
@@ -1822,7 +1681,6 @@ function useToggleReactionCallback(_ref, _ref2) {
|
|
|
1822
1681
|
});
|
|
1823
1682
|
return;
|
|
1824
1683
|
}
|
|
1825
|
-
|
|
1826
1684
|
currentGroupChannel.addReaction(message, key).then(res => {
|
|
1827
1685
|
logger.info('Add reaction success', res);
|
|
1828
1686
|
}).catch(err => {
|
|
@@ -1831,363 +1689,441 @@ function useToggleReactionCallback(_ref, _ref2) {
|
|
|
1831
1689
|
}, [currentGroupChannel]);
|
|
1832
1690
|
}
|
|
1833
1691
|
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1838
|
-
|
|
1839
|
-
|
|
1840
|
-
|
|
1841
|
-
|
|
1842
|
-
|
|
1692
|
+
// To prevent multiple clicks on the message in the channel while scrolling
|
|
1693
|
+
function deactivateClick(scrollRef) {
|
|
1694
|
+
const element = scrollRef.current;
|
|
1695
|
+
const parentNode = element === null || element === void 0 ? void 0 : element.parentNode;
|
|
1696
|
+
if (element && parentNode) {
|
|
1697
|
+
element.style.pointerEvents = 'none';
|
|
1698
|
+
parentNode.style.cursor = 'wait';
|
|
1699
|
+
}
|
|
1700
|
+
}
|
|
1701
|
+
function activateClick(scrollRef) {
|
|
1702
|
+
const element = scrollRef.current;
|
|
1703
|
+
const parentNode = element === null || element === void 0 ? void 0 : element.parentNode;
|
|
1704
|
+
if (element && parentNode) {
|
|
1705
|
+
element.style.pointerEvents = 'auto';
|
|
1706
|
+
parentNode.style.cursor = 'auto';
|
|
1707
|
+
}
|
|
1708
|
+
}
|
|
1709
|
+
function useScrollToMessage(_ref, _ref2) {
|
|
1710
|
+
let {
|
|
1711
|
+
setInitialTimeStamp,
|
|
1712
|
+
setAnimatedMessageId,
|
|
1713
|
+
allMessages,
|
|
1714
|
+
scrollRef
|
|
1715
|
+
} = _ref;
|
|
1716
|
+
let {
|
|
1717
|
+
logger
|
|
1718
|
+
} = _ref2;
|
|
1719
|
+
return useCallback((createdAt, messageId) => {
|
|
1720
|
+
const isPresent = allMessages.find(m => m.messageId === messageId);
|
|
1843
1721
|
setAnimatedMessageId(null);
|
|
1844
|
-
setTimeout(
|
|
1845
|
-
|
|
1846
|
-
logger.info('Channel: scroll to message -
|
|
1847
|
-
|
|
1848
|
-
|
|
1849
|
-
|
|
1850
|
-
|
|
1851
|
-
|
|
1852
|
-
|
|
1722
|
+
setTimeout(() => {
|
|
1723
|
+
try {
|
|
1724
|
+
logger.info('Channel: scroll to message - disabling mouse events');
|
|
1725
|
+
deactivateClick(scrollRef);
|
|
1726
|
+
if (isPresent) {
|
|
1727
|
+
logger.info('Channel: scroll to message - message is present');
|
|
1728
|
+
setAnimatedMessageId(messageId);
|
|
1729
|
+
scrollToRenderedMessage(scrollRef, createdAt);
|
|
1730
|
+
} else {
|
|
1731
|
+
logger.info('Channel: scroll to message - fetching older messages');
|
|
1732
|
+
setInitialTimeStamp(null);
|
|
1733
|
+
setInitialTimeStamp(createdAt);
|
|
1734
|
+
setAnimatedMessageId(messageId);
|
|
1735
|
+
}
|
|
1736
|
+
} finally {
|
|
1737
|
+
logger.info('Channel: scroll to message - enabled mouse events');
|
|
1738
|
+
activateClick(scrollRef);
|
|
1853
1739
|
}
|
|
1854
1740
|
});
|
|
1855
1741
|
}, [setInitialTimeStamp, setAnimatedMessageId, allMessages]);
|
|
1856
1742
|
}
|
|
1857
1743
|
|
|
1858
|
-
|
|
1859
|
-
|
|
1860
|
-
|
|
1861
|
-
|
|
1862
|
-
|
|
1863
|
-
|
|
1864
|
-
|
|
1865
|
-
|
|
1866
|
-
|
|
1867
|
-
|
|
1868
|
-
|
|
1869
|
-
|
|
1870
|
-
|
|
1871
|
-
|
|
1872
|
-
|
|
1873
|
-
|
|
1874
|
-
|
|
1875
|
-
|
|
1876
|
-
|
|
1877
|
-
|
|
1878
|
-
|
|
1879
|
-
|
|
1880
|
-
|
|
1881
|
-
|
|
1882
|
-
|
|
1883
|
-
|
|
1884
|
-
|
|
1885
|
-
|
|
1886
|
-
|
|
1887
|
-
|
|
1888
|
-
|
|
1889
|
-
|
|
1890
|
-
|
|
1891
|
-
|
|
1892
|
-
|
|
1893
|
-
|
|
1894
|
-
|
|
1895
|
-
|
|
1896
|
-
|
|
1897
|
-
|
|
1898
|
-
|
|
1899
|
-
|
|
1900
|
-
|
|
1901
|
-
|
|
1902
|
-
|
|
1903
|
-
|
|
1904
|
-
|
|
1905
|
-
|
|
1906
|
-
|
|
1907
|
-
|
|
1908
|
-
|
|
1909
|
-
|
|
1744
|
+
const useSendVoiceMessageCallback = (_ref, _ref2) => {
|
|
1745
|
+
let {
|
|
1746
|
+
currentGroupChannel,
|
|
1747
|
+
onBeforeSendVoiceMessage
|
|
1748
|
+
} = _ref;
|
|
1749
|
+
let {
|
|
1750
|
+
logger,
|
|
1751
|
+
pubSub,
|
|
1752
|
+
scrollRef,
|
|
1753
|
+
messagesDispatcher
|
|
1754
|
+
} = _ref2;
|
|
1755
|
+
const sendMessage = useCallback((file, duration, quoteMessage) => {
|
|
1756
|
+
const messageParams = onBeforeSendVoiceMessage && typeof onBeforeSendVoiceMessage === 'function' ? onBeforeSendVoiceMessage(file, quoteMessage) : {
|
|
1757
|
+
file,
|
|
1758
|
+
fileName: VOICE_MESSAGE_FILE_NAME,
|
|
1759
|
+
mimeType: VOICE_MESSAGE_MIME_TYPE,
|
|
1760
|
+
metaArrays: [new MessageMetaArray({
|
|
1761
|
+
key: META_ARRAY_VOICE_DURATION_KEY,
|
|
1762
|
+
value: [`${duration}`]
|
|
1763
|
+
}), new MessageMetaArray({
|
|
1764
|
+
key: META_ARRAY_MESSAGE_TYPE_KEY,
|
|
1765
|
+
value: [META_ARRAY_MESSAGE_TYPE_VALUE__VOICE]
|
|
1766
|
+
})]
|
|
1767
|
+
};
|
|
1768
|
+
if (quoteMessage) {
|
|
1769
|
+
messageParams.isReplyToChannel = true;
|
|
1770
|
+
messageParams.parentMessageId = quoteMessage.messageId;
|
|
1771
|
+
}
|
|
1772
|
+
logger.info('Channel: Start sending voice message', messageParams);
|
|
1773
|
+
currentGroupChannel.sendFileMessage(messageParams).onPending(pendingMessage => {
|
|
1774
|
+
pubSub.publish(PUBSUB_TOPICS.SEND_MESSAGE_START, {
|
|
1775
|
+
/* pubSub is used instead of messagesDispatcher
|
|
1776
|
+
to avoid redundantly calling `messageActionTypes.SEND_MESSAGEGE_START` */
|
|
1777
|
+
message: pendingMessage,
|
|
1778
|
+
channel: currentGroupChannel
|
|
1779
|
+
});
|
|
1780
|
+
setTimeout(() => scrollIntoLast(0, scrollRef), 1000);
|
|
1781
|
+
}).onFailed((err, failedMessage) => {
|
|
1782
|
+
logger.error('Channel: Sending voice message failed!', {
|
|
1783
|
+
failedMessage,
|
|
1784
|
+
err
|
|
1785
|
+
});
|
|
1786
|
+
messagesDispatcher({
|
|
1787
|
+
type: SEND_MESSAGEGE_FAILURE,
|
|
1788
|
+
payload: failedMessage
|
|
1789
|
+
});
|
|
1790
|
+
}).onSucceeded(succeededMessage => {
|
|
1791
|
+
logger.info('Channel: Sending voice message success!', succeededMessage);
|
|
1792
|
+
messagesDispatcher({
|
|
1793
|
+
type: SEND_MESSAGEGE_SUCESS,
|
|
1794
|
+
payload: succeededMessage
|
|
1795
|
+
});
|
|
1796
|
+
});
|
|
1797
|
+
}, [currentGroupChannel, onBeforeSendVoiceMessage]);
|
|
1798
|
+
return [sendMessage];
|
|
1799
|
+
};
|
|
1910
1800
|
|
|
1911
|
-
|
|
1801
|
+
const ChannelContext = /*#__PURE__*/React__default.createContext(undefined);
|
|
1802
|
+
const ChannelProvider = props => {
|
|
1803
|
+
var _globalStore$stores, _globalStore$stores$s, _globalStore$stores2, _globalStore$stores2$, _ref;
|
|
1804
|
+
const {
|
|
1805
|
+
channelUrl,
|
|
1806
|
+
children,
|
|
1807
|
+
isReactionEnabled,
|
|
1808
|
+
isMessageGroupingEnabled = true,
|
|
1809
|
+
showSearchIcon,
|
|
1810
|
+
animatedMessage,
|
|
1811
|
+
highlightedMessage,
|
|
1812
|
+
startingPoint,
|
|
1813
|
+
onBeforeSendUserMessage,
|
|
1814
|
+
onBeforeSendFileMessage,
|
|
1815
|
+
onBeforeUpdateUserMessage,
|
|
1816
|
+
onBeforeSendVoiceMessage,
|
|
1817
|
+
onChatHeaderActionClick,
|
|
1818
|
+
onSearchClick,
|
|
1819
|
+
onBackClick,
|
|
1820
|
+
replyType,
|
|
1821
|
+
threadReplySelectType,
|
|
1822
|
+
queries,
|
|
1823
|
+
filterMessageList,
|
|
1824
|
+
disableMarkAsRead = false,
|
|
1825
|
+
onReplyInThread,
|
|
1826
|
+
onQuoteMessageClick,
|
|
1827
|
+
onMessageAnimated,
|
|
1828
|
+
onMessageHighlighted
|
|
1829
|
+
} = props;
|
|
1830
|
+
const globalStore = useSendbirdStateContext();
|
|
1831
|
+
const {
|
|
1832
|
+
config
|
|
1833
|
+
} = globalStore;
|
|
1834
|
+
const {
|
|
1835
|
+
pubSub,
|
|
1836
|
+
logger,
|
|
1837
|
+
userId,
|
|
1838
|
+
isOnline,
|
|
1839
|
+
imageCompression,
|
|
1840
|
+
isMentionEnabled,
|
|
1841
|
+
isVoiceMessageEnabled,
|
|
1842
|
+
onUserProfileMessage,
|
|
1843
|
+
markAsReadScheduler,
|
|
1844
|
+
groupChannel
|
|
1845
|
+
} = config;
|
|
1846
|
+
const sdk = globalStore === null || globalStore === void 0 ? void 0 : (_globalStore$stores = globalStore.stores) === null || _globalStore$stores === void 0 ? void 0 : (_globalStore$stores$s = _globalStore$stores.sdkStore) === null || _globalStore$stores$s === void 0 ? void 0 : _globalStore$stores$s.sdk;
|
|
1847
|
+
const sdkInit = globalStore === null || globalStore === void 0 ? void 0 : (_globalStore$stores2 = globalStore.stores) === null || _globalStore$stores2 === void 0 ? void 0 : (_globalStore$stores2$ = _globalStore$stores2.sdkStore) === null || _globalStore$stores2$ === void 0 ? void 0 : _globalStore$stores2$.initialized;
|
|
1848
|
+
const globalConfigs = globalStore === null || globalStore === void 0 ? void 0 : globalStore.config;
|
|
1849
|
+
const [initialTimeStamp, setInitialTimeStamp] = useState(startingPoint);
|
|
1850
|
+
useEffect(() => {
|
|
1912
1851
|
setInitialTimeStamp(startingPoint);
|
|
1913
1852
|
}, [startingPoint, channelUrl]);
|
|
1914
|
-
|
|
1915
|
-
|
|
1916
|
-
|
|
1917
|
-
setAnimatedMessageId = _j[1];
|
|
1918
|
-
|
|
1919
|
-
var _k = useState(highlightedMessage),
|
|
1920
|
-
highLightedMessageId = _k[0],
|
|
1921
|
-
setHighLightedMessageId = _k[1];
|
|
1922
|
-
|
|
1923
|
-
useEffect(function () {
|
|
1853
|
+
const [animatedMessageId, setAnimatedMessageId] = useState(0);
|
|
1854
|
+
const [highLightedMessageId, setHighLightedMessageId] = useState(highlightedMessage);
|
|
1855
|
+
useEffect(() => {
|
|
1924
1856
|
setHighLightedMessageId(highlightedMessage);
|
|
1925
1857
|
}, [highlightedMessage]);
|
|
1926
|
-
|
|
1927
|
-
|
|
1928
|
-
|
|
1929
|
-
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
1949
|
-
|
|
1950
|
-
|
|
1951
|
-
|
|
1952
|
-
|
|
1953
|
-
|
|
1954
|
-
return usingReaction ? getAllEmojisMapFromEmojiContainer(emojiContainer) : new Map();
|
|
1955
|
-
}, [emojiContainer]);
|
|
1956
|
-
var emojiAllList = useMemo(function () {
|
|
1957
|
-
return usingReaction ? getAllEmojisFromEmojiContainer(emojiContainer) : [];
|
|
1958
|
-
}, [emojiContainer]);
|
|
1959
|
-
var nicknamesMap = useMemo(function () {
|
|
1960
|
-
return usingReaction && currentGroupChannel ? getNicknamesMapFromMembers(currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.members) : new Map();
|
|
1961
|
-
}, [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.members]); // Animate message
|
|
1858
|
+
const userFilledMessageListQuery = queries === null || queries === void 0 ? void 0 : queries.messageListParams;
|
|
1859
|
+
const [quoteMessage, setQuoteMessage] = useState(null);
|
|
1860
|
+
const [messagesStore, messagesDispatcher] = useReducer(reducer, messagesInitialState);
|
|
1861
|
+
const scrollRef = useRef(null);
|
|
1862
|
+
const {
|
|
1863
|
+
allMessages,
|
|
1864
|
+
loading,
|
|
1865
|
+
initialized,
|
|
1866
|
+
unreadSince,
|
|
1867
|
+
isInvalid,
|
|
1868
|
+
currentGroupChannel,
|
|
1869
|
+
hasMorePrev,
|
|
1870
|
+
oldestMessageTimeStamp,
|
|
1871
|
+
hasMoreNext,
|
|
1872
|
+
latestMessageTimeStamp,
|
|
1873
|
+
emojiContainer,
|
|
1874
|
+
readStatus
|
|
1875
|
+
} = messagesStore;
|
|
1876
|
+
const isSuper = (currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.isSuper) || false;
|
|
1877
|
+
const isBroadcast = (currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.isBroadcast) || false;
|
|
1878
|
+
const usingReaction = getIsReactionEnabled({
|
|
1879
|
+
isBroadcast,
|
|
1880
|
+
isSuper,
|
|
1881
|
+
globalLevel: config === null || config === void 0 ? void 0 : config.isReactionEnabled,
|
|
1882
|
+
moduleLevel: isReactionEnabled
|
|
1883
|
+
});
|
|
1884
|
+
const emojiAllMap = useMemo(() => usingReaction ? getAllEmojisMapFromEmojiContainer(emojiContainer) : new Map(), [emojiContainer]);
|
|
1885
|
+
const nicknamesMap = useMemo(() => usingReaction && currentGroupChannel ? getNicknamesMapFromMembers(currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.members) : new Map(), [currentGroupChannel === null || currentGroupChannel === void 0 ? void 0 : currentGroupChannel.members]);
|
|
1962
1886
|
|
|
1963
|
-
|
|
1887
|
+
// Animate message
|
|
1888
|
+
useEffect(() => {
|
|
1964
1889
|
if (animatedMessage) {
|
|
1965
1890
|
setAnimatedMessageId(animatedMessage);
|
|
1966
1891
|
}
|
|
1967
|
-
}, [animatedMessage]);
|
|
1892
|
+
}, [animatedMessage]);
|
|
1968
1893
|
|
|
1969
|
-
|
|
1970
|
-
|
|
1971
|
-
|
|
1972
|
-
|
|
1973
|
-
|
|
1894
|
+
// Scrollup is default scroll for channel
|
|
1895
|
+
const onScrollCallback = useScrollCallback({
|
|
1896
|
+
currentGroupChannel,
|
|
1897
|
+
oldestMessageTimeStamp,
|
|
1898
|
+
userFilledMessageListQuery,
|
|
1899
|
+
replyType,
|
|
1900
|
+
isVoiceMessageEnabled
|
|
1974
1901
|
}, {
|
|
1975
|
-
hasMorePrev
|
|
1976
|
-
logger
|
|
1977
|
-
messagesDispatcher
|
|
1978
|
-
sdk
|
|
1902
|
+
hasMorePrev,
|
|
1903
|
+
logger,
|
|
1904
|
+
messagesDispatcher,
|
|
1905
|
+
sdk
|
|
1979
1906
|
});
|
|
1980
|
-
|
|
1981
|
-
setInitialTimeStamp
|
|
1982
|
-
setAnimatedMessageId
|
|
1983
|
-
allMessages
|
|
1907
|
+
const scrollToMessage = useScrollToMessage({
|
|
1908
|
+
setInitialTimeStamp,
|
|
1909
|
+
setAnimatedMessageId,
|
|
1910
|
+
allMessages,
|
|
1911
|
+
scrollRef
|
|
1984
1912
|
}, {
|
|
1985
|
-
logger
|
|
1986
|
-
});
|
|
1913
|
+
logger
|
|
1914
|
+
});
|
|
1915
|
+
|
|
1916
|
+
// onScrollDownCallback is added for navigation to different timestamps on messageSearch
|
|
1987
1917
|
// hasMorePrev, onScrollCallback -> scroll up(default behavior)
|
|
1988
1918
|
// hasMoreNext, onScrollDownCallback -> scroll down
|
|
1989
|
-
|
|
1990
|
-
|
|
1991
|
-
|
|
1992
|
-
|
|
1993
|
-
|
|
1994
|
-
|
|
1995
|
-
|
|
1919
|
+
const onScrollDownCallback = useScrollDownCallback({
|
|
1920
|
+
currentGroupChannel,
|
|
1921
|
+
latestMessageTimeStamp,
|
|
1922
|
+
userFilledMessageListQuery,
|
|
1923
|
+
hasMoreNext,
|
|
1924
|
+
replyType,
|
|
1925
|
+
isVoiceMessageEnabled
|
|
1996
1926
|
}, {
|
|
1997
|
-
logger
|
|
1998
|
-
messagesDispatcher
|
|
1999
|
-
sdk
|
|
1927
|
+
logger,
|
|
1928
|
+
messagesDispatcher,
|
|
1929
|
+
sdk
|
|
2000
1930
|
});
|
|
2001
|
-
|
|
2002
|
-
currentGroupChannel
|
|
1931
|
+
const toggleReaction = useToggleReactionCallback({
|
|
1932
|
+
currentGroupChannel
|
|
2003
1933
|
}, {
|
|
2004
|
-
logger
|
|
1934
|
+
logger
|
|
2005
1935
|
});
|
|
2006
|
-
var memoizedEmojiListItems = useMemoizedEmojiListItems({
|
|
2007
|
-
emojiContainer: emojiContainer,
|
|
2008
|
-
toggleReaction: toggleReaction
|
|
2009
|
-
}, {
|
|
2010
|
-
isReactionEnabled: usingReaction,
|
|
2011
|
-
logger: logger,
|
|
2012
|
-
userId: userId,
|
|
2013
|
-
emojiAllList: emojiAllList
|
|
2014
|
-
}); // to create message-datasource
|
|
2015
|
-
// this hook sets currentGroupChannel asynchronously
|
|
2016
1936
|
|
|
1937
|
+
// to create message-datasource
|
|
1938
|
+
// this hook sets currentGroupChannel asynchronously
|
|
2017
1939
|
useSetChannel({
|
|
2018
|
-
channelUrl
|
|
2019
|
-
sdkInit
|
|
2020
|
-
disableMarkAsRead
|
|
1940
|
+
channelUrl,
|
|
1941
|
+
sdkInit,
|
|
1942
|
+
disableMarkAsRead
|
|
2021
1943
|
}, {
|
|
2022
|
-
messagesDispatcher
|
|
2023
|
-
sdk
|
|
2024
|
-
logger
|
|
2025
|
-
|
|
1944
|
+
messagesDispatcher,
|
|
1945
|
+
sdk,
|
|
1946
|
+
logger,
|
|
1947
|
+
markAsReadScheduler
|
|
1948
|
+
});
|
|
2026
1949
|
|
|
2027
|
-
|
|
1950
|
+
// to set quote message as null
|
|
1951
|
+
useEffect(() => {
|
|
2028
1952
|
setQuoteMessage(null);
|
|
2029
|
-
}, [channelUrl]);
|
|
1953
|
+
}, [channelUrl]);
|
|
2030
1954
|
|
|
1955
|
+
// Hook to handle ChannelEvents and send values to useReducer using messagesDispatcher
|
|
2031
1956
|
useHandleChannelEvents({
|
|
2032
|
-
currentGroupChannel
|
|
2033
|
-
sdkInit
|
|
1957
|
+
currentGroupChannel,
|
|
1958
|
+
sdkInit,
|
|
2034
1959
|
currentUserId: userId,
|
|
2035
|
-
|
|
2036
|
-
disableMarkAsRead: disableMarkAsRead
|
|
1960
|
+
disableMarkAsRead
|
|
2037
1961
|
}, {
|
|
2038
|
-
messagesDispatcher
|
|
2039
|
-
sdk
|
|
2040
|
-
logger
|
|
2041
|
-
scrollRef
|
|
2042
|
-
setQuoteMessage
|
|
2043
|
-
});
|
|
1962
|
+
messagesDispatcher,
|
|
1963
|
+
sdk,
|
|
1964
|
+
logger,
|
|
1965
|
+
scrollRef,
|
|
1966
|
+
setQuoteMessage
|
|
1967
|
+
});
|
|
1968
|
+
|
|
1969
|
+
// hook that fetches messages when channel changes
|
|
2044
1970
|
// to be clear here useGetChannel sets currentGroupChannel
|
|
2045
1971
|
// and useInitialMessagesFetch executes when currentGroupChannel changes
|
|
2046
1972
|
// p.s This one executes on initialTimeStamp change too
|
|
2047
|
-
|
|
2048
1973
|
useInitialMessagesFetch({
|
|
2049
|
-
currentGroupChannel
|
|
2050
|
-
userFilledMessageListQuery
|
|
2051
|
-
initialTimeStamp
|
|
2052
|
-
latestMessageTimeStamp
|
|
2053
|
-
replyType
|
|
1974
|
+
currentGroupChannel,
|
|
1975
|
+
userFilledMessageListQuery,
|
|
1976
|
+
initialTimeStamp,
|
|
1977
|
+
latestMessageTimeStamp,
|
|
1978
|
+
replyType,
|
|
1979
|
+
isVoiceMessageEnabled
|
|
2054
1980
|
}, {
|
|
2055
|
-
logger
|
|
2056
|
-
scrollRef
|
|
2057
|
-
messagesDispatcher
|
|
2058
|
-
});
|
|
1981
|
+
logger,
|
|
1982
|
+
scrollRef,
|
|
1983
|
+
messagesDispatcher
|
|
1984
|
+
});
|
|
2059
1985
|
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2063
|
-
|
|
1986
|
+
// handles API calls from withSendbird
|
|
1987
|
+
useEffect(() => {
|
|
1988
|
+
const subscriber = pubSubHandler({
|
|
1989
|
+
channelUrl,
|
|
1990
|
+
pubSub,
|
|
2064
1991
|
dispatcher: messagesDispatcher,
|
|
2065
|
-
scrollRef
|
|
1992
|
+
scrollRef
|
|
2066
1993
|
});
|
|
2067
|
-
return
|
|
1994
|
+
return () => {
|
|
2068
1995
|
pubSubHandleRemover(subscriber);
|
|
2069
1996
|
};
|
|
2070
|
-
}, [channelUrl, sdkInit]);
|
|
1997
|
+
}, [channelUrl, sdkInit]);
|
|
2071
1998
|
|
|
1999
|
+
// handling connection breaks
|
|
2072
2000
|
useHandleReconnect({
|
|
2073
|
-
isOnline
|
|
2074
|
-
replyType
|
|
2075
|
-
disableMarkAsRead
|
|
2001
|
+
isOnline,
|
|
2002
|
+
replyType,
|
|
2003
|
+
disableMarkAsRead
|
|
2076
2004
|
}, {
|
|
2077
|
-
logger
|
|
2078
|
-
sdk
|
|
2079
|
-
scrollRef
|
|
2080
|
-
currentGroupChannel
|
|
2081
|
-
messagesDispatcher
|
|
2082
|
-
userFilledMessageListQuery
|
|
2083
|
-
|
|
2005
|
+
logger,
|
|
2006
|
+
sdk,
|
|
2007
|
+
scrollRef,
|
|
2008
|
+
currentGroupChannel,
|
|
2009
|
+
messagesDispatcher,
|
|
2010
|
+
userFilledMessageListQuery,
|
|
2011
|
+
markAsReadScheduler
|
|
2012
|
+
});
|
|
2084
2013
|
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2014
|
+
// callbacks for Message CURD actions
|
|
2015
|
+
const deleteMessage = useDeleteMessageCallback({
|
|
2016
|
+
currentGroupChannel,
|
|
2017
|
+
messagesDispatcher
|
|
2018
|
+
}, {
|
|
2019
|
+
logger
|
|
2020
|
+
});
|
|
2021
|
+
const updateMessage = useUpdateMessageCallback({
|
|
2022
|
+
currentGroupChannel,
|
|
2023
|
+
messagesDispatcher,
|
|
2024
|
+
onBeforeUpdateUserMessage,
|
|
2025
|
+
isMentionEnabled
|
|
2088
2026
|
}, {
|
|
2089
|
-
logger
|
|
2027
|
+
logger,
|
|
2028
|
+
pubSub
|
|
2090
2029
|
});
|
|
2091
|
-
|
|
2092
|
-
currentGroupChannel
|
|
2093
|
-
messagesDispatcher
|
|
2094
|
-
onBeforeUpdateUserMessage: onBeforeUpdateUserMessage,
|
|
2095
|
-
isMentionEnabled: isMentionEnabled
|
|
2030
|
+
const resendMessage = useResendMessageCallback({
|
|
2031
|
+
currentGroupChannel,
|
|
2032
|
+
messagesDispatcher
|
|
2096
2033
|
}, {
|
|
2097
|
-
logger
|
|
2098
|
-
pubSub: pubSub
|
|
2034
|
+
logger
|
|
2099
2035
|
});
|
|
2100
|
-
|
|
2101
|
-
currentGroupChannel
|
|
2102
|
-
|
|
2036
|
+
const [messageInputRef, sendMessage] = useSendMessageCallback({
|
|
2037
|
+
currentGroupChannel,
|
|
2038
|
+
onBeforeSendUserMessage,
|
|
2039
|
+
isMentionEnabled
|
|
2103
2040
|
}, {
|
|
2104
|
-
logger
|
|
2041
|
+
logger,
|
|
2042
|
+
pubSub,
|
|
2043
|
+
scrollRef,
|
|
2044
|
+
messagesDispatcher
|
|
2105
2045
|
});
|
|
2106
|
-
|
|
2107
|
-
|
|
2108
|
-
|
|
2109
|
-
|
|
2110
|
-
isMentionEnabled: isMentionEnabled
|
|
2046
|
+
const [sendFileMessage] = useSendFileMessageCallback({
|
|
2047
|
+
currentGroupChannel,
|
|
2048
|
+
onBeforeSendFileMessage,
|
|
2049
|
+
imageCompression
|
|
2111
2050
|
}, {
|
|
2112
|
-
logger
|
|
2113
|
-
pubSub
|
|
2114
|
-
scrollRef
|
|
2115
|
-
messagesDispatcher
|
|
2116
|
-
})
|
|
2117
|
-
|
|
2118
|
-
|
|
2119
|
-
|
|
2120
|
-
var sendFileMessage = useSendFileMessageCallback({
|
|
2121
|
-
currentGroupChannel: currentGroupChannel,
|
|
2122
|
-
onBeforeSendFileMessage: onBeforeSendFileMessage,
|
|
2123
|
-
imageCompression: imageCompression
|
|
2051
|
+
logger,
|
|
2052
|
+
pubSub,
|
|
2053
|
+
scrollRef,
|
|
2054
|
+
messagesDispatcher
|
|
2055
|
+
});
|
|
2056
|
+
const [sendVoiceMessage] = useSendVoiceMessageCallback({
|
|
2057
|
+
currentGroupChannel,
|
|
2058
|
+
onBeforeSendVoiceMessage
|
|
2124
2059
|
}, {
|
|
2125
|
-
logger
|
|
2126
|
-
pubSub
|
|
2127
|
-
scrollRef
|
|
2128
|
-
messagesDispatcher
|
|
2129
|
-
})
|
|
2060
|
+
logger,
|
|
2061
|
+
pubSub,
|
|
2062
|
+
scrollRef,
|
|
2063
|
+
messagesDispatcher
|
|
2064
|
+
});
|
|
2130
2065
|
return /*#__PURE__*/React__default.createElement(ChannelContext.Provider, {
|
|
2131
2066
|
value: {
|
|
2132
2067
|
// props
|
|
2133
|
-
channelUrl
|
|
2068
|
+
channelUrl,
|
|
2134
2069
|
isReactionEnabled: usingReaction,
|
|
2135
|
-
isMessageGroupingEnabled
|
|
2136
|
-
showSearchIcon: showSearchIcon,
|
|
2137
|
-
highlightedMessage
|
|
2138
|
-
startingPoint
|
|
2139
|
-
onBeforeSendUserMessage
|
|
2140
|
-
onBeforeSendFileMessage
|
|
2141
|
-
onBeforeUpdateUserMessage
|
|
2142
|
-
onChatHeaderActionClick
|
|
2143
|
-
onSearchClick
|
|
2144
|
-
onBackClick
|
|
2145
|
-
replyType
|
|
2146
|
-
threadReplySelectType: threadReplySelectType,
|
|
2147
|
-
queries
|
|
2148
|
-
|
|
2149
|
-
|
|
2150
|
-
|
|
2151
|
-
|
|
2152
|
-
|
|
2070
|
+
isMessageGroupingEnabled,
|
|
2071
|
+
showSearchIcon: showSearchIcon !== null && showSearchIcon !== void 0 ? showSearchIcon : globalConfigs.showSearchIcon,
|
|
2072
|
+
highlightedMessage,
|
|
2073
|
+
startingPoint,
|
|
2074
|
+
onBeforeSendUserMessage,
|
|
2075
|
+
onBeforeSendFileMessage,
|
|
2076
|
+
onBeforeUpdateUserMessage,
|
|
2077
|
+
onChatHeaderActionClick,
|
|
2078
|
+
onSearchClick,
|
|
2079
|
+
onBackClick,
|
|
2080
|
+
replyType,
|
|
2081
|
+
threadReplySelectType: (_ref = threadReplySelectType !== null && threadReplySelectType !== void 0 ? threadReplySelectType : getCaseResolvedThreadReplySelectType(groupChannel.threadReplySelectType).upperCase) !== null && _ref !== void 0 ? _ref : ThreadReplySelectType.THREAD,
|
|
2082
|
+
queries,
|
|
2083
|
+
filterMessageList,
|
|
2084
|
+
disableMarkAsRead,
|
|
2085
|
+
onReplyInThread,
|
|
2086
|
+
onQuoteMessageClick,
|
|
2087
|
+
onMessageAnimated,
|
|
2088
|
+
onMessageHighlighted,
|
|
2153
2089
|
// messagesStore
|
|
2154
|
-
allMessages
|
|
2155
|
-
loading
|
|
2156
|
-
initialized
|
|
2157
|
-
unreadSince
|
|
2158
|
-
isInvalid
|
|
2159
|
-
currentGroupChannel
|
|
2160
|
-
hasMorePrev
|
|
2161
|
-
hasMoreNext
|
|
2162
|
-
oldestMessageTimeStamp
|
|
2163
|
-
latestMessageTimeStamp
|
|
2164
|
-
emojiContainer
|
|
2165
|
-
readStatus
|
|
2090
|
+
allMessages,
|
|
2091
|
+
loading,
|
|
2092
|
+
initialized,
|
|
2093
|
+
unreadSince,
|
|
2094
|
+
isInvalid,
|
|
2095
|
+
currentGroupChannel,
|
|
2096
|
+
hasMorePrev,
|
|
2097
|
+
hasMoreNext,
|
|
2098
|
+
oldestMessageTimeStamp,
|
|
2099
|
+
latestMessageTimeStamp,
|
|
2100
|
+
emojiContainer,
|
|
2101
|
+
readStatus,
|
|
2166
2102
|
// utils
|
|
2167
|
-
scrollToMessage
|
|
2168
|
-
quoteMessage
|
|
2169
|
-
setQuoteMessage
|
|
2170
|
-
deleteMessage
|
|
2171
|
-
updateMessage
|
|
2172
|
-
resendMessage
|
|
2173
|
-
messageInputRef
|
|
2174
|
-
sendMessage
|
|
2175
|
-
sendFileMessage
|
|
2176
|
-
|
|
2177
|
-
|
|
2178
|
-
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
scrollRef
|
|
2190
|
-
toggleReaction
|
|
2103
|
+
scrollToMessage,
|
|
2104
|
+
quoteMessage,
|
|
2105
|
+
setQuoteMessage,
|
|
2106
|
+
deleteMessage,
|
|
2107
|
+
updateMessage,
|
|
2108
|
+
resendMessage,
|
|
2109
|
+
messageInputRef,
|
|
2110
|
+
sendMessage,
|
|
2111
|
+
sendFileMessage,
|
|
2112
|
+
sendVoiceMessage,
|
|
2113
|
+
initialTimeStamp,
|
|
2114
|
+
messageActionTypes,
|
|
2115
|
+
messagesDispatcher,
|
|
2116
|
+
setInitialTimeStamp,
|
|
2117
|
+
setAnimatedMessageId,
|
|
2118
|
+
setHighLightedMessageId,
|
|
2119
|
+
animatedMessageId,
|
|
2120
|
+
highLightedMessageId,
|
|
2121
|
+
nicknamesMap,
|
|
2122
|
+
emojiAllMap,
|
|
2123
|
+
onScrollCallback,
|
|
2124
|
+
onScrollDownCallback,
|
|
2125
|
+
scrollRef,
|
|
2126
|
+
toggleReaction
|
|
2191
2127
|
}
|
|
2192
2128
|
}, /*#__PURE__*/React__default.createElement(UserProfileProvider, {
|
|
2193
2129
|
disableUserProfile: props === null || props === void 0 ? void 0 : props.disableUserProfile,
|
|
@@ -2195,10 +2131,7 @@ var ChannelProvider = function (props) {
|
|
|
2195
2131
|
onUserProfileMessage: onUserProfileMessage
|
|
2196
2132
|
}, children));
|
|
2197
2133
|
};
|
|
2134
|
+
const useChannelContext = () => React__default.useContext(ChannelContext);
|
|
2198
2135
|
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
};
|
|
2202
|
-
|
|
2203
|
-
export { ChannelProvider as C, MARK_AS_READ as M, ThreadReplySelectType as T, isDisabledBecauseFrozen as a, isDisabledBecauseMuted as b, compareMessagesForGrouping as c, isOperator as d, isAboutSame as i, useChannelContext as u };
|
|
2204
|
-
//# sourceMappingURL=ChannelProvider-289cd35f.js.map
|
|
2136
|
+
export { ChannelProvider as C, isDisabledBecauseFrozen as a, isDisabledBecauseMuted as b, compareMessagesForGrouping as c, isOperator as d, getIsReactionEnabled as g, isAboutSame as i, useChannelContext as u };
|
|
2137
|
+
//# sourceMappingURL=ChannelProvider-6e8e99df.js.map
|