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