@sendbird/uikit-react 3.6.9 → 3.6.10
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 +55 -55
- package/CHANGELOG.md +6 -2
- package/Channel/components/ChannelHeader.js +22 -22
- package/Channel/components/ChannelUI.js +48 -48
- package/Channel/components/FileViewer.js +18 -18
- package/Channel/components/FrozenNotification.js +4 -4
- package/Channel/components/Message.js +46 -44
- package/Channel/components/Message.js.map +1 -1
- package/Channel/components/MessageInput.js +34 -34
- package/Channel/components/MessageList.js +75 -46
- package/Channel/components/MessageList.js.map +1 -1
- package/Channel/components/RemoveMessageModal.js +22 -22
- package/Channel/components/SuggestedMentionList.js +20 -20
- package/Channel/components/TypingIndicator.js +18 -18
- package/Channel/components/UnreadCount.js +4 -4
- package/Channel/context.js +15 -15
- package/Channel/utils/compareMessagesForGrouping.js +7 -7
- package/Channel/utils/getMessagePartsInfo.js +8 -8
- package/Channel.js +48 -48
- package/ChannelList/components/AddChannel.js +16 -16
- package/ChannelList/components/ChannelListHeader.js +6 -6
- package/ChannelList/components/ChannelListUI.js +33 -33
- package/ChannelList/components/ChannelPreview.js +29 -29
- package/ChannelList/components/ChannelPreviewAction.js +15 -15
- package/ChannelList/context.js +9 -9
- package/ChannelList.js +33 -33
- package/{ChannelListProvider-ba11ee5f.js → ChannelListProvider-db5ec581.js} +23 -28
- package/ChannelListProvider-db5ec581.js.map +1 -0
- package/{ChannelProvider-7400e8f6.js → ChannelProvider-4710d84f.js} +26 -20
- package/ChannelProvider-4710d84f.js.map +1 -0
- package/ChannelSettings/components/ChannelProfile.js +13 -13
- package/ChannelSettings/components/ChannelSettingsUI.js +18 -18
- package/ChannelSettings/components/EditDetailsModal.js +13 -13
- package/ChannelSettings/components/LeaveChannel.js +12 -12
- package/ChannelSettings/components/ModerationPanel.js +15 -15
- package/ChannelSettings/components/UserListItem.js +11 -11
- package/ChannelSettings/components/UserPanel.js +14 -14
- package/ChannelSettings/context.js +3 -3
- package/ChannelSettings.js +18 -18
- package/CreateChannel/components/CreateChannelUI.js +14 -14
- package/CreateChannel/components/InviteUsers.js +14 -14
- package/CreateChannel/components/InviteUsers.js.map +1 -1
- package/CreateChannel/components/SelectChannelType.js +11 -11
- package/CreateChannel/context.js +4 -4
- package/CreateChannel.js +14 -14
- package/{CreateChannelProvider-b2487387.js → CreateChannelProvider-2318bfd7.js} +1 -1
- package/{CreateChannelProvider-b2487387.js.map → CreateChannelProvider-2318bfd7.js.map} +1 -1
- package/CreateOpenChannel/components/CreateOpenChannelUI.js +11 -11
- package/CreateOpenChannel/context.js +1 -1
- package/CreateOpenChannel.js +11 -11
- package/EditUserProfile/components/EditUserProfileUI.js +13 -13
- package/EditUserProfile.js +13 -13
- package/{LocalizationContext-c9b218d4.js → LocalizationContext-ffc4148d.js} +3 -3
- package/{LocalizationContext-c9b218d4.js.map → LocalizationContext-ffc4148d.js.map} +1 -1
- package/{MediaQueryContext-532b0a77.js → MediaQueryContext-9401e28a.js} +1 -1
- package/{MediaQueryContext-532b0a77.js.map → MediaQueryContext-9401e28a.js.map} +1 -1
- package/{MemberList-15511dd2.js → MemberList-84e92e5d.js} +6 -6
- package/{MemberList-15511dd2.js.map → MemberList-84e92e5d.js.map} +1 -1
- package/MessageSearch/components/MessageSearchUI.js +13 -13
- package/MessageSearch/context.js +1 -1
- package/MessageSearch.js +13 -13
- package/OpenChannel/components/FrozenChannelNotification.js +4 -4
- package/OpenChannel/components/OpenChannelHeader.js +12 -12
- package/OpenChannel/components/OpenChannelInput.js +20 -20
- package/OpenChannel/components/OpenChannelMessage.js +31 -31
- package/OpenChannel/components/OpenChannelMessageList.js +34 -34
- package/OpenChannel/components/OpenChannelUI.js +34 -34
- package/OpenChannel/context.js +8 -8
- package/OpenChannel.js +34 -34
- package/OpenChannelList/components/OpenChannelListUI.js +15 -15
- package/OpenChannelList/components/OpenChannelPreview.js +3 -3
- package/OpenChannelList/context.js +3 -3
- package/OpenChannelList.js +15 -15
- package/{OpenChannelListProvider-a79c47d4.js → OpenChannelListProvider-bccaef43.js} +3 -3
- package/{OpenChannelListProvider-a79c47d4.js.map → OpenChannelListProvider-bccaef43.js.map} +1 -1
- package/{OpenChannelProvider-4f21a22d.js → OpenChannelProvider-f6d7afc8.js} +8 -8
- package/OpenChannelProvider-f6d7afc8.js.map +1 -0
- package/OpenChannelSettings/components/EditDetailsModal.js +14 -14
- package/OpenChannelSettings/components/OpenChannelProfile.js +14 -14
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js +18 -18
- package/OpenChannelSettings/components/OperatorUI.js +17 -17
- package/OpenChannelSettings/components/ParticipantUI.js +15 -15
- package/OpenChannelSettings/context.js +3 -3
- package/OpenChannelSettings.js +18 -18
- package/{RemoveMessageModal-62276928.js → RemoveMessageModal-2831884b.js} +5 -5
- package/{RemoveMessageModal-62276928.js.map → RemoveMessageModal-2831884b.js.map} +1 -1
- package/SendbirdProvider.js +17 -17
- package/SendbirdProvider.js.map +1 -1
- package/Thread/components/ParentMessageInfo.js +38 -38
- package/Thread/components/ParentMessageInfoItem.js +25 -25
- package/Thread/components/ThreadHeader.js +6 -6
- package/Thread/components/ThreadList.js +42 -42
- package/Thread/components/ThreadListItem.js +42 -42
- package/Thread/components/ThreadMessageInput.js +34 -34
- package/Thread/components/ThreadUI.js +47 -47
- package/Thread/context.js +12 -12
- package/Thread.js +47 -47
- package/{ThreadProvider-593b6c29.js → ThreadProvider-1418ccf0.js} +8 -8
- package/{ThreadProvider-593b6c29.js.map → ThreadProvider-1418ccf0.js.map} +1 -1
- package/{UserProfileContext-36e341fd.js → UserProfileContext-4ebadc38.js} +1 -1
- package/{UserProfileContext-36e341fd.js.map → UserProfileContext-4ebadc38.js.map} +1 -1
- package/VoicePlayer/context.js +3 -3
- package/VoicePlayer/useVoicePlayer.js +11 -11
- package/VoiceRecorder/context.js +11 -11
- package/VoiceRecorder/useVoiceRecorder.js +10 -10
- package/{WebAudioUtils-ca6a01e4.js → WebAudioUtils-1b9385ec.js} +2 -2
- package/{WebAudioUtils-ca6a01e4.js.map → WebAudioUtils-1b9385ec.js.map} +1 -1
- package/{_rollupPluginBabelHelpers-ea73a031.js → _rollupPluginBabelHelpers-0cef07cb.js} +1 -1
- package/_rollupPluginBabelHelpers-0cef07cb.js.map +1 -0
- package/{actionTypes-bd59e881.js → actionTypes-318efb77.js} +1 -1
- package/{actionTypes-bd59e881.js.map → actionTypes-318efb77.js.map} +1 -1
- package/cjs/App.js +55 -55
- package/cjs/Channel/components/ChannelHeader.js +22 -22
- package/cjs/Channel/components/ChannelUI.js +48 -48
- package/cjs/Channel/components/FileViewer.js +18 -18
- package/cjs/Channel/components/FrozenNotification.js +4 -4
- package/cjs/Channel/components/Message.js +46 -44
- package/cjs/Channel/components/Message.js.map +1 -1
- package/cjs/Channel/components/MessageInput.js +34 -34
- package/cjs/Channel/components/MessageList.js +75 -46
- package/cjs/Channel/components/MessageList.js.map +1 -1
- package/cjs/Channel/components/RemoveMessageModal.js +22 -22
- package/cjs/Channel/components/SuggestedMentionList.js +20 -20
- package/cjs/Channel/components/TypingIndicator.js +18 -18
- package/cjs/Channel/components/UnreadCount.js +4 -4
- package/cjs/Channel/context.js +15 -15
- package/cjs/Channel/utils/compareMessagesForGrouping.js +7 -7
- package/cjs/Channel/utils/getMessagePartsInfo.js +8 -8
- package/cjs/Channel.js +48 -48
- package/cjs/ChannelList/components/AddChannel.js +16 -16
- package/cjs/ChannelList/components/ChannelListHeader.js +6 -6
- package/cjs/ChannelList/components/ChannelListUI.js +33 -33
- package/cjs/ChannelList/components/ChannelPreview.js +29 -29
- package/cjs/ChannelList/components/ChannelPreviewAction.js +15 -15
- package/cjs/ChannelList/context.js +9 -9
- package/cjs/ChannelList.js +33 -33
- package/cjs/{ChannelListProvider-69db317f.js → ChannelListProvider-8a2c8449.js} +23 -28
- package/cjs/ChannelListProvider-8a2c8449.js.map +1 -0
- package/cjs/{ChannelProvider-2ee005bc.js → ChannelProvider-f53f6659.js} +26 -20
- package/cjs/ChannelProvider-f53f6659.js.map +1 -0
- package/cjs/ChannelSettings/components/ChannelProfile.js +13 -13
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js +18 -18
- package/cjs/ChannelSettings/components/EditDetailsModal.js +13 -13
- package/cjs/ChannelSettings/components/LeaveChannel.js +12 -12
- package/cjs/ChannelSettings/components/ModerationPanel.js +15 -15
- package/cjs/ChannelSettings/components/UserListItem.js +11 -11
- package/cjs/ChannelSettings/components/UserPanel.js +14 -14
- package/cjs/ChannelSettings/context.js +3 -3
- package/cjs/ChannelSettings.js +18 -18
- package/cjs/CreateChannel/components/CreateChannelUI.js +14 -14
- package/cjs/CreateChannel/components/InviteUsers.js +14 -14
- package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
- package/cjs/CreateChannel/components/SelectChannelType.js +11 -11
- package/cjs/CreateChannel/context.js +4 -4
- package/cjs/CreateChannel.js +14 -14
- package/cjs/{CreateChannelProvider-1c4d626c.js → CreateChannelProvider-c222d954.js} +1 -1
- package/cjs/{CreateChannelProvider-1c4d626c.js.map → CreateChannelProvider-c222d954.js.map} +1 -1
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +11 -11
- package/cjs/CreateOpenChannel/context.js +1 -1
- package/cjs/CreateOpenChannel.js +11 -11
- package/cjs/EditUserProfile/components/EditUserProfileUI.js +13 -13
- package/cjs/EditUserProfile.js +13 -13
- package/cjs/{LocalizationContext-eb7a59da.js → LocalizationContext-40eb7c9d.js} +3 -3
- package/cjs/{LocalizationContext-eb7a59da.js.map → LocalizationContext-40eb7c9d.js.map} +1 -1
- package/cjs/{MediaQueryContext-ca045060.js → MediaQueryContext-c66337d3.js} +1 -1
- package/cjs/{MediaQueryContext-ca045060.js.map → MediaQueryContext-c66337d3.js.map} +1 -1
- package/cjs/{MemberList-eea5c64b.js → MemberList-f3956662.js} +6 -6
- package/cjs/{MemberList-eea5c64b.js.map → MemberList-f3956662.js.map} +1 -1
- package/cjs/MessageSearch/components/MessageSearchUI.js +13 -13
- package/cjs/MessageSearch/context.js +1 -1
- package/cjs/MessageSearch.js +13 -13
- package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
- package/cjs/OpenChannel/components/OpenChannelHeader.js +12 -12
- package/cjs/OpenChannel/components/OpenChannelInput.js +20 -20
- package/cjs/OpenChannel/components/OpenChannelMessage.js +31 -31
- package/cjs/OpenChannel/components/OpenChannelMessageList.js +34 -34
- package/cjs/OpenChannel/components/OpenChannelUI.js +34 -34
- package/cjs/OpenChannel/context.js +8 -8
- package/cjs/OpenChannel.js +34 -34
- package/cjs/OpenChannelList/components/OpenChannelListUI.js +15 -15
- package/cjs/OpenChannelList/components/OpenChannelPreview.js +3 -3
- package/cjs/OpenChannelList/context.js +3 -3
- package/cjs/OpenChannelList.js +15 -15
- package/cjs/{OpenChannelListProvider-25a0f74d.js → OpenChannelListProvider-0dfce6f0.js} +3 -3
- package/cjs/{OpenChannelListProvider-25a0f74d.js.map → OpenChannelListProvider-0dfce6f0.js.map} +1 -1
- package/cjs/{OpenChannelProvider-036e515e.js → OpenChannelProvider-3fee0431.js} +8 -8
- package/cjs/OpenChannelProvider-3fee0431.js.map +1 -0
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js +14 -14
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +14 -14
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +18 -18
- package/cjs/OpenChannelSettings/components/OperatorUI.js +17 -17
- package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -15
- package/cjs/OpenChannelSettings/context.js +3 -3
- package/cjs/OpenChannelSettings.js +18 -18
- package/cjs/{RemoveMessageModal-7ed24af4.js → RemoveMessageModal-57524b2e.js} +5 -5
- package/cjs/{RemoveMessageModal-7ed24af4.js.map → RemoveMessageModal-57524b2e.js.map} +1 -1
- package/cjs/SendbirdProvider.js +17 -17
- package/cjs/SendbirdProvider.js.map +1 -1
- package/cjs/Thread/components/ParentMessageInfo.js +38 -38
- package/cjs/Thread/components/ParentMessageInfoItem.js +25 -25
- package/cjs/Thread/components/ThreadHeader.js +6 -6
- package/cjs/Thread/components/ThreadList.js +42 -42
- package/cjs/Thread/components/ThreadListItem.js +42 -42
- package/cjs/Thread/components/ThreadMessageInput.js +34 -34
- package/cjs/Thread/components/ThreadUI.js +47 -47
- package/cjs/Thread/context.js +12 -12
- package/cjs/Thread.js +47 -47
- package/cjs/{ThreadProvider-4c93de8a.js → ThreadProvider-fe31e040.js} +8 -8
- package/cjs/{ThreadProvider-4c93de8a.js.map → ThreadProvider-fe31e040.js.map} +1 -1
- package/cjs/{UserProfileContext-abe57718.js → UserProfileContext-345b7649.js} +1 -1
- package/cjs/{UserProfileContext-abe57718.js.map → UserProfileContext-345b7649.js.map} +1 -1
- package/cjs/VoicePlayer/context.js +3 -3
- package/cjs/VoicePlayer/useVoicePlayer.js +11 -11
- package/cjs/VoiceRecorder/context.js +11 -11
- package/cjs/VoiceRecorder/useVoiceRecorder.js +10 -10
- package/cjs/{WebAudioUtils-348c38b8.js → WebAudioUtils-a3f796ae.js} +2 -2
- package/cjs/{WebAudioUtils-348c38b8.js.map → WebAudioUtils-a3f796ae.js.map} +1 -1
- package/cjs/{_rollupPluginBabelHelpers-a85bd364.js → _rollupPluginBabelHelpers-488b3e8e.js} +1 -1
- package/cjs/_rollupPluginBabelHelpers-488b3e8e.js.map +1 -0
- package/cjs/{actionTypes-412ca236.js → actionTypes-cb457098.js} +1 -1
- package/cjs/{actionTypes-412ca236.js.map → actionTypes-cb457098.js.map} +1 -1
- package/cjs/{color-2f1198fc.js → color-05f0e0c4.js} +1 -1
- package/cjs/{color-2f1198fc.js.map → color-05f0e0c4.js.map} +1 -1
- package/cjs/{compareIds-89c258a0.js → compareIds-25532c3b.js} +1 -1
- package/cjs/{compareIds-89c258a0.js.map → compareIds-25532c3b.js.map} +1 -1
- package/cjs/{const-95881697.js → const-7272c371.js} +1 -1
- package/cjs/{const-95881697.js.map → const-7272c371.js.map} +1 -1
- package/cjs/{const-24d498a6.js → const-f9dd801f.js} +1 -1
- package/cjs/{const-24d498a6.js.map → const-f9dd801f.js.map} +1 -1
- package/cjs/{consts-2957b793.js → consts-23f916a7.js} +1 -1
- package/cjs/{consts-2957b793.js.map → consts-23f916a7.js.map} +1 -1
- package/cjs/{consts-dde4f05d.js → consts-794ef905.js} +1 -1
- package/cjs/{consts-dde4f05d.js.map → consts-794ef905.js.map} +1 -1
- package/cjs/{consts-c5d38c32.js → consts-80cf31ce.js} +1 -1
- package/cjs/{consts-c5d38c32.js.map → consts-80cf31ce.js.map} +1 -1
- package/cjs/{consts-7b830cc5.js → consts-d1774353.js} +1 -1
- package/cjs/{consts-7b830cc5.js.map → consts-d1774353.js.map} +1 -1
- package/cjs/{context-b53bf38e.js → context-5bc90aa7.js} +2 -2
- package/cjs/{context-b53bf38e.js.map → context-5bc90aa7.js.map} +1 -1
- package/cjs/dist/index.css +94 -95
- package/cjs/dist/index.css.map +1 -1
- package/cjs/{index-6e0a495a.js → index-04eb31f4.js} +3 -3
- package/cjs/{index-6e0a495a.js.map → index-04eb31f4.js.map} +1 -1
- package/cjs/{index-2fbc5922.js → index-1fdc447a.js} +4 -4
- package/cjs/{index-2fbc5922.js.map → index-1fdc447a.js.map} +1 -1
- package/cjs/{index-494b5c25.js → index-2c90dcb8.js} +3 -3
- package/cjs/{index-494b5c25.js.map → index-2c90dcb8.js.map} +1 -1
- package/cjs/{index-9813a2f9.js → index-4a574f45.js} +3 -3
- package/cjs/{index-9813a2f9.js.map → index-4a574f45.js.map} +1 -1
- package/cjs/{index-967cbc91.js → index-4ca19f6d.js} +2 -2
- package/cjs/index-4ca19f6d.js.map +1 -0
- package/cjs/{index-2fd388b9.js → index-53ca77d2.js} +5 -5
- package/cjs/{index-2fd388b9.js.map → index-53ca77d2.js.map} +1 -1
- package/cjs/{index-910f48df.js → index-55a5da60.js} +6 -6
- package/cjs/{index-910f48df.js.map → index-55a5da60.js.map} +1 -1
- package/cjs/{index-7e10ab98.js → index-6c815158.js} +9 -4
- package/cjs/{index-7e10ab98.js.map → index-6c815158.js.map} +1 -1
- package/cjs/{index-5628e0c0.js → index-87cced05.js} +1 -1
- package/cjs/{index-5628e0c0.js.map → index-87cced05.js.map} +1 -1
- package/cjs/{index-ae51b0df.js → index-99f90442.js} +2 -2
- package/cjs/{index-ae51b0df.js.map → index-99f90442.js.map} +1 -1
- package/cjs/{index-28c0a443.js → index-9ac0a31d.js} +4 -4
- package/cjs/{index-28c0a443.js.map → index-9ac0a31d.js.map} +1 -1
- package/cjs/{index-0f229ac7.js → index-9e072be5.js} +4 -4
- package/cjs/{index-0f229ac7.js.map → index-9e072be5.js.map} +1 -1
- package/cjs/{index-0f7049fb.js → index-aecd6e45.js} +7 -7
- package/cjs/{index-0f7049fb.js.map → index-aecd6e45.js.map} +1 -1
- package/cjs/{index-f0b55959.js → index-b4df1d17.js} +5 -5
- package/cjs/{index-f0b55959.js.map → index-b4df1d17.js.map} +1 -1
- package/cjs/{index-03655429.js → index-ba34ece6.js} +2 -2
- package/cjs/{index-03655429.js.map → index-ba34ece6.js.map} +1 -1
- package/cjs/{index-1f796e5a.js → index-be727556.js} +4 -4
- package/cjs/{index-1f796e5a.js.map → index-be727556.js.map} +1 -1
- package/cjs/{index-613acaa0.js → index-ccda67ff.js} +3 -3
- package/cjs/{index-613acaa0.js.map → index-ccda67ff.js.map} +1 -1
- package/cjs/{index-c9a4a555.js → index-d484ba73.js} +1 -1
- package/cjs/{index-c9a4a555.js.map → index-d484ba73.js.map} +1 -1
- package/cjs/{index-4d39de27.js → index-e177bbe4.js} +9 -9
- package/cjs/{index-4d39de27.js.map → index-e177bbe4.js.map} +1 -1
- package/cjs/{index-f40c4cf0.js → index-e70a2323.js} +2 -2
- package/cjs/{index-f40c4cf0.js.map → index-e70a2323.js.map} +1 -1
- package/cjs/{index-de4da1f2.js → index-ec0d0086.js} +2 -2
- package/cjs/{index-de4da1f2.js.map → index-ec0d0086.js.map} +1 -1
- package/cjs/index.js +59 -59
- package/cjs/{index.module-5c951066.js → index.module-22a4bbea.js} +1 -1
- package/cjs/{index.module-5c951066.js.map → index.module-22a4bbea.js.map} +1 -1
- package/cjs/package.json +2 -2
- package/cjs/{resolvedReplyType-314fee09.js → resolvedReplyType-7c78f221.js} +1 -1
- package/cjs/{resolvedReplyType-314fee09.js.map → resolvedReplyType-7c78f221.js.map} +1 -1
- package/cjs/sendbirdSelectors.js +3 -3
- package/cjs/{stringFormatterUtils-3e53394c.js → stringFormatterUtils-2de721a6.js} +3 -3
- package/cjs/{stringFormatterUtils-3e53394c.js.map → stringFormatterUtils-2de721a6.js.map} +1 -1
- package/cjs/{stringSet-b75b75ae.js → stringSet-0c9ec33d.js} +1 -1
- package/cjs/{stringSet-b75b75ae.js.map → stringSet-0c9ec33d.js.map} +1 -1
- package/cjs/{tokenize-42536b7a.js → tokenize-46a71d6a.js} +2 -2
- package/cjs/{tokenize-42536b7a.js.map → tokenize-46a71d6a.js.map} +1 -1
- package/cjs/{topics-2c35cfd7.js → topics-cf5100f6.js} +1 -1
- package/cjs/{topics-2c35cfd7.js.map → topics-cf5100f6.js.map} +1 -1
- package/cjs/{types-382588b3.js → types-ad059133.js} +1 -1
- package/cjs/{types-382588b3.js.map → types-ad059133.js.map} +1 -1
- package/cjs/ui/Accordion.js +2 -2
- package/cjs/ui/AccordionGroup.js +2 -2
- package/cjs/ui/AdminMessage.js +2 -2
- package/cjs/ui/Avatar.js +1 -1
- package/cjs/ui/Badge.js +4 -4
- package/cjs/ui/BottomSheet.js +4 -4
- package/cjs/ui/Button.js +2 -2
- package/cjs/ui/ChannelAvatar.js +2 -2
- package/cjs/ui/ConnectionStatus.js +4 -4
- package/cjs/ui/ContextMenu.js +6 -6
- package/cjs/ui/DateSeparator.js +3 -3
- package/cjs/ui/EmojiReactions.js +14 -14
- package/cjs/ui/FileMessageItemBody.js +7 -7
- package/cjs/ui/FileViewer.js +12 -12
- package/cjs/ui/IconButton.js +1 -1
- package/cjs/ui/Input.js +2 -2
- package/cjs/ui/Label.js +2 -2
- package/cjs/ui/LinkLabel.js +2 -2
- package/cjs/ui/MentionLabel.js +11 -11
- package/cjs/ui/MentionUserLabel.js +1 -1
- package/cjs/ui/MessageContent.js +31 -31
- package/cjs/ui/MessageInput/hooks/usePaste.js +4 -4
- package/cjs/ui/MessageInput.js +26 -30
- package/cjs/ui/MessageInput.js.map +1 -1
- package/cjs/ui/MessageItemMenu.js +9 -9
- package/cjs/ui/MessageItemReactionMenu.js +9 -9
- package/cjs/ui/MessageSearchFileItem.js +12 -12
- package/cjs/ui/MessageSearchItem.js +8 -8
- package/cjs/ui/MessageStatus.js +11 -11
- package/cjs/ui/Modal.js +9 -9
- package/cjs/ui/OGMessageItemBody.js +14 -14
- package/cjs/ui/OpenChannelAdminMessage.js +2 -2
- package/cjs/ui/OpenChannelAvatar.js +5 -5
- package/cjs/ui/OpenchannelConversationHeader.js +6 -6
- package/cjs/ui/OpenchannelFileMessage.js +16 -16
- package/cjs/ui/OpenchannelOGMessage.js +18 -18
- package/cjs/ui/OpenchannelThumbnailMessage.js +15 -15
- package/cjs/ui/OpenchannelUserMessage.js +16 -16
- package/cjs/ui/PlaceHolder.js +5 -5
- package/cjs/ui/PlaybackTime.js +2 -2
- package/cjs/ui/QuoteMessage.js +8 -8
- package/cjs/ui/QuoteMessageInput.js +8 -8
- package/cjs/ui/ReactionBadge.js +2 -2
- package/cjs/ui/ReactionButton.js +4 -4
- package/cjs/ui/SortByRow.js +1 -1
- package/cjs/ui/TextButton.js +1 -1
- package/cjs/ui/TextMessageItemBody.js +14 -14
- package/cjs/ui/ThreadReplies.js +5 -5
- package/cjs/ui/ThumbnailMessageItemBody.js +7 -7
- package/cjs/ui/Toggle.js +1 -1
- package/cjs/ui/Tooltip.js +2 -2
- package/cjs/ui/UnknownMessageItemBody.js +7 -7
- package/cjs/ui/UserListItem.js +11 -11
- package/cjs/ui/UserProfile.js +9 -9
- package/cjs/ui/VoiceMessageItemBody.js +11 -11
- package/cjs/ui/VoiceMessgeInput.js +7 -7
- package/cjs/ui/Word.js +11 -11
- package/cjs/{useHandleUploadFiles-84bd5a9a.js → useHandleUploadFiles-a2515e36.js} +10 -10
- package/cjs/{useHandleUploadFiles-84bd5a9a.js.map → useHandleUploadFiles-a2515e36.js.map} +1 -1
- package/cjs/{useLongPress-49aa9a49.js → useLongPress-c9932bc1.js} +3 -3
- package/cjs/{useLongPress-49aa9a49.js.map → useLongPress-c9932bc1.js.map} +1 -1
- package/cjs/{useSendMultipleFilesMessage-c5266ca8.js → useSendMultipleFilesMessage-82dafd6e.js} +4 -4
- package/cjs/{useSendMultipleFilesMessage-c5266ca8.js.map → useSendMultipleFilesMessage-82dafd6e.js.map} +1 -1
- package/cjs/useSendbirdStateContext.js +1 -1
- package/cjs/utils/message/isVoiceMessage.js +3 -3
- package/cjs/{utils-4e18a724.js → utils-323602f7.js} +1 -1
- package/cjs/{utils-4e18a724.js.map → utils-323602f7.js.map} +1 -1
- package/cjs/{utils-1e9e97b5.js → utils-4951f17b.js} +11 -6
- package/cjs/utils-4951f17b.js.map +1 -0
- package/cjs/{utils-8958cb75.js → utils-71eb8ef7.js} +1 -1
- package/cjs/{utils-8958cb75.js.map → utils-71eb8ef7.js.map} +1 -1
- package/cjs/{utils-b3e9e1b8.js → utils-de1e1ff7.js} +2 -2
- package/cjs/{utils-b3e9e1b8.js.map → utils-de1e1ff7.js.map} +1 -1
- package/cjs/{utils-d5a929c9.js → utils-e8c4f085.js} +1 -1
- package/cjs/{utils-d5a929c9.js.map → utils-e8c4f085.js.map} +1 -1
- package/cjs/{utils-d6285655.js → utils-f41b79ef.js} +3 -3
- package/cjs/{utils-d6285655.js.map → utils-f41b79ef.js.map} +1 -1
- package/cjs/{uuid-34728ced.js → uuid-e5bd2418.js} +1 -1
- package/cjs/{uuid-34728ced.js.map → uuid-e5bd2418.js.map} +1 -1
- package/cjs/withSendbird.js +1 -1
- package/{color-4cef414f.js → color-8d593cfa.js} +1 -1
- package/{color-4cef414f.js.map → color-8d593cfa.js.map} +1 -1
- package/{compareIds-7e93f2e7.js → compareIds-1f514503.js} +1 -1
- package/{compareIds-7e93f2e7.js.map → compareIds-1f514503.js.map} +1 -1
- package/{const-6c10846e.js → const-16846404.js} +1 -1
- package/{const-6c10846e.js.map → const-16846404.js.map} +1 -1
- package/{const-48ffde74.js → const-b8dcad45.js} +1 -1
- package/{const-48ffde74.js.map → const-b8dcad45.js.map} +1 -1
- package/{consts-bd684c8d.js → consts-6e6f7e9f.js} +1 -1
- package/{consts-bd684c8d.js.map → consts-6e6f7e9f.js.map} +1 -1
- package/{consts-439d56b4.js → consts-9f4a812e.js} +1 -1
- package/{consts-439d56b4.js.map → consts-9f4a812e.js.map} +1 -1
- package/{consts-aad4bf65.js → consts-b5df6e74.js} +1 -1
- package/{consts-aad4bf65.js.map → consts-b5df6e74.js.map} +1 -1
- package/{consts-a979689d.js → consts-d580c2c7.js} +1 -1
- package/{consts-a979689d.js.map → consts-d580c2c7.js.map} +1 -1
- package/{context-9946197c.js → context-fb4c2157.js} +2 -2
- package/{context-9946197c.js.map → context-fb4c2157.js.map} +1 -1
- package/dist/index.css +94 -95
- package/dist/index.css.map +1 -1
- package/{index-a0bd5ef9.js → index-151e4750.js} +3 -3
- package/{index-a0bd5ef9.js.map → index-151e4750.js.map} +1 -1
- package/{index-516ad99d.js → index-304b238b.js} +1 -1
- package/{index-516ad99d.js.map → index-304b238b.js.map} +1 -1
- package/{index-44d3dac3.js → index-35747966.js} +5 -5
- package/{index-44d3dac3.js.map → index-35747966.js.map} +1 -1
- package/{index-6bca558b.js → index-390e9091.js} +7 -7
- package/{index-6bca558b.js.map → index-390e9091.js.map} +1 -1
- package/{index-c5cb0bb2.js → index-4a1fec80.js} +4 -4
- package/{index-c5cb0bb2.js.map → index-4a1fec80.js.map} +1 -1
- package/{index-825c96d3.js → index-51d1d394.js} +3 -3
- package/{index-825c96d3.js.map → index-51d1d394.js.map} +1 -1
- package/{index-526cbeea.js → index-57990954.js} +2 -2
- package/{index-526cbeea.js.map → index-57990954.js.map} +1 -1
- package/{index-9083293d.js → index-62ee116d.js} +4 -4
- package/{index-9083293d.js.map → index-62ee116d.js.map} +1 -1
- package/{index-373d3069.js → index-658da38a.js} +4 -4
- package/{index-373d3069.js.map → index-658da38a.js.map} +1 -1
- package/{index-3370a58d.js → index-6805d5c8.js} +2 -2
- package/{index-3370a58d.js.map → index-6805d5c8.js.map} +1 -1
- package/{index-fa19fef7.js → index-773ba5ba.js} +2 -2
- package/{index-fa19fef7.js.map → index-773ba5ba.js.map} +1 -1
- package/{index-d9b66555.js → index-80996ef9.js} +5 -5
- package/{index-d9b66555.js.map → index-80996ef9.js.map} +1 -1
- package/{index-0a50eba0.js → index-843f8172.js} +6 -6
- package/{index-0a50eba0.js.map → index-843f8172.js.map} +1 -1
- package/{index-b346dc02.js → index-9237667a.js} +9 -9
- package/{index-b346dc02.js.map → index-9237667a.js.map} +1 -1
- package/{index-1833cc50.js → index-9ea624d5.js} +2 -2
- package/{index-1833cc50.js.map → index-9ea624d5.js.map} +1 -1
- package/{index-c323f04b.js → index-afdd497f.js} +3 -3
- package/{index-c323f04b.js.map → index-afdd497f.js.map} +1 -1
- package/{index-e2afa53f.js → index-c277467e.js} +1 -1
- package/{index-e2afa53f.js.map → index-c277467e.js.map} +1 -1
- package/{index-6d0ae6a0.js → index-cdaae7f9.js} +3 -3
- package/{index-6d0ae6a0.js.map → index-cdaae7f9.js.map} +1 -1
- package/{index-bae83553.js → index-f35b1dcc.js} +4 -4
- package/{index-bae83553.js.map → index-f35b1dcc.js.map} +1 -1
- package/{index-320a1756.js → index-f48e9c68.js} +2 -2
- package/index-f48e9c68.js.map +1 -0
- package/{index-2d23ff73.js → index-fde902d5.js} +9 -5
- package/{index-2d23ff73.js.map → index-fde902d5.js.map} +1 -1
- package/index.d.ts +9 -11
- package/index.js +59 -59
- package/{index.module-efef0194.js → index.module-f3f31594.js} +1 -1
- package/{index.module-efef0194.js.map → index.module-f3f31594.js.map} +1 -1
- package/package.json +2 -2
- package/{resolvedReplyType-84f1270f.js → resolvedReplyType-ff8f48f4.js} +1 -1
- package/{resolvedReplyType-84f1270f.js.map → resolvedReplyType-ff8f48f4.js.map} +1 -1
- package/sendbirdSelectors.js +3 -3
- package/{stringFormatterUtils-beea8d82.js → stringFormatterUtils-272582e5.js} +3 -3
- package/{stringFormatterUtils-beea8d82.js.map → stringFormatterUtils-272582e5.js.map} +1 -1
- package/{stringSet-9fe06e0d.js → stringSet-02d58100.js} +1 -1
- package/{stringSet-9fe06e0d.js.map → stringSet-02d58100.js.map} +1 -1
- package/{tokenize-d34eb5c6.js → tokenize-65b415b8.js} +2 -2
- package/{tokenize-d34eb5c6.js.map → tokenize-65b415b8.js.map} +1 -1
- package/{topics-edd6182d.js → topics-fda6fac4.js} +1 -1
- package/{topics-edd6182d.js.map → topics-fda6fac4.js.map} +1 -1
- package/{types-269fec15.js → types-69d76470.js} +1 -1
- package/{types-269fec15.js.map → types-69d76470.js.map} +1 -1
- package/ui/Accordion.js +2 -2
- package/ui/AccordionGroup.js +2 -2
- package/ui/AdminMessage.js +2 -2
- package/ui/Avatar.js +1 -1
- package/ui/Badge.js +4 -4
- package/ui/BottomSheet.js +4 -4
- package/ui/Button.js +2 -2
- package/ui/ChannelAvatar.js +2 -2
- package/ui/ConnectionStatus.js +4 -4
- package/ui/ContextMenu.js +6 -6
- package/ui/DateSeparator.js +3 -3
- package/ui/EmojiReactions.js +14 -14
- package/ui/FileMessageItemBody.js +7 -7
- package/ui/FileViewer.js +12 -12
- package/ui/IconButton.js +1 -1
- package/ui/Input.js +2 -2
- package/ui/Label.js +2 -2
- package/ui/LinkLabel.js +2 -2
- package/ui/MentionLabel.js +11 -11
- package/ui/MentionUserLabel.js +1 -1
- package/ui/MessageContent.js +31 -31
- package/ui/MessageInput/hooks/usePaste.js +4 -4
- package/ui/MessageInput.js +26 -30
- package/ui/MessageInput.js.map +1 -1
- package/ui/MessageItemMenu.js +9 -9
- package/ui/MessageItemReactionMenu.js +9 -9
- package/ui/MessageSearchFileItem.js +12 -12
- package/ui/MessageSearchItem.js +8 -8
- package/ui/MessageStatus.js +11 -11
- package/ui/Modal.js +9 -9
- package/ui/OGMessageItemBody.js +14 -14
- package/ui/OpenChannelAdminMessage.js +2 -2
- package/ui/OpenChannelAvatar.js +5 -5
- package/ui/OpenchannelConversationHeader.js +6 -6
- package/ui/OpenchannelFileMessage.js +16 -16
- package/ui/OpenchannelOGMessage.js +18 -18
- package/ui/OpenchannelThumbnailMessage.js +15 -15
- package/ui/OpenchannelUserMessage.js +16 -16
- package/ui/PlaceHolder.js +5 -5
- package/ui/PlaybackTime.js +2 -2
- package/ui/QuoteMessage.js +8 -8
- package/ui/QuoteMessageInput.js +8 -8
- package/ui/ReactionBadge.js +2 -2
- package/ui/ReactionButton.js +4 -4
- package/ui/SortByRow.js +1 -1
- package/ui/TextButton.js +1 -1
- package/ui/TextMessageItemBody.js +14 -14
- package/ui/ThreadReplies.js +5 -5
- package/ui/ThumbnailMessageItemBody.js +7 -7
- package/ui/Toggle.js +1 -1
- package/ui/Tooltip.js +2 -2
- package/ui/UnknownMessageItemBody.js +7 -7
- package/ui/UserListItem.js +11 -11
- package/ui/UserProfile.js +9 -9
- package/ui/VoiceMessageItemBody.js +11 -11
- package/ui/VoiceMessgeInput.js +7 -7
- package/ui/Word.js +11 -11
- package/{useHandleUploadFiles-210750cc.js → useHandleUploadFiles-c1595636.js} +10 -10
- package/{useHandleUploadFiles-210750cc.js.map → useHandleUploadFiles-c1595636.js.map} +1 -1
- package/{useLongPress-4b698dbb.js → useLongPress-ba7e62b0.js} +3 -3
- package/{useLongPress-4b698dbb.js.map → useLongPress-ba7e62b0.js.map} +1 -1
- package/{useSendMultipleFilesMessage-4a45ffbe.js → useSendMultipleFilesMessage-5cbc19ce.js} +4 -4
- package/{useSendMultipleFilesMessage-4a45ffbe.js.map → useSendMultipleFilesMessage-5cbc19ce.js.map} +1 -1
- package/useSendbirdStateContext.js +1 -1
- package/utils/message/isVoiceMessage.js +3 -3
- package/{utils-4d948dec.js → utils-42359bc3.js} +2 -2
- package/{utils-4d948dec.js.map → utils-42359bc3.js.map} +1 -1
- package/{utils-a184f6ea.js → utils-532f83ca.js} +1 -1
- package/{utils-a184f6ea.js.map → utils-532f83ca.js.map} +1 -1
- package/{utils-55c9df93.js → utils-5a24bd3a.js} +1 -1
- package/{utils-55c9df93.js.map → utils-5a24bd3a.js.map} +1 -1
- package/{utils-ec15538c.js → utils-cbc87bb5.js} +11 -6
- package/utils-cbc87bb5.js.map +1 -0
- package/{utils-73dd35ca.js → utils-e7de752d.js} +3 -3
- package/{utils-73dd35ca.js.map → utils-e7de752d.js.map} +1 -1
- package/{utils-1bfac67e.js → utils-eb4100d3.js} +1 -1
- package/{utils-1bfac67e.js.map → utils-eb4100d3.js.map} +1 -1
- package/{uuid-9094f15c.js → uuid-46cf2f27.js} +1 -1
- package/{uuid-9094f15c.js.map → uuid-46cf2f27.js.map} +1 -1
- package/withSendbird.js +1 -1
- package/ChannelListProvider-ba11ee5f.js.map +0 -1
- package/ChannelProvider-7400e8f6.js.map +0 -1
- package/OpenChannelProvider-4f21a22d.js.map +0 -1
- package/_rollupPluginBabelHelpers-ea73a031.js.map +0 -1
- package/cjs/ChannelListProvider-69db317f.js.map +0 -1
- package/cjs/ChannelProvider-2ee005bc.js.map +0 -1
- package/cjs/OpenChannelProvider-036e515e.js.map +0 -1
- package/cjs/_rollupPluginBabelHelpers-a85bd364.js.map +0 -1
- package/cjs/index-967cbc91.js.map +0 -1
- package/cjs/utils-1e9e97b5.js.map +0 -1
- package/index-320a1756.js.map +0 -1
- package/utils-ec15538c.js.map +0 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { _ as _objectSpread2 } from './_rollupPluginBabelHelpers-
|
|
1
|
+
import { _ as _objectSpread2 } from './_rollupPluginBabelHelpers-0cef07cb.js';
|
|
2
2
|
import { OutgoingMessageStates, getOutgoingMessageState } from './utils/message/getOutgoingMessageState.js';
|
|
3
|
-
import { K } from './index.module-
|
|
3
|
+
import { K } from './index.module-f3f31594.js';
|
|
4
4
|
|
|
5
5
|
// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types
|
|
6
6
|
const SUPPORTED_MIMES = {
|
|
@@ -595,4 +595,4 @@ const arrayEqual = (array1, array2) => {
|
|
|
595
595
|
};
|
|
596
596
|
|
|
597
597
|
export { isOGMessage as A, isTextMessage as B, isSupportedFileView as C, isUrl as D, isEditedMessage as E, isSentMessage as F, isFailedMessage as G, isPendingMessage as H, copyToClipboard as I, getEmojiListAll as J, getEmojiUrl as K, isReactedBy as L, getEmojiTooltipString as M, getEmojiMapAll as N, getUIKitFileType as O, truncateString as P, getUIKitFileTypes as Q, isThreadMessage as R, isGifFileInfo as S, convertWordToStringObj as T, UIKitMessageTypes as U, StringObjType as V, getSendingMessageStatus as a, filterMessageListParams as b, isMultipleFilesMessage as c, isVoiceMessage as d, isReadMessage as e, filterChannelListParams as f, getChannelsWithUpsertedChannel as g, isGif as h, isTextuallyNull as i, isImage as j, isVideo as k, isSentStatus as l, getClassName as m, arrayEqual as n, getMimeTypesUIKitAccepts as o, isFileMessage as p, isImageMessage as q, isImageFileInfo as r, isThumbnailMessage as s, isAudioMessage as t, isGifMessage as u, isVideoMessage as v, isUserMessage as w, getUIKitMessageType as x, getUIKitMessageTypes as y, getSenderName as z };
|
|
598
|
-
//# sourceMappingURL=index-
|
|
598
|
+
//# sourceMappingURL=index-afdd497f.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-c323f04b.js","sources":["../src/utils/index.ts"],"sourcesContent":["import SendbirdChat, { Emoji, EmojiCategory, EmojiContainer, User } from '@sendbird/chat';\nimport { GroupChannel, Member, SendbirdGroupChat, GroupChannelListQuery } from '@sendbird/chat/groupChannel';\nimport {\n AdminMessage,\n FileMessage,\n MessageListParams,\n MultipleFilesMessage,\n Reaction,\n UploadedFileInfo,\n UserMessage,\n} from '@sendbird/chat/message';\nimport { OpenChannel, SendbirdOpenChat } from '@sendbird/chat/openChannel';\n\nimport { getOutgoingMessageState, OutgoingMessageStates } from './exports/getOutgoingMessageState';\nimport { Nullable } from '../types';\nimport { match } from 'ts-pattern';\n\n// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types\nexport const SUPPORTED_MIMES = {\n IMAGE: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/svg+xml',\n 'image/webp', // not supported in IE\n ],\n VIDEO: [\n 'video/mpeg',\n 'video/ogg',\n 'video/webm',\n 'video/mp4',\n 'video/quicktime', // .mov\n ],\n AUDIO: [\n 'audio/aac',\n 'audio/midi',\n 'audio/x-midi',\n 'audio/mpeg',\n 'audio/ogg',\n 'audio/opus',\n 'audio/wav',\n 'audio/webm',\n 'audio/3gpp',\n 'audio/3gpp2',\n 'audio/mp3',\n ],\n DOCUMENT: [\n 'text/plain',\n 'text/css',\n 'text/csv',\n 'text/html',\n 'text/calendar',\n 'text/javascript',\n 'text/xml',\n ],\n APPLICATION: [\n 'application/x-abiword',\n 'application/x-freearc',\n 'application/vnd.amazon.ebook',\n 'application/octet-stream',\n 'application/x-bzip',\n 'application/x-bzip2',\n 'application/x-cdf',\n 'application/x-csh',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/vnd.ms-fontobject',\n 'application/epub+zip',\n 'application/gzip',\n 'application/java-archive',\n 'application/json',\n 'application/ld+json',\n 'application/vnd.apple.installer+xml',\n 'application/vnd.oasis.opendocument.presentation',\n 'application/vnd.oasis.opendocument.spreadsheet',\n 'application/vnd.oasis.opendocument.text',\n 'application/ogg',\n 'application/pdf',\n 'application/x-httpd-php',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n 'application/vnd.rar',\n 'application/rtf',\n 'application/x-sh',\n 'application/x-tar',\n 'application/vnd.visio',\n 'application/xhtml+xml',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/xml',\n 'application/vnd.mozilla.xul+xml',\n 'application/zip',\n 'application/x-7z-compressed',\n ],\n};\n\nexport const getMimeTypesUIKitAccepts = (acceptableMimeTypes?: Array<string>): string => {\n const { IMAGE, VIDEO, AUDIO } = SUPPORTED_MIMES;\n\n if (Array.isArray(acceptableMimeTypes) && acceptableMimeTypes.length > 0) {\n return (\n acceptableMimeTypes\n .reduce((accumulator: Array<string>, acceptableMimeType: string): Array<string> => (\n accumulator.concat(\n match(acceptableMimeType)\n .with('image', () => IMAGE)\n .with('video', () => VIDEO)\n .with('audio', () => AUDIO)\n .otherwise(() => []),\n )\n ), [])\n .join()\n );\n }\n return (\n Object.values(SUPPORTED_MIMES)\n .reduce((accumulator: Array<string>, mimeTypes: Array<string>) => (\n accumulator.concat(mimeTypes)\n ), [])\n .join()\n );\n // concat() is fater than flat()\n};\n\n/* eslint-disable no-redeclare */\nexport interface UIKitMessageTypes {\n ADMIN: 'ADMIN',\n TEXT: 'TEXT',\n FILE: 'FILE',\n MULTIPLE_FILES: 'MULTIPLE_FILES',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n UNKNOWN: 'UNKNOWN',\n}\nexport const UIKitMessageTypes: UIKitMessageTypes = {\n ADMIN: 'ADMIN',\n TEXT: 'TEXT',\n FILE: 'FILE',\n MULTIPLE_FILES: 'MULTIPLE_FILES',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n UNKNOWN: 'UNKNOWN',\n};\n/* eslint-disable no-redeclare */\nexport interface UIKitFileTypes {\n IMAGE: 'IMAGE',\n AUDIO: 'AUDIO',\n VIDEO: 'VIDEO',\n GIF: 'GIF',\n VOICE: 'VOICE',\n OTHERS: 'OTHERS',\n}\nexport const UIKitFileTypes: UIKitFileTypes = {\n IMAGE: 'IMAGE',\n AUDIO: 'AUDIO',\n VIDEO: 'VIDEO',\n GIF: 'GIF',\n VOICE: 'VOICE',\n OTHERS: 'OTHERS',\n};\n\n/* eslint-disable no-redeclare */\nexport interface SendingMessageStatus {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n}\nconst SendingMessageStatus: SendingMessageStatus = {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n};\n\nexport type CoreMessageType = AdminMessage | UserMessage | FileMessage | MultipleFilesMessage;\nexport type SendableMessageType = UserMessage | FileMessage | MultipleFilesMessage;\n\nexport const isTextuallyNull = (text: string): boolean => {\n if (text === '' || text === null) {\n return true;\n }\n return false;\n};\n\nexport const isImage = (type: string): boolean => SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0;\nexport const isVideo = (type: string): boolean => SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0;\nexport const isGif = (type: string): boolean => type === 'image/gif';\nexport const isSupportedFileView = (type: string): boolean => isImage(type) || isVideo(type);\nexport const isAudio = (type: string): boolean => SUPPORTED_MIMES.AUDIO.indexOf(type) >= 0;\n\nexport const getUIKitFileTypes = (): UIKitFileTypes => ({ ...UIKitFileTypes });\nexport const getUIKitFileType = (type: string): string => {\n if (isGif(type)) return UIKitFileTypes.GIF;\n if (isImage(type)) return UIKitFileTypes.IMAGE;\n if (isVideo(type)) return UIKitFileTypes.VIDEO;\n if (isAudio(type)) return UIKitFileTypes.AUDIO;\n return UIKitFileTypes.OTHERS;\n};\n\nexport const isSentMessage = (\n message: SendableMessageType,\n): boolean => (message.sendingStatus === 'succeeded');\nexport const isDeliveredMessage = (\n channel: GroupChannel,\n message: SendableMessageType,\n): boolean => (\n getOutgoingMessageState(channel, message) === OutgoingMessageStates.DELIVERED\n || getOutgoingMessageState(channel, message) === OutgoingMessageStates.READ\n);\nexport const isReadMessage = (\n channel: GroupChannel,\n message: SendableMessageType,\n): boolean => (\n getOutgoingMessageState(channel, message) === OutgoingMessageStates.READ\n);\n// TODO: Remove channel from the params, it seems unnecessary\nexport const isFailedMessage = (\n message: SendableMessageType,\n): boolean => (message?.sendingStatus === 'failed');\nexport const isPendingMessage = (\n message: SendableMessageType,\n): boolean => (message?.sendingStatus === 'pending');\nexport const isSentStatus = (state: string): boolean => (\n state === OutgoingMessageStates.SENT\n || state === OutgoingMessageStates.DELIVERED\n || state === OutgoingMessageStates.READ\n);\n\nexport const isAdminMessage = (message: CoreMessageType): boolean => (\n message && (\n message['isAdminMessage'] && typeof message.isAdminMessage === 'function'\n ? message.isAdminMessage()\n : message?.messageType === 'admin'\n )\n);\nexport const isUserMessage = (message: CoreMessageType): boolean => (\n message && (\n message['isUserMessage'] && typeof message.isUserMessage === 'function'\n ? message.isUserMessage()\n : message?.messageType === 'user'\n )\n);\nexport const isFileMessage = (message: CoreMessageType): boolean => (\n message && (\n message['isFileMessage'] && typeof message.isFileMessage === 'function'\n ? message.isFileMessage()\n : message?.messageType === 'file'\n )\n);\nexport const isMultipleFilesMessage = (\n message: CoreMessageType,\n): boolean => (\n message && (\n message['isMultipleFilesMessage'] && typeof message.isMultipleFilesMessage === 'function'\n ? message.isMultipleFilesMessage()\n : (\n message.messageType === 'file'\n && Object.prototype.hasOwnProperty.call(message, 'fileInfoList')\n )\n )\n);\nexport const isParentMessage = (message: CoreMessageType): boolean => (\n !message.parentMessageId && !message.parentMessage && (message.threadInfo?.replyCount ?? 0) > 0\n);\nexport const isThreadMessage = (message: CoreMessageType): boolean => (\n !!message.parentMessageId && !!message.parentMessage\n);\nexport const isOGMessage = (message: SendableMessageType): boolean => !!(\n message && isUserMessage(message) && message?.ogMetaData && (\n message.ogMetaData?.url\n || message.ogMetaData?.title\n || message.ogMetaData?.description\n || message.ogMetaData?.defaultImage\n )\n);\nexport const isTextMessage = (message: SendableMessageType): boolean => (\n isUserMessage(message)\n);\nexport const isThumbnailMessage = (message: SendableMessageType): boolean => (\n message && isFileMessage(message) && isSupportedFileView((message as FileMessage).type)\n);\nexport const isImageMessage = (message: FileMessage): boolean => message && isThumbnailMessage(message) && isImage(message.type);\nexport const isImageFileInfo = (fileInfo: UploadedFileInfo): boolean => fileInfo && isImage(fileInfo.mimeType);\nexport const isVideoMessage = (message: SendableMessageType): boolean => (\n message && isThumbnailMessage(message) && isVideo((message as FileMessage).type)\n);\nexport const isGifMessage = (message: SendableMessageType): boolean => (\n message && isThumbnailMessage(message) && isGif((message as FileMessage).type)\n);\nexport const isGifFileInfo = (fileInfo: UploadedFileInfo): boolean => (\n fileInfo && isGif(fileInfo.mimeType)\n);\nexport const isAudioMessage = (message: FileMessage): boolean => message && isFileMessage(message) && isAudio(message.type);\nexport const isAudioMessageMimeType = (type: string): boolean => (/^audio\\//.test(type));\nexport const isVoiceMessageMimeType = (type: string): boolean => (/^voice\\//.test(type));\nexport const isVoiceMessage = (message: Nullable<SendableMessageType>): boolean => {\n // ex) audio/m4a OR audio/m4a;sbu_type=voice\n if (!(message && isFileMessage(message)) || !(message as FileMessage).type) {\n return false;\n }\n const [mimeType, typeParameter] = (message as FileMessage).type.split(';');\n\n if (!isAudioMessageMimeType(mimeType)) {\n return false;\n }\n\n if (typeParameter) {\n const [key, value] = typeParameter.split('=');\n return key === 'sbu_type' && value === 'voice';\n }\n // ex) message.metaArrays = [{ key: 'KEY_INTERNAL_MESSAGE_TYPE', value: ['voice/m4a'] }]\n return isVoiceMessageMimeType(message?.metaArrays?.find((metaArray) => metaArray.key === 'KEY_INTERNAL_MESSAGE_TYPE')?.value?.[0] ?? '');\n};\n\nexport const isEditedMessage = (\n message: CoreMessageType,\n): boolean => isUserMessage(message) && (message?.updatedAt > 0);\nexport const isEnabledOGMessage = (message: UserMessage): boolean => (\n (!message || !message.ogMetaData || !message.ogMetaData.url) ? false : true\n);\n\nexport const getUIKitMessageTypes = (): UIKitMessageTypes => ({ ...UIKitMessageTypes });\n\n/**\n * Do not use this for MultipleFilesMessage. Use isMultipleFilesMessage() instead.\n */\nexport const getUIKitMessageType = (\n message: CoreMessageType,\n): string => {\n if (isAdminMessage(message as AdminMessage)) return UIKitMessageTypes.ADMIN;\n if (isUserMessage(message as UserMessage)) {\n return isOGMessage(message as UserMessage) ? UIKitMessageTypes.OG : UIKitMessageTypes.TEXT;\n }\n // This is only a safeguard to not return UNKNOWN for MFM.\n if (isMultipleFilesMessage(message as FileMessage)) {\n return UIKitMessageTypes.MULTIPLE_FILES;\n }\n if (isFileMessage(message as FileMessage)) {\n if (isThumbnailMessage(message as FileMessage)) {\n return UIKitMessageTypes.THUMBNAIL;\n }\n if (isVoiceMessage(message as FileMessage)) {\n return UIKitFileTypes.VOICE;\n }\n return UIKitMessageTypes.FILE;\n }\n return UIKitMessageTypes.UNKNOWN;\n};\nexport const getSendingMessageStatus = (): SendingMessageStatus => ({ ...SendingMessageStatus });\n\nconst reducer = (accumulator: Array<string>, currentValue: string | Array<string>): Array<any> => {\n if (Array.isArray(currentValue)) {\n return [...accumulator, ...currentValue];\n } else {\n accumulator.push(currentValue);\n return accumulator;\n }\n};\nexport const getClassName = (classNames: string | Array<string | Array<string>>): string => (\n Array.isArray(classNames)\n ? classNames.reduce(reducer, []).join(' ')\n : classNames\n);\nexport const isReactedBy = (userId: string, reaction: Reaction): boolean => (\n reaction.userIds.some((reactorUserId: string): boolean => reactorUserId === userId)\n);\ninterface StringSet {\n TOOLTIP__YOU: string;\n TOOLTIP__AND_YOU: string;\n TOOLTIP__UNKNOWN_USER: string;\n}\nexport const getEmojiTooltipString = (reaction: Reaction, userId: string, memberNicknamesMap: Map<string, string>, stringSet: StringSet): string => {\n let you = '';\n if (isReactedBy(userId, reaction)) {\n you = reaction.userIds.length === 1 ? stringSet.TOOLTIP__YOU : stringSet.TOOLTIP__AND_YOU;\n }\n return (`${reaction.userIds\n .filter((reactorUserId: string) => reactorUserId !== userId)\n .map((reactorUserId: string) => (memberNicknamesMap.get(reactorUserId) || stringSet.TOOLTIP__UNKNOWN_USER))\n .join(', ')}${you}`);\n};\n\n// TODO: Use the interface after language tranlsatation of Sendbird.js\ninterface UIKitStore {\n stores: {\n sdkStore: {\n sdk: SendbirdChat | SendbirdOpenChat | SendbirdGroupChat,\n },\n userStore: {\n user: User,\n },\n },\n config: {\n isReactionEnabled: boolean,\n }\n}\nexport const getCurrentUserId = (store: UIKitStore): string => (store?.stores?.userStore?.user?.userId);\nexport const getUseReaction = (store: UIKitStore, channel: GroupChannel | OpenChannel): boolean => {\n if (!store?.config?.isReactionEnabled)\n return false;\n if (!store?.stores?.sdkStore?.sdk?.appInfo?.useReaction)\n return false;\n if (channel?.isGroupChannel())\n return !((channel as GroupChannel).isBroadcast || (channel as GroupChannel).isSuper);\n return store?.config?.isReactionEnabled;\n};\n\nexport const isMessageSentByMe = (\n userId: string,\n message: SendableMessageType,\n): boolean => (\n !!(userId && message?.sender?.userId && userId === message.sender.userId)\n);\n\nconst URL_REG = /^((http|https):\\/\\/)?([a-z\\d]+\\.)+[a-z]{2,6}(\\:[0-9]{1,5})?(\\/[-a-zA-Z\\d%_.~+&=]*)*(\\?[;&a-zA-Z\\d%_.~+=-]*)?(\\#[-a-zA-Z\\d_]*)?$/;\nexport const isUrl = (text: string): boolean => URL_REG.test(text);\n\nconst MENTION_TAG_REG = /\\@\\{.*?\\}/i;\nexport const isMentionedText = (text: string): boolean => MENTION_TAG_REG.test(text);\n\nexport const truncateString = (fullStr: string, strLen?: number): string => {\n if (!strLen) strLen = 40;\n if (fullStr === null || fullStr === undefined) return '';\n if (fullStr.length <= strLen) return fullStr;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = strLen - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars);\n};\n\nexport const copyToClipboard = (text: string): boolean => {\n // @ts-ignore: Unreachable code error\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible.\n // @ts-ignore: Unreachable code error\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n};\n\nexport const getEmojiListAll = (emojiContainer: EmojiContainer): Array<Emoji> => (\n emojiContainer?.emojiCategories?.map((emojiCategory: EmojiCategory) => emojiCategory.emojis)\n .reduce((prevArr: Array<Emoji>, currArr: Array<Emoji>) => prevArr.concat(currArr), [])\n);\nexport const getEmojiMapAll = (emojiContainer: EmojiContainer): Map<string, Emoji> => {\n const emojiMap = new Map();\n emojiContainer?.emojiCategories?.forEach((category: EmojiCategory) => {\n category?.emojis?.forEach((emoji: Emoji): void => {\n if (emoji && emoji.key) {\n emojiMap.set(emoji.key, emoji);\n }\n });\n });\n return emojiMap;\n};\nconst findEmojiUrl = (targetKey: string) => ({ key }) => key === targetKey;\nexport const getEmojiUrl = (emojiContainer?: EmojiContainer, emojiKey?: string): string => {\n const isFindingKey = findEmojiUrl(emojiKey ?? '');\n return emojiContainer?.emojiCategories\n .find((category) => category.emojis.some(isFindingKey))?.emojis\n .find(isFindingKey)\n ?.url || '';\n};\n\nexport const getUserName = (user: User): string => (user?.friendName || user?.nickname || user?.userId);\nexport const getSenderName = (message: SendableMessageType): string => (\n message?.sender && getUserName(message?.sender)\n);\n\nexport const hasSameMembers = <T>(a: T[], b: T[]): boolean => {\n if (a === b) {\n return true;\n }\n if (a == null || b == null) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n\n const sortedA = [...a].sort();\n const sortedB = [...b].sort();\n\n for (let i = 0; i < sortedA.length; ++i) {\n if (sortedA[i] !== sortedB[i]) {\n return false;\n }\n }\n return true;\n};\nexport const isFriend = (user: Nullable<User>): boolean => {\n if (!user) return false;\n return !!(user.friendDiscoveryKey || user.friendName);\n};\n\nexport const filterMessageListParams = (\n params: MessageListParams,\n message: SendableMessageType,\n): boolean => {\n const { customTypesFilter = [] } = params;\n // @ts-ignore\n if (params?.messageTypeFilter && params.messageTypeFilter !== message.messageType) {\n return false;\n }\n if (customTypesFilter?.length > 0) {\n const customTypes = customTypesFilter.filter((item) => item !== '*');\n // Because Chat SDK inserts '*' when customTypes is empty\n if (customTypes.length > 0 && !customTypes.includes(message.customType)) {\n return false;\n }\n }\n if (params?.senderUserIdsFilter && params?.senderUserIdsFilter?.length > 0) {\n if (message?.isUserMessage?.() || message?.isFileMessage?.()) {\n const messageSender = (message as SendableMessageType).sender || message['_sender'];\n if (!params?.senderUserIdsFilter?.includes(messageSender?.userId)) {\n return false;\n }\n } else {\n return false;\n }\n }\n if (!params?.includeParentMessageInfo && (message?.parentMessageId || message?.parentMessage)) {\n return false;\n }\n return true;\n};\n\nexport const filterChannelListParams = (params: GroupChannelListQuery, channel: GroupChannel, currentUserId: string): boolean => {\n const {\n includeEmpty,\n includeFrozen,\n searchFilter,\n userIdsFilter,\n customTypesFilter,\n channelUrlsFilter,\n customTypeStartsWithFilter,\n channelNameContainsFilter,\n nicknameContainsFilter,\n myMemberStateFilter,\n hiddenChannelFilter,\n unreadChannelFilter,\n publicChannelFilter,\n superChannelFilter,\n metadataKey = '',\n metadataValues = ['a', 'b'],\n metadataValueStartsWith,\n } = params;\n\n if (!includeEmpty && channel?.lastMessage === null) {\n return false;\n }\n if (searchFilter?.query && (searchFilter?.fields?.length ?? 0) > 0) {\n const searchQuery = searchFilter.query;\n const searchFields = searchFilter.fields;\n if (searchQuery && searchFields && searchFields.length > 0) {\n if (!searchFields.some((searchField) => {\n switch (searchField) {\n case 'channel_name': {\n return channel?.name?.toLowerCase().includes(searchQuery.toLowerCase());\n }\n case 'member_nickname': {\n return channel?.members?.some((member: Member) => member.nickname.toLowerCase().includes(searchQuery.toLowerCase()));\n }\n default: {\n return true;\n }\n }\n })) {\n return false;\n }\n }\n }\n if (userIdsFilter?.userIds?.length > 0) {\n const { includeMode, queryType } = userIdsFilter;\n const userIds: Array<string> = userIdsFilter.userIds;\n const memberIds = channel?.members?.map((member: Member) => member.userId);\n if (!includeMode) { // exact match\n if (!userIds.includes(currentUserId)) {\n userIds.push(currentUserId); // add the caller's userId if not added already.\n }\n if (channel?.members?.length > userIds.length) {\n return false; // userIds may contain one or more non-member(s).\n }\n if (!hasSameMembers(userIds, memberIds)) {\n return false;\n }\n } else if (userIds.length > 0) { // inclusive\n switch (queryType) {\n case 'AND': {\n if (userIds.some((userId: string) => !memberIds.includes(userId))) {\n return false;\n }\n break;\n }\n case 'OR': {\n if (userIds.every((userId: string) => !memberIds.includes(userId))) {\n return false;\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n }\n if (includeEmpty === false && channel?.lastMessage === null) {\n return false;\n }\n if (includeFrozen === false && channel?.isFrozen === true) {\n return false;\n }\n if (customTypesFilter && !customTypesFilter.includes(channel?.customType)) {\n return false;\n }\n if (customTypeStartsWithFilter && !new RegExp(`^${customTypeStartsWithFilter}`).test(channel?.customType)) {\n return false;\n }\n if (channelNameContainsFilter && !channel?.name?.toLowerCase().includes(channelNameContainsFilter.toLowerCase())) {\n return false;\n }\n if (nicknameContainsFilter) {\n const lowerCasedSubString = nicknameContainsFilter.toLowerCase();\n if (channel?.members?.every((member: Member) => !member.nickname.toLowerCase().includes(lowerCasedSubString))) {\n return false;\n }\n }\n if (channelUrlsFilter && !channelUrlsFilter.includes(channel?.url)) {\n return false;\n }\n if (myMemberStateFilter) {\n switch (myMemberStateFilter) {\n case 'joined_only':\n if (channel?.myMemberState !== 'joined') {\n return false;\n }\n break;\n case 'invited_only':\n if (channel?.myMemberState !== 'invited') {\n return false;\n }\n break;\n case 'invited_by_friend':\n if (channel?.myMemberState !== 'invited' || !isFriend(channel?.inviter)) {\n return false;\n }\n break;\n case 'invited_by_non_friend':\n if (channel?.myMemberState !== 'invited' || isFriend(channel?.inviter)) {\n return false;\n }\n break;\n }\n }\n if (hiddenChannelFilter) {\n switch (hiddenChannelFilter) {\n case 'unhidden_only':\n if (channel?.isHidden || channel?.hiddenState !== 'unhidden') {\n return false;\n }\n break;\n case 'hidden_only':\n if (!channel?.isHidden) {\n return false;\n }\n break;\n case 'hidden_allow_auto_unhide':\n if (!channel?.isHidden || channel?.hiddenState !== 'hidden_allow_auto_unhide') {\n return false;\n }\n break;\n case 'hidden_prevent_auto_unhide':\n if (!channel?.isHidden || channel?.hiddenState !== 'hidden_prevent_auto_unhide') {\n return false;\n }\n break;\n }\n }\n if (unreadChannelFilter) {\n switch (unreadChannelFilter) {\n case 'unread_message':\n if (channel?.unreadMessageCount === 0) {\n return false;\n }\n break;\n }\n }\n if (publicChannelFilter) {\n switch (publicChannelFilter) {\n case 'public':\n if (!channel?.isPublic) {\n return false;\n }\n break;\n case 'private':\n if (channel?.isPublic) {\n return false;\n }\n break;\n }\n }\n if (superChannelFilter) {\n switch (superChannelFilter) {\n case 'super':\n if (!channel?.isSuper) {\n return false;\n }\n break;\n case 'nonsuper':\n if (channel?.isSuper) {\n return false;\n }\n break;\n }\n }\n const { cachedMetaData = {} } = channel;\n if (metadataKey && (metadataValues || metadataValueStartsWith)) {\n const metadataValue: string = cachedMetaData[metadataKey];\n if (!metadataValue) {\n return false;\n }\n if (metadataValues && !metadataValues.every(value => metadataValue.includes(value))) {\n return false;\n }\n if (metadataValueStartsWith && !metadataValue.startsWith(metadataValueStartsWith)) {\n return false;\n }\n }\n return true;\n};\n\nexport const binarySearch = (list: Array<number>, number: number): number => { // [100, 99, 98, 97, ...]\n const pivot = Math.floor(list.length / 2);\n if (list[pivot] === number) {\n return pivot;\n }\n const leftList = list.slice(0, pivot);\n const rightList = list.slice(pivot + 1, list.length);\n if (list[pivot] > number) {\n return pivot + 1 + (rightList.length === 0 ? 0 : binarySearch(rightList, number));\n } else {\n return (leftList.length === 0) ? pivot : binarySearch(leftList, number);\n }\n};\n// This is required when channel is displayed on channel list by filter\nexport const getChannelsWithUpsertedChannel = (channels: Array<GroupChannel>, channel: GroupChannel): Array<GroupChannel> => {\n if (channels.some((ch: GroupChannel) => ch.url === channel?.url)) {\n return channels.map((ch: GroupChannel) => (ch.url === channel?.url ? channel : ch));\n }\n const targetIndex = binarySearch(\n channels.map((channel: GroupChannel) => channel?.lastMessage?.createdAt || channel?.createdAt),\n channel?.lastMessage?.createdAt || channel?.createdAt,\n );\n return [...channels.slice(0, targetIndex), channel, ...channels.slice(targetIndex, channels.length)];\n};\n\nexport const getMatchedUserIds = (word: string, users: Array<User>, _template?: string): boolean => {\n const template = _template || '@'; // Use global variable\n // const matchedUserIds = [];\n // users.map((user) => user?.userId).forEach((userId) => {\n // if (word.indexOf(`${template}{${userId}}`) > -1) {\n // matchedUserIds.push(userId);\n // }\n // });\n // return matchedUserIds;\n return users.map((user) => user?.userId).some((userId) => word.indexOf(`${template}{${userId}}`) > -1);\n};\n\nexport enum StringObjType {\n normal = 'normal',\n mention = 'mention',\n url = 'url',\n}\nexport interface StringObj {\n type: StringObjType;\n value: string;\n userId?: string;\n}\n\n/**\n * @deprecated\n * use modules/message/utils/tokenize instead\n */\nexport const convertWordToStringObj = (word: string, _users: Array<User>, _template?: string): Array<StringObj> => {\n const users = _users || [];\n const template = _template || '@'; // Use global variable\n const resultArray: Array<StringObj> = [];\n const regex = RegExp(`${template}{(${users.map((user) => user?.userId).join('|')})}`, 'g');\n let excutionResult;\n let lastIndex = 0;\n while ((excutionResult = regex.exec(word)) !== null) {\n const [template, userId] = excutionResult;\n const endIndex = regex.lastIndex;\n const startIndex = endIndex - template.length;\n // Normal text\n const normalText = word.slice(lastIndex, startIndex);\n resultArray.push({\n type: isUrl(normalText) ? StringObjType.url : StringObjType.normal,\n value: normalText,\n });\n // Mention template\n const mentionedUser = users.find((user) => user?.userId === userId);\n if (!mentionedUser) {\n resultArray.push({\n type: StringObjType.normal,\n value: template, // because template is the origin text\n });\n } else {\n resultArray.push({\n type: StringObjType.mention,\n value: mentionedUser?.nickname || '(No name)',\n userId: userId,\n });\n }\n lastIndex = endIndex;\n }\n if (lastIndex < word.length) {\n // Normal text\n const normalText = word.slice(lastIndex);\n resultArray.push({\n type: isUrl(normalText) ? StringObjType.url : StringObjType.normal,\n value: normalText,\n });\n }\n return resultArray;\n};\n\nexport const arrayEqual = (array1: Array<unknown>, array2: Array<unknown>): boolean => {\n if (Array.isArray(array1) && Array.isArray(array2) && array1.length === array2.length) {\n for (let i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n }\n return false;\n};\n"],"names":["SUPPORTED_MIMES","IMAGE","VIDEO","AUDIO","DOCUMENT","APPLICATION","getMimeTypesUIKitAccepts","acceptableMimeTypes","Array","isArray","length","reduce","accumulator","acceptableMimeType","concat","match","with","otherwise","join","Object","values","mimeTypes","UIKitMessageTypes","ADMIN","TEXT","FILE","MULTIPLE_FILES","THUMBNAIL","OG","UNKNOWN","UIKitFileTypes","GIF","VOICE","OTHERS","SendingMessageStatus","NONE","SUCCEEDED","FAILED","PENDING","isTextuallyNull","text","isImage","type","indexOf","isVideo","isGif","isSupportedFileView","isAudio","getUIKitFileTypes","_objectSpread","getUIKitFileType","isSentMessage","message","sendingStatus","isReadMessage","channel","getOutgoingMessageState","OutgoingMessageStates","READ","isFailedMessage","isPendingMessage","isSentStatus","state","SENT","DELIVERED","isAdminMessage","messageType","isUserMessage","isFileMessage","isMultipleFilesMessage","prototype","hasOwnProperty","call","isThreadMessage","parentMessageId","parentMessage","isOGMessage","_message$ogMetaData","_message$ogMetaData2","_message$ogMetaData3","_message$ogMetaData4","ogMetaData","url","title","description","defaultImage","isTextMessage","isThumbnailMessage","isImageMessage","isImageFileInfo","fileInfo","mimeType","isVideoMessage","isGifMessage","isGifFileInfo","isAudioMessage","isAudioMessageMimeType","test","isVoiceMessageMimeType","isVoiceMessage","_message$metaArrays$f","_message$metaArrays","_message$metaArrays$f2","_message$metaArrays$f3","typeParameter","split","key","value","metaArrays","find","metaArray","isEditedMessage","updatedAt","getUIKitMessageTypes","getUIKitMessageType","getSendingMessageStatus","reducer","currentValue","push","getClassName","classNames","isReactedBy","userId","reaction","userIds","some","reactorUserId","getEmojiTooltipString","memberNicknamesMap","stringSet","you","TOOLTIP__YOU","TOOLTIP__AND_YOU","filter","map","get","TOOLTIP__UNKNOWN_USER","URL_REG","isUrl","truncateString","fullStr","strLen","undefined","separator","sepLen","charsToShow","frontChars","Math","ceil","backChars","floor","substr","copyToClipboard","window","clipboardData","setData","document","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","getEmojiListAll","emojiContainer","_emojiContainer$emoji","emojiCategories","emojiCategory","emojis","prevArr","currArr","getEmojiMapAll","_emojiContainer$emoji2","emojiMap","Map","forEach","category","_category$emojis","emoji","set","findEmojiUrl","targetKey","_ref","getEmojiUrl","emojiKey","_emojiContainer$emoji3","_emojiContainer$emoji4","isFindingKey","getUserName","user","friendName","nickname","getSenderName","sender","hasSameMembers","a","b","sortedA","sort","sortedB","i","isFriend","friendDiscoveryKey","filterMessageListParams","params","_params$senderUserIds","customTypesFilter","messageTypeFilter","customTypes","item","includes","customType","senderUserIdsFilter","_message$isUserMessag","_message$isFileMessag","_params$senderUserIds2","messageSender","includeParentMessageInfo","filterChannelListParams","currentUserId","_searchFilter$fields$","_searchFilter$fields","_userIdsFilter$userId","_channel$name2","includeEmpty","includeFrozen","searchFilter","userIdsFilter","channelUrlsFilter","customTypeStartsWithFilter","channelNameContainsFilter","nicknameContainsFilter","myMemberStateFilter","hiddenChannelFilter","unreadChannelFilter","publicChannelFilter","superChannelFilter","metadataKey","metadataValues","metadataValueStartsWith","lastMessage","query","fields","searchQuery","searchFields","searchField","_channel$name","name","toLowerCase","_channel$members","members","member","_channel$members2","includeMode","queryType","memberIds","_channel$members3","every","isFrozen","RegExp","_channel$members4","lowerCasedSubString","myMemberState","inviter","isHidden","hiddenState","unreadMessageCount","isPublic","isSuper","cachedMetaData","metadataValue","startsWith","binarySearch","list","number","pivot","leftList","slice","rightList","getChannelsWithUpsertedChannel","channels","_channel$lastMessage2","ch","targetIndex","_channel$lastMessage","createdAt","StringObjType","convertWordToStringObj","word","_users","_template","users","template","resultArray","regex","excutionResult","lastIndex","exec","endIndex","startIndex","normalText","normal","mentionedUser","mention","arrayEqual","array1","array2"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index-afdd497f.js","sources":["../src/utils/index.ts"],"sourcesContent":["import SendbirdChat, { Emoji, EmojiCategory, EmojiContainer, User } from '@sendbird/chat';\nimport { GroupChannel, Member, SendbirdGroupChat, GroupChannelListQuery } from '@sendbird/chat/groupChannel';\nimport {\n AdminMessage,\n FileMessage,\n MessageListParams,\n MultipleFilesMessage,\n Reaction,\n UploadedFileInfo,\n UserMessage,\n} from '@sendbird/chat/message';\nimport { OpenChannel, SendbirdOpenChat } from '@sendbird/chat/openChannel';\n\nimport { getOutgoingMessageState, OutgoingMessageStates } from './exports/getOutgoingMessageState';\nimport { Nullable } from '../types';\nimport { match } from 'ts-pattern';\n\n// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types\nexport const SUPPORTED_MIMES = {\n IMAGE: [\n 'image/jpeg',\n 'image/jpg',\n 'image/png',\n 'image/gif',\n 'image/svg+xml',\n 'image/webp', // not supported in IE\n ],\n VIDEO: [\n 'video/mpeg',\n 'video/ogg',\n 'video/webm',\n 'video/mp4',\n 'video/quicktime', // .mov\n ],\n AUDIO: [\n 'audio/aac',\n 'audio/midi',\n 'audio/x-midi',\n 'audio/mpeg',\n 'audio/ogg',\n 'audio/opus',\n 'audio/wav',\n 'audio/webm',\n 'audio/3gpp',\n 'audio/3gpp2',\n 'audio/mp3',\n ],\n DOCUMENT: [\n 'text/plain',\n 'text/css',\n 'text/csv',\n 'text/html',\n 'text/calendar',\n 'text/javascript',\n 'text/xml',\n ],\n APPLICATION: [\n 'application/x-abiword',\n 'application/x-freearc',\n 'application/vnd.amazon.ebook',\n 'application/octet-stream',\n 'application/x-bzip',\n 'application/x-bzip2',\n 'application/x-cdf',\n 'application/x-csh',\n 'application/msword',\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',\n 'application/vnd.ms-fontobject',\n 'application/epub+zip',\n 'application/gzip',\n 'application/java-archive',\n 'application/json',\n 'application/ld+json',\n 'application/vnd.apple.installer+xml',\n 'application/vnd.oasis.opendocument.presentation',\n 'application/vnd.oasis.opendocument.spreadsheet',\n 'application/vnd.oasis.opendocument.text',\n 'application/ogg',\n 'application/pdf',\n 'application/x-httpd-php',\n 'application/vnd.ms-powerpoint',\n 'application/vnd.openxmlformats-officedocument.presentationml.presentation',\n 'application/vnd.rar',\n 'application/rtf',\n 'application/x-sh',\n 'application/x-tar',\n 'application/vnd.visio',\n 'application/xhtml+xml',\n 'application/vnd.ms-excel',\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n 'application/xml',\n 'application/vnd.mozilla.xul+xml',\n 'application/zip',\n 'application/x-7z-compressed',\n ],\n};\n\nexport const getMimeTypesUIKitAccepts = (acceptableMimeTypes?: Array<string>): string => {\n const { IMAGE, VIDEO, AUDIO } = SUPPORTED_MIMES;\n\n if (Array.isArray(acceptableMimeTypes) && acceptableMimeTypes.length > 0) {\n return (\n acceptableMimeTypes\n .reduce((accumulator: Array<string>, acceptableMimeType: string): Array<string> => (\n accumulator.concat(\n match(acceptableMimeType)\n .with('image', () => IMAGE)\n .with('video', () => VIDEO)\n .with('audio', () => AUDIO)\n .otherwise(() => []),\n )\n ), [])\n .join()\n );\n }\n return (\n Object.values(SUPPORTED_MIMES)\n .reduce((accumulator: Array<string>, mimeTypes: Array<string>) => (\n accumulator.concat(mimeTypes)\n ), [])\n .join()\n );\n // concat() is fater than flat()\n};\n\n/* eslint-disable no-redeclare */\nexport interface UIKitMessageTypes {\n ADMIN: 'ADMIN',\n TEXT: 'TEXT',\n FILE: 'FILE',\n MULTIPLE_FILES: 'MULTIPLE_FILES',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n UNKNOWN: 'UNKNOWN',\n}\nexport const UIKitMessageTypes: UIKitMessageTypes = {\n ADMIN: 'ADMIN',\n TEXT: 'TEXT',\n FILE: 'FILE',\n MULTIPLE_FILES: 'MULTIPLE_FILES',\n THUMBNAIL: 'THUMBNAIL',\n OG: 'OG',\n UNKNOWN: 'UNKNOWN',\n};\n/* eslint-disable no-redeclare */\nexport interface UIKitFileTypes {\n IMAGE: 'IMAGE',\n AUDIO: 'AUDIO',\n VIDEO: 'VIDEO',\n GIF: 'GIF',\n VOICE: 'VOICE',\n OTHERS: 'OTHERS',\n}\nexport const UIKitFileTypes: UIKitFileTypes = {\n IMAGE: 'IMAGE',\n AUDIO: 'AUDIO',\n VIDEO: 'VIDEO',\n GIF: 'GIF',\n VOICE: 'VOICE',\n OTHERS: 'OTHERS',\n};\n\n/* eslint-disable no-redeclare */\nexport interface SendingMessageStatus {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n}\nconst SendingMessageStatus: SendingMessageStatus = {\n NONE: 'none',\n SUCCEEDED: 'succeeded',\n FAILED: 'failed',\n PENDING: 'pending',\n};\n\nexport type CoreMessageType = AdminMessage | UserMessage | FileMessage | MultipleFilesMessage;\nexport type SendableMessageType = UserMessage | FileMessage | MultipleFilesMessage;\n\nexport const isTextuallyNull = (text: string): boolean => {\n if (text === '' || text === null) {\n return true;\n }\n return false;\n};\n\nexport const isImage = (type: string): boolean => SUPPORTED_MIMES.IMAGE.indexOf(type) >= 0;\nexport const isVideo = (type: string): boolean => SUPPORTED_MIMES.VIDEO.indexOf(type) >= 0;\nexport const isGif = (type: string): boolean => type === 'image/gif';\nexport const isSupportedFileView = (type: string): boolean => isImage(type) || isVideo(type);\nexport const isAudio = (type: string): boolean => SUPPORTED_MIMES.AUDIO.indexOf(type) >= 0;\n\nexport const getUIKitFileTypes = (): UIKitFileTypes => ({ ...UIKitFileTypes });\nexport const getUIKitFileType = (type: string): string => {\n if (isGif(type)) return UIKitFileTypes.GIF;\n if (isImage(type)) return UIKitFileTypes.IMAGE;\n if (isVideo(type)) return UIKitFileTypes.VIDEO;\n if (isAudio(type)) return UIKitFileTypes.AUDIO;\n return UIKitFileTypes.OTHERS;\n};\n\nexport const isSentMessage = (\n message: SendableMessageType,\n): boolean => (message.sendingStatus === 'succeeded');\nexport const isDeliveredMessage = (\n channel: GroupChannel,\n message: SendableMessageType,\n): boolean => (\n getOutgoingMessageState(channel, message) === OutgoingMessageStates.DELIVERED\n || getOutgoingMessageState(channel, message) === OutgoingMessageStates.READ\n);\nexport const isReadMessage = (\n channel: GroupChannel,\n message: SendableMessageType,\n): boolean => (\n getOutgoingMessageState(channel, message) === OutgoingMessageStates.READ\n);\n// TODO: Remove channel from the params, it seems unnecessary\nexport const isFailedMessage = (\n message: SendableMessageType,\n): boolean => (message?.sendingStatus === 'failed');\nexport const isPendingMessage = (\n message: SendableMessageType,\n): boolean => (message?.sendingStatus === 'pending');\nexport const isSentStatus = (state: string): boolean => (\n state === OutgoingMessageStates.SENT\n || state === OutgoingMessageStates.DELIVERED\n || state === OutgoingMessageStates.READ\n);\n\nexport const isAdminMessage = (message: CoreMessageType): boolean => (\n message && (\n message['isAdminMessage'] && typeof message.isAdminMessage === 'function'\n ? message.isAdminMessage()\n : message?.messageType === 'admin'\n )\n);\nexport const isUserMessage = (message: CoreMessageType): boolean => (\n message && (\n message['isUserMessage'] && typeof message.isUserMessage === 'function'\n ? message.isUserMessage()\n : message?.messageType === 'user'\n )\n);\nexport const isFileMessage = (message: CoreMessageType): boolean => (\n message && (\n message['isFileMessage'] && typeof message.isFileMessage === 'function'\n ? message.isFileMessage()\n : message?.messageType === 'file'\n )\n);\nexport const isMultipleFilesMessage = (\n message: CoreMessageType,\n): boolean => (\n message && (\n message['isMultipleFilesMessage'] && typeof message.isMultipleFilesMessage === 'function'\n ? message.isMultipleFilesMessage()\n : (\n message.messageType === 'file'\n && Object.prototype.hasOwnProperty.call(message, 'fileInfoList')\n )\n )\n);\nexport const isParentMessage = (message: CoreMessageType): boolean => (\n !message.parentMessageId && !message.parentMessage && (message.threadInfo?.replyCount ?? 0) > 0\n);\nexport const isThreadMessage = (message: CoreMessageType): boolean => (\n !!message.parentMessageId && !!message.parentMessage\n);\nexport const isOGMessage = (message: SendableMessageType): boolean => !!(\n message && isUserMessage(message) && message?.ogMetaData && (\n message.ogMetaData?.url\n || message.ogMetaData?.title\n || message.ogMetaData?.description\n || message.ogMetaData?.defaultImage\n )\n);\nexport const isTextMessage = (message: SendableMessageType): boolean => (\n isUserMessage(message)\n);\nexport const isThumbnailMessage = (message: SendableMessageType): boolean => (\n message && isFileMessage(message) && isSupportedFileView((message as FileMessage).type)\n);\nexport const isImageMessage = (message: FileMessage): boolean => message && isThumbnailMessage(message) && isImage(message.type);\nexport const isImageFileInfo = (fileInfo: UploadedFileInfo): boolean => fileInfo && isImage(fileInfo.mimeType);\nexport const isVideoMessage = (message: SendableMessageType): boolean => (\n message && isThumbnailMessage(message) && isVideo((message as FileMessage).type)\n);\nexport const isGifMessage = (message: SendableMessageType): boolean => (\n message && isThumbnailMessage(message) && isGif((message as FileMessage).type)\n);\nexport const isGifFileInfo = (fileInfo: UploadedFileInfo): boolean => (\n fileInfo && isGif(fileInfo.mimeType)\n);\nexport const isAudioMessage = (message: FileMessage): boolean => message && isFileMessage(message) && isAudio(message.type);\nexport const isAudioMessageMimeType = (type: string): boolean => (/^audio\\//.test(type));\nexport const isVoiceMessageMimeType = (type: string): boolean => (/^voice\\//.test(type));\nexport const isVoiceMessage = (message: Nullable<SendableMessageType>): boolean => {\n // ex) audio/m4a OR audio/m4a;sbu_type=voice\n if (!(message && isFileMessage(message)) || !(message as FileMessage).type) {\n return false;\n }\n const [mimeType, typeParameter] = (message as FileMessage).type.split(';');\n\n if (!isAudioMessageMimeType(mimeType)) {\n return false;\n }\n\n if (typeParameter) {\n const [key, value] = typeParameter.split('=');\n return key === 'sbu_type' && value === 'voice';\n }\n // ex) message.metaArrays = [{ key: 'KEY_INTERNAL_MESSAGE_TYPE', value: ['voice/m4a'] }]\n return isVoiceMessageMimeType(message?.metaArrays?.find((metaArray) => metaArray.key === 'KEY_INTERNAL_MESSAGE_TYPE')?.value?.[0] ?? '');\n};\n\nexport const isEditedMessage = (\n message: CoreMessageType,\n): boolean => isUserMessage(message) && (message?.updatedAt > 0);\nexport const isEnabledOGMessage = (message: UserMessage): boolean => (\n (!message || !message.ogMetaData || !message.ogMetaData.url) ? false : true\n);\n\nexport const getUIKitMessageTypes = (): UIKitMessageTypes => ({ ...UIKitMessageTypes });\n\n/**\n * Do not use this for MultipleFilesMessage. Use isMultipleFilesMessage() instead.\n */\nexport const getUIKitMessageType = (\n message: CoreMessageType,\n): string => {\n if (isAdminMessage(message as AdminMessage)) return UIKitMessageTypes.ADMIN;\n if (isUserMessage(message as UserMessage)) {\n return isOGMessage(message as UserMessage) ? UIKitMessageTypes.OG : UIKitMessageTypes.TEXT;\n }\n // This is only a safeguard to not return UNKNOWN for MFM.\n if (isMultipleFilesMessage(message as FileMessage)) {\n return UIKitMessageTypes.MULTIPLE_FILES;\n }\n if (isFileMessage(message as FileMessage)) {\n if (isThumbnailMessage(message as FileMessage)) {\n return UIKitMessageTypes.THUMBNAIL;\n }\n if (isVoiceMessage(message as FileMessage)) {\n return UIKitFileTypes.VOICE;\n }\n return UIKitMessageTypes.FILE;\n }\n return UIKitMessageTypes.UNKNOWN;\n};\nexport const getSendingMessageStatus = (): SendingMessageStatus => ({ ...SendingMessageStatus });\n\nconst reducer = (accumulator: Array<string>, currentValue: string | Array<string>): Array<any> => {\n if (Array.isArray(currentValue)) {\n return [...accumulator, ...currentValue];\n } else {\n accumulator.push(currentValue);\n return accumulator;\n }\n};\nexport const getClassName = (classNames: string | Array<string | Array<string>>): string => (\n Array.isArray(classNames)\n ? classNames.reduce(reducer, []).join(' ')\n : classNames\n);\nexport const isReactedBy = (userId: string, reaction: Reaction): boolean => (\n reaction.userIds.some((reactorUserId: string): boolean => reactorUserId === userId)\n);\ninterface StringSet {\n TOOLTIP__YOU: string;\n TOOLTIP__AND_YOU: string;\n TOOLTIP__UNKNOWN_USER: string;\n}\nexport const getEmojiTooltipString = (reaction: Reaction, userId: string, memberNicknamesMap: Map<string, string>, stringSet: StringSet): string => {\n let you = '';\n if (isReactedBy(userId, reaction)) {\n you = reaction.userIds.length === 1 ? stringSet.TOOLTIP__YOU : stringSet.TOOLTIP__AND_YOU;\n }\n return (`${reaction.userIds\n .filter((reactorUserId: string) => reactorUserId !== userId)\n .map((reactorUserId: string) => (memberNicknamesMap.get(reactorUserId) || stringSet.TOOLTIP__UNKNOWN_USER))\n .join(', ')}${you}`);\n};\n\n// TODO: Use the interface after language tranlsatation of Sendbird.js\ninterface UIKitStore {\n stores: {\n sdkStore: {\n sdk: SendbirdChat | SendbirdOpenChat | SendbirdGroupChat,\n },\n userStore: {\n user: User,\n },\n },\n config: {\n isReactionEnabled: boolean,\n }\n}\nexport const getCurrentUserId = (store: UIKitStore): string => (store?.stores?.userStore?.user?.userId);\nexport const getUseReaction = (store: UIKitStore, channel: GroupChannel | OpenChannel): boolean => {\n if (!store?.config?.isReactionEnabled)\n return false;\n if (!store?.stores?.sdkStore?.sdk?.appInfo?.useReaction)\n return false;\n if (channel?.isGroupChannel())\n return !((channel as GroupChannel).isBroadcast || (channel as GroupChannel).isSuper);\n return store?.config?.isReactionEnabled;\n};\n\nexport const isMessageSentByMe = (\n userId: string,\n message: SendableMessageType,\n): boolean => (\n !!(userId && message?.sender?.userId && userId === message.sender.userId)\n);\n\nconst URL_REG = /^((http|https):\\/\\/)?([a-z\\d]+\\.)+[a-z]{2,6}(\\:[0-9]{1,5})?(\\/[-a-zA-Z\\d%_.~+&=]*)*(\\?[;&a-zA-Z\\d%_.~+=-]*)?(\\#[-a-zA-Z\\d_]*)?$/;\nexport const isUrl = (text: string): boolean => URL_REG.test(text);\n\nconst MENTION_TAG_REG = /\\@\\{.*?\\}/i;\nexport const isMentionedText = (text: string): boolean => MENTION_TAG_REG.test(text);\n\nexport const truncateString = (fullStr: string, strLen?: number): string => {\n if (!strLen) strLen = 40;\n if (fullStr === null || fullStr === undefined) return '';\n if (fullStr.length <= strLen) return fullStr;\n const separator = '...';\n const sepLen = separator.length;\n const charsToShow = strLen - sepLen;\n const frontChars = Math.ceil(charsToShow / 2);\n const backChars = Math.floor(charsToShow / 2);\n return fullStr.substr(0, frontChars) + separator + fullStr.substr(fullStr.length - backChars);\n};\n\nexport const copyToClipboard = (text: string): boolean => {\n // @ts-ignore: Unreachable code error\n if (window.clipboardData && window.clipboardData.setData) {\n // Internet Explorer-specific code path to prevent textarea being shown while dialog is visible.\n // @ts-ignore: Unreachable code error\n return window.clipboardData.setData('Text', text);\n }\n if (document.queryCommandSupported && document.queryCommandSupported('copy')) {\n const textarea = document.createElement('textarea');\n textarea.textContent = text;\n textarea.style.position = 'fixed'; // Prevent scrolling to bottom of page in Microsoft Edge.\n document.body.appendChild(textarea);\n textarea.select();\n try {\n return document.execCommand('copy'); // Security exception may be thrown by some browsers.\n } catch (ex) {\n return false;\n } finally {\n document.body.removeChild(textarea);\n }\n }\n return false;\n};\n\nexport const getEmojiListAll = (emojiContainer: EmojiContainer): Array<Emoji> => (\n emojiContainer?.emojiCategories?.map((emojiCategory: EmojiCategory) => emojiCategory.emojis)\n .reduce((prevArr: Array<Emoji>, currArr: Array<Emoji>) => prevArr.concat(currArr), [])\n);\nexport const getEmojiMapAll = (emojiContainer: EmojiContainer): Map<string, Emoji> => {\n const emojiMap = new Map();\n emojiContainer?.emojiCategories?.forEach((category: EmojiCategory) => {\n category?.emojis?.forEach((emoji: Emoji): void => {\n if (emoji && emoji.key) {\n emojiMap.set(emoji.key, emoji);\n }\n });\n });\n return emojiMap;\n};\nconst findEmojiUrl = (targetKey: string) => ({ key }) => key === targetKey;\nexport const getEmojiUrl = (emojiContainer?: EmojiContainer, emojiKey?: string): string => {\n const isFindingKey = findEmojiUrl(emojiKey ?? '');\n return emojiContainer?.emojiCategories\n .find((category) => category.emojis.some(isFindingKey))?.emojis\n .find(isFindingKey)\n ?.url || '';\n};\n\nexport const getUserName = (user: User): string => (user?.friendName || user?.nickname || user?.userId);\nexport const getSenderName = (message: SendableMessageType): string => (\n message?.sender && getUserName(message?.sender)\n);\n\nexport const hasSameMembers = <T>(a: T[], b: T[]): boolean => {\n if (a === b) {\n return true;\n }\n if (a == null || b == null) {\n return false;\n }\n if (a.length !== b.length) {\n return false;\n }\n\n const sortedA = [...a].sort();\n const sortedB = [...b].sort();\n\n for (let i = 0; i < sortedA.length; ++i) {\n if (sortedA[i] !== sortedB[i]) {\n return false;\n }\n }\n return true;\n};\nexport const isFriend = (user: Nullable<User>): boolean => {\n if (!user) return false;\n return !!(user.friendDiscoveryKey || user.friendName);\n};\n\nexport const filterMessageListParams = (\n params: MessageListParams,\n message: SendableMessageType,\n): boolean => {\n const { customTypesFilter = [] } = params;\n // @ts-ignore\n if (params?.messageTypeFilter && params.messageTypeFilter !== message.messageType) {\n return false;\n }\n if (customTypesFilter?.length > 0) {\n const customTypes = customTypesFilter.filter((item) => item !== '*');\n // Because Chat SDK inserts '*' when customTypes is empty\n if (customTypes.length > 0 && !customTypes.includes(message.customType)) {\n return false;\n }\n }\n if (params?.senderUserIdsFilter && params?.senderUserIdsFilter?.length > 0) {\n if (message?.isUserMessage?.() || message?.isFileMessage?.()) {\n const messageSender = (message as SendableMessageType).sender || message['_sender'];\n if (!params?.senderUserIdsFilter?.includes(messageSender?.userId)) {\n return false;\n }\n } else {\n return false;\n }\n }\n if (!params?.includeParentMessageInfo && (message?.parentMessageId || message?.parentMessage)) {\n return false;\n }\n return true;\n};\n\nexport const filterChannelListParams = (params: GroupChannelListQuery, channel: GroupChannel, currentUserId: string): boolean => {\n const {\n includeEmpty,\n includeFrozen,\n searchFilter,\n userIdsFilter,\n customTypesFilter,\n channelUrlsFilter,\n customTypeStartsWithFilter,\n channelNameContainsFilter,\n nicknameContainsFilter,\n myMemberStateFilter,\n hiddenChannelFilter,\n unreadChannelFilter,\n publicChannelFilter,\n superChannelFilter,\n metadataKey = '',\n metadataValues = ['a', 'b'],\n metadataValueStartsWith,\n } = params;\n\n if (!includeEmpty && channel?.lastMessage === null) {\n return false;\n }\n if (searchFilter?.query && (searchFilter?.fields?.length ?? 0) > 0) {\n const searchQuery = searchFilter.query;\n const searchFields = searchFilter.fields;\n if (searchQuery && searchFields && searchFields.length > 0) {\n if (!searchFields.some((searchField) => {\n switch (searchField) {\n case 'channel_name': {\n return channel?.name?.toLowerCase().includes(searchQuery.toLowerCase());\n }\n case 'member_nickname': {\n return channel?.members?.some((member: Member) => member.nickname.toLowerCase().includes(searchQuery.toLowerCase()));\n }\n default: {\n return true;\n }\n }\n })) {\n return false;\n }\n }\n }\n if (userIdsFilter?.userIds?.length > 0) {\n const { includeMode, queryType } = userIdsFilter;\n const userIds: Array<string> = userIdsFilter.userIds;\n const memberIds = channel?.members?.map((member: Member) => member.userId);\n if (!includeMode) { // exact match\n if (!userIds.includes(currentUserId)) {\n userIds.push(currentUserId); // add the caller's userId if not added already.\n }\n if (channel?.members?.length > userIds.length) {\n return false; // userIds may contain one or more non-member(s).\n }\n if (!hasSameMembers(userIds, memberIds)) {\n return false;\n }\n } else if (userIds.length > 0) { // inclusive\n switch (queryType) {\n case 'AND': {\n if (userIds.some((userId: string) => !memberIds.includes(userId))) {\n return false;\n }\n break;\n }\n case 'OR': {\n if (userIds.every((userId: string) => !memberIds.includes(userId))) {\n return false;\n }\n break;\n }\n default: {\n break;\n }\n }\n }\n }\n if (includeEmpty === false && channel?.lastMessage === null) {\n return false;\n }\n if (includeFrozen === false && channel?.isFrozen === true) {\n return false;\n }\n if (customTypesFilter && !customTypesFilter.includes(channel?.customType)) {\n return false;\n }\n if (customTypeStartsWithFilter && !new RegExp(`^${customTypeStartsWithFilter}`).test(channel?.customType)) {\n return false;\n }\n if (channelNameContainsFilter && !channel?.name?.toLowerCase().includes(channelNameContainsFilter.toLowerCase())) {\n return false;\n }\n if (nicknameContainsFilter) {\n const lowerCasedSubString = nicknameContainsFilter.toLowerCase();\n if (channel?.members?.every((member: Member) => !member.nickname.toLowerCase().includes(lowerCasedSubString))) {\n return false;\n }\n }\n if (channelUrlsFilter && !channelUrlsFilter.includes(channel?.url)) {\n return false;\n }\n if (myMemberStateFilter) {\n switch (myMemberStateFilter) {\n case 'joined_only':\n if (channel?.myMemberState !== 'joined') {\n return false;\n }\n break;\n case 'invited_only':\n if (channel?.myMemberState !== 'invited') {\n return false;\n }\n break;\n case 'invited_by_friend':\n if (channel?.myMemberState !== 'invited' || !isFriend(channel?.inviter)) {\n return false;\n }\n break;\n case 'invited_by_non_friend':\n if (channel?.myMemberState !== 'invited' || isFriend(channel?.inviter)) {\n return false;\n }\n break;\n }\n }\n if (hiddenChannelFilter) {\n switch (hiddenChannelFilter) {\n case 'unhidden_only':\n if (channel?.isHidden || channel?.hiddenState !== 'unhidden') {\n return false;\n }\n break;\n case 'hidden_only':\n if (!channel?.isHidden) {\n return false;\n }\n break;\n case 'hidden_allow_auto_unhide':\n if (!channel?.isHidden || channel?.hiddenState !== 'hidden_allow_auto_unhide') {\n return false;\n }\n break;\n case 'hidden_prevent_auto_unhide':\n if (!channel?.isHidden || channel?.hiddenState !== 'hidden_prevent_auto_unhide') {\n return false;\n }\n break;\n }\n }\n if (unreadChannelFilter) {\n switch (unreadChannelFilter) {\n case 'unread_message':\n if (channel?.unreadMessageCount === 0) {\n return false;\n }\n break;\n }\n }\n if (publicChannelFilter) {\n switch (publicChannelFilter) {\n case 'public':\n if (!channel?.isPublic) {\n return false;\n }\n break;\n case 'private':\n if (channel?.isPublic) {\n return false;\n }\n break;\n }\n }\n if (superChannelFilter) {\n switch (superChannelFilter) {\n case 'super':\n if (!channel?.isSuper) {\n return false;\n }\n break;\n case 'nonsuper':\n if (channel?.isSuper) {\n return false;\n }\n break;\n }\n }\n const { cachedMetaData = {} } = channel;\n if (metadataKey && (metadataValues || metadataValueStartsWith)) {\n const metadataValue: string = cachedMetaData[metadataKey];\n if (!metadataValue) {\n return false;\n }\n if (metadataValues && !metadataValues.every(value => metadataValue.includes(value))) {\n return false;\n }\n if (metadataValueStartsWith && !metadataValue.startsWith(metadataValueStartsWith)) {\n return false;\n }\n }\n return true;\n};\n\nexport const binarySearch = (list: Array<number>, number: number): number => { // [100, 99, 98, 97, ...]\n const pivot = Math.floor(list.length / 2);\n if (list[pivot] === number) {\n return pivot;\n }\n const leftList = list.slice(0, pivot);\n const rightList = list.slice(pivot + 1, list.length);\n if (list[pivot] > number) {\n return pivot + 1 + (rightList.length === 0 ? 0 : binarySearch(rightList, number));\n } else {\n return (leftList.length === 0) ? pivot : binarySearch(leftList, number);\n }\n};\n// This is required when channel is displayed on channel list by filter\nexport const getChannelsWithUpsertedChannel = (channels: Array<GroupChannel>, channel: GroupChannel): Array<GroupChannel> => {\n if (channels.some((ch: GroupChannel) => ch.url === channel?.url)) {\n return channels.map((ch: GroupChannel) => (ch.url === channel?.url ? channel : ch));\n }\n const targetIndex = binarySearch(\n channels.map((channel: GroupChannel) => channel?.lastMessage?.createdAt || channel?.createdAt),\n channel?.lastMessage?.createdAt || channel?.createdAt,\n );\n return [...channels.slice(0, targetIndex), channel, ...channels.slice(targetIndex, channels.length)];\n};\n\nexport const getMatchedUserIds = (word: string, users: Array<User>, _template?: string): boolean => {\n const template = _template || '@'; // Use global variable\n // const matchedUserIds = [];\n // users.map((user) => user?.userId).forEach((userId) => {\n // if (word.indexOf(`${template}{${userId}}`) > -1) {\n // matchedUserIds.push(userId);\n // }\n // });\n // return matchedUserIds;\n return users.map((user) => user?.userId).some((userId) => word.indexOf(`${template}{${userId}}`) > -1);\n};\n\nexport enum StringObjType {\n normal = 'normal',\n mention = 'mention',\n url = 'url',\n}\nexport interface StringObj {\n type: StringObjType;\n value: string;\n userId?: string;\n}\n\n/**\n * @deprecated\n * use modules/message/utils/tokenize instead\n */\nexport const convertWordToStringObj = (word: string, _users: Array<User>, _template?: string): Array<StringObj> => {\n const users = _users || [];\n const template = _template || '@'; // Use global variable\n const resultArray: Array<StringObj> = [];\n const regex = RegExp(`${template}{(${users.map((user) => user?.userId).join('|')})}`, 'g');\n let excutionResult;\n let lastIndex = 0;\n while ((excutionResult = regex.exec(word)) !== null) {\n const [template, userId] = excutionResult;\n const endIndex = regex.lastIndex;\n const startIndex = endIndex - template.length;\n // Normal text\n const normalText = word.slice(lastIndex, startIndex);\n resultArray.push({\n type: isUrl(normalText) ? StringObjType.url : StringObjType.normal,\n value: normalText,\n });\n // Mention template\n const mentionedUser = users.find((user) => user?.userId === userId);\n if (!mentionedUser) {\n resultArray.push({\n type: StringObjType.normal,\n value: template, // because template is the origin text\n });\n } else {\n resultArray.push({\n type: StringObjType.mention,\n value: mentionedUser?.nickname || '(No name)',\n userId: userId,\n });\n }\n lastIndex = endIndex;\n }\n if (lastIndex < word.length) {\n // Normal text\n const normalText = word.slice(lastIndex);\n resultArray.push({\n type: isUrl(normalText) ? StringObjType.url : StringObjType.normal,\n value: normalText,\n });\n }\n return resultArray;\n};\n\nexport const arrayEqual = (array1: Array<unknown>, array2: Array<unknown>): boolean => {\n if (Array.isArray(array1) && Array.isArray(array2) && array1.length === array2.length) {\n for (let i = 0; i < array1.length; i++) {\n if (array1[i] !== array2[i]) {\n return false;\n }\n }\n return true;\n }\n return false;\n};\n"],"names":["SUPPORTED_MIMES","IMAGE","VIDEO","AUDIO","DOCUMENT","APPLICATION","getMimeTypesUIKitAccepts","acceptableMimeTypes","Array","isArray","length","reduce","accumulator","acceptableMimeType","concat","match","with","otherwise","join","Object","values","mimeTypes","UIKitMessageTypes","ADMIN","TEXT","FILE","MULTIPLE_FILES","THUMBNAIL","OG","UNKNOWN","UIKitFileTypes","GIF","VOICE","OTHERS","SendingMessageStatus","NONE","SUCCEEDED","FAILED","PENDING","isTextuallyNull","text","isImage","type","indexOf","isVideo","isGif","isSupportedFileView","isAudio","getUIKitFileTypes","_objectSpread","getUIKitFileType","isSentMessage","message","sendingStatus","isReadMessage","channel","getOutgoingMessageState","OutgoingMessageStates","READ","isFailedMessage","isPendingMessage","isSentStatus","state","SENT","DELIVERED","isAdminMessage","messageType","isUserMessage","isFileMessage","isMultipleFilesMessage","prototype","hasOwnProperty","call","isThreadMessage","parentMessageId","parentMessage","isOGMessage","_message$ogMetaData","_message$ogMetaData2","_message$ogMetaData3","_message$ogMetaData4","ogMetaData","url","title","description","defaultImage","isTextMessage","isThumbnailMessage","isImageMessage","isImageFileInfo","fileInfo","mimeType","isVideoMessage","isGifMessage","isGifFileInfo","isAudioMessage","isAudioMessageMimeType","test","isVoiceMessageMimeType","isVoiceMessage","_message$metaArrays$f","_message$metaArrays","_message$metaArrays$f2","_message$metaArrays$f3","typeParameter","split","key","value","metaArrays","find","metaArray","isEditedMessage","updatedAt","getUIKitMessageTypes","getUIKitMessageType","getSendingMessageStatus","reducer","currentValue","push","getClassName","classNames","isReactedBy","userId","reaction","userIds","some","reactorUserId","getEmojiTooltipString","memberNicknamesMap","stringSet","you","TOOLTIP__YOU","TOOLTIP__AND_YOU","filter","map","get","TOOLTIP__UNKNOWN_USER","URL_REG","isUrl","truncateString","fullStr","strLen","undefined","separator","sepLen","charsToShow","frontChars","Math","ceil","backChars","floor","substr","copyToClipboard","window","clipboardData","setData","document","queryCommandSupported","textarea","createElement","textContent","style","position","body","appendChild","select","execCommand","ex","removeChild","getEmojiListAll","emojiContainer","_emojiContainer$emoji","emojiCategories","emojiCategory","emojis","prevArr","currArr","getEmojiMapAll","_emojiContainer$emoji2","emojiMap","Map","forEach","category","_category$emojis","emoji","set","findEmojiUrl","targetKey","_ref","getEmojiUrl","emojiKey","_emojiContainer$emoji3","_emojiContainer$emoji4","isFindingKey","getUserName","user","friendName","nickname","getSenderName","sender","hasSameMembers","a","b","sortedA","sort","sortedB","i","isFriend","friendDiscoveryKey","filterMessageListParams","params","_params$senderUserIds","customTypesFilter","messageTypeFilter","customTypes","item","includes","customType","senderUserIdsFilter","_message$isUserMessag","_message$isFileMessag","_params$senderUserIds2","messageSender","includeParentMessageInfo","filterChannelListParams","currentUserId","_searchFilter$fields$","_searchFilter$fields","_userIdsFilter$userId","_channel$name2","includeEmpty","includeFrozen","searchFilter","userIdsFilter","channelUrlsFilter","customTypeStartsWithFilter","channelNameContainsFilter","nicknameContainsFilter","myMemberStateFilter","hiddenChannelFilter","unreadChannelFilter","publicChannelFilter","superChannelFilter","metadataKey","metadataValues","metadataValueStartsWith","lastMessage","query","fields","searchQuery","searchFields","searchField","_channel$name","name","toLowerCase","_channel$members","members","member","_channel$members2","includeMode","queryType","memberIds","_channel$members3","every","isFrozen","RegExp","_channel$members4","lowerCasedSubString","myMemberState","inviter","isHidden","hiddenState","unreadMessageCount","isPublic","isSuper","cachedMetaData","metadataValue","startsWith","binarySearch","list","number","pivot","leftList","slice","rightList","getChannelsWithUpsertedChannel","channels","_channel$lastMessage2","ch","targetIndex","_channel$lastMessage","createdAt","StringObjType","convertWordToStringObj","word","_users","_template","users","template","resultArray","regex","excutionResult","lastIndex","exec","endIndex","startIndex","normalText","normal","mentionedUser","mention","arrayEqual","array1","array2"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-c277467e.js","sources":["../src/hooks/useModal/ModalRoot/index.tsx"],"sourcesContent":["// simple component to be used as modal root\nimport React, { ReactElement } from 'react';\n\nexport const MODAL_ROOT = 'sendbird-modal-root';\n\nexport const ModalRoot = (): ReactElement => (\n <div id={MODAL_ROOT} className={MODAL_ROOT} />\n);\nexport default ModalRoot;\n"],"names":["MODAL_ROOT"],"mappings":";;AAAA;AAGO,MAAMA,UAAU,GAAG;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { i as isSameDay } from './index-
|
|
2
|
-
import { r as requiredArgs, t as toDate, a as toInteger } from './index-
|
|
1
|
+
import { i as isSameDay } from './index-6805d5c8.js';
|
|
2
|
+
import { r as requiredArgs, t as toDate, a as toInteger } from './index-9ea624d5.js';
|
|
3
3
|
|
|
4
4
|
/**
|
|
5
5
|
* @name isToday
|
|
@@ -171,4 +171,4 @@ function isYesterday(dirtyDate) {
|
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
export { isYesterday as a, isThisYear as b, isToday as i };
|
|
174
|
-
//# sourceMappingURL=index-
|
|
174
|
+
//# sourceMappingURL=index-cdaae7f9.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-cdaae7f9.js","sources":["../node_modules/date-fns/esm/isToday/index.js","../node_modules/date-fns/esm/isSameYear/index.js","../node_modules/date-fns/esm/isThisYear/index.js","../node_modules/date-fns/esm/addDays/index.js","../node_modules/date-fns/esm/subDays/index.js","../node_modules/date-fns/esm/isYesterday/index.js"],"sourcesContent":["import isSameDay from \"../isSameDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isToday\n * @category Day Helpers\n * @summary Is the given date today?\n * @pure false\n *\n * @description\n * Is the given date today?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is today\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 6 October 2014, is 6 October 14:00:00 today?\n * const result = isToday(new Date(2014, 9, 6, 14, 0))\n * //=> true\n */\n\nexport default function isToday(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameDay(dirtyDate, Date.now());\n}","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameYear\n * @category Year Helpers\n * @summary Are the given dates in the same year?\n *\n * @description\n * Are the given dates in the same year?\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same year\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 2 September 2014 and 25 September 2014 in the same year?\n * const result = isSameYear(new Date(2014, 8, 2), new Date(2014, 8, 25))\n * //=> true\n */\n\nexport default function isSameYear(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n return dateLeft.getFullYear() === dateRight.getFullYear();\n}","import isSameYear from \"../isSameYear/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isThisYear\n * @category Year Helpers\n * @summary Is the given date in the same year as the current date?\n * @pure false\n *\n * @description\n * Is the given date in the same year as the current date?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is in this year\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 25 September 2014, is 2 July 2014 in this year?\n * const result = isThisYear(new Date(2014, 6, 2))\n * //=> true\n */\n\nexport default function isThisYear(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameYear(dirtyDate, Date.now());\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n date.setDate(date.getDate() + amount);\n return date;\n}","import addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\nimport toInteger from \"../_lib/toInteger/index.js\";\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\n\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","import isSameDay from \"../isSameDay/index.js\";\nimport subDays from \"../subDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isYesterday\n * @category Day Helpers\n * @summary Is the given date yesterday?\n * @pure false\n *\n * @description\n * Is the given date yesterday?\n *\n * > ⚠️ Please note that this function is not present in the FP submodule as\n * > it uses `Date.now()` internally hence impure and can't be safely curried.\n *\n * @param {Date|Number} date - the date to check\n * @returns {Boolean} the date is yesterday\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // If today is 6 October 2014, is 5 October 14:00:00 yesterday?\n * const result = isYesterday(new Date(2014, 9, 5, 14, 0))\n * //=> true\n */\n\nexport default function isYesterday(dirtyDate) {\n requiredArgs(1, arguments);\n return isSameDay(dirtyDate, subDays(Date.now(), 1));\n}"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { b as _extends } from './_rollupPluginBabelHelpers-
|
|
1
|
+
import { b as _extends } from './_rollupPluginBabelHelpers-0cef07cb.js';
|
|
2
2
|
import React__default, { useState, useCallback, useMemo, createContext, useContext } from 'react';
|
|
3
|
-
import { K } from './index.module-
|
|
4
|
-
import { n as noop } from './utils-
|
|
3
|
+
import { K } from './index.module-f3f31594.js';
|
|
4
|
+
import { n as noop } from './utils-eb4100d3.js';
|
|
5
5
|
import { Modal } from './ui/Modal.js';
|
|
6
6
|
|
|
7
7
|
const GlobalModalContext = /*#__PURE__*/createContext({
|
|
@@ -48,4 +48,4 @@ const GlobalModalProvider = _ref => {
|
|
|
48
48
|
const useGlobalModalContext = () => useContext(GlobalModalContext);
|
|
49
49
|
|
|
50
50
|
export { GlobalModalProvider as G, useGlobalModalContext as u };
|
|
51
|
-
//# sourceMappingURL=index-
|
|
51
|
+
//# sourceMappingURL=index-f35b1dcc.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-f35b1dcc.js","sources":["../src/hooks/useModal/index.tsx"],"sourcesContent":["import React, { useState, useCallback, ReactElement, createContext, useMemo, useContext } from 'react';\nimport { match } from 'ts-pattern';\n\nimport { noop } from '../../utils/utils';\nimport Modal, { type ModalProps } from '../../ui/Modal';\n\nexport type OpenGlobalModalProps = {\n modalProps: ModalProps;\n childElement: (props: { closeModal: () => void }) => ReactElement;\n};\nexport interface GlobalModalProviderProps {\n children: ReactElement;\n}\nexport interface GlobalModalContextInterface {\n openModal: (props: OpenGlobalModalProps) => void;\n}\n\nconst GlobalModalContext = createContext<GlobalModalContextInterface>({\n openModal: noop,\n});\n\nexport const GlobalModalProvider = ({ children }: GlobalModalProviderProps) => {\n // Idea from https://dev.to/nurislamov/simple-modals-queue-in-react-4g6c\n const [globalModalQueue, setGlobalModalQueue] = useState<Array<OpenGlobalModalProps>>([]);\n\n const openModal = useCallback((props: OpenGlobalModalProps) => {\n setGlobalModalQueue((currentQue) => [...currentQue, props]);\n }, []);\n\n const closeModal = useCallback(() => {\n setGlobalModalQueue((currentQue) => currentQue.slice(1));\n }, []);\n\n const ModalComponent = useMemo(() => () => {\n return match(globalModalQueue)\n .when(q => q.length === 0, () => {\n return <></>;\n })\n .otherwise(() => {\n const { modalProps, childElement } = globalModalQueue[0];\n return (\n <Modal\n {...modalProps}\n className={`sendbird-global-modal ${modalProps?.className}`}\n onClose={() => {\n modalProps?.onClose?.();\n closeModal();\n }}\n >\n {\n childElement({\n closeModal,\n })\n }\n </Modal>\n );\n });\n }, [globalModalQueue]);\n\n return (\n <GlobalModalContext.Provider\n value={{\n openModal,\n }}\n >\n <ModalComponent />\n {children}\n </GlobalModalContext.Provider>\n );\n};\nexport const useGlobalModalContext = (): GlobalModalContextInterface => useContext(GlobalModalContext);\n\nexport * from './ModalRoot';\n"],"names":["GlobalModalContext","createContext","openModal","noop","GlobalModalProvider","_ref","children","globalModalQueue","setGlobalModalQueue","useState","useCallback","props","currentQue","closeModal","slice","ModalComponent","useMemo","match","when","q","length","React","createElement","Fragment","otherwise","modalProps","childElement","Modal","_extends","className","onClose","_modalProps$onClose","call","Provider","value","useGlobalModalContext","useContext"],"mappings":";;;;;;AAiBA,MAAMA,kBAAkB,gBAAGC,aAAa,CAA8B;AACpEC,EAAAA,SAAS,EAAEC,IAAAA;AACb,CAAC,CAAC,CAAA;AAEWC,MAAAA,mBAAmB,GAAGC,IAAA,IAA4C;EAAA,IAA3C;AAAEC,IAAAA,QAAAA;AAAmC,GAAC,GAAAD,IAAA,CAAA;AACxE;EACA,MAAM,CAACE,gBAAgB,EAAEC,mBAAmB,CAAC,GAAGC,QAAQ,CAA8B,EAAE,CAAC,CAAA;AAEzF,EAAA,MAAMP,SAAS,GAAGQ,WAAW,CAAEC,KAA2B,IAAK;IAC7DH,mBAAmB,CAAEI,UAAU,IAAK,CAAC,GAAGA,UAAU,EAAED,KAAK,CAAC,CAAC,CAAA;GAC5D,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAME,UAAU,GAAGH,WAAW,CAAC,MAAM;IACnCF,mBAAmB,CAAEI,UAAU,IAAKA,UAAU,CAACE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;GACzD,EAAE,EAAE,CAAC,CAAA;AAEN,EAAA,MAAMC,cAAc,GAAGC,OAAO,CAAC,MAAM,MAAM;AACzC,IAAA,OAAOC,CAAK,CAACV,gBAAgB,CAAC,CAC3BW,IAAI,CAACC,CAAC,IAAIA,CAAC,CAACC,MAAM,KAAK,CAAC,EAAE,MAAM;AAC/B,MAAA,oBAAOC,cAAA,CAAAC,aAAA,CAAAD,cAAA,CAAAE,QAAA,EAAK,IAAA,CAAA,CAAA;AACd,KAAC,CAAC,CACDC,SAAS,CAAC,MAAM;MACf,MAAM;QAAEC,UAAU;AAAEC,QAAAA,YAAAA;AAAa,OAAC,GAAGnB,gBAAgB,CAAC,CAAC,CAAC,CAAA;MACxD,oBACEc,cAAA,CAAAC,aAAA,CAACK,KAAK,EAAAC,QAAA,KACAH,UAAU,EAAA;QACdI,SAAS,EAAG,yBAAwBJ,UAAU,KAAA,IAAA,IAAVA,UAAU,KAAVA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,UAAU,CAAEI,SAAU,CAAE,CAAA;QAC5DC,OAAO,EAAEA,MAAM;AAAA,UAAA,IAAAC,mBAAA,CAAA;AACbN,UAAAA,UAAU,aAAVA,UAAU,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,CAAAM,mBAAA,GAAVN,UAAU,CAAEK,OAAO,MAAAC,IAAAA,IAAAA,mBAAA,uBAAnBA,mBAAA,CAAAC,IAAA,CAAAP,UAAU,CAAa,CAAA;AACvBZ,UAAAA,UAAU,EAAE,CAAA;AACd,SAAA;AAAE,OAAA,CAAA,EAGAa,YAAY,CAAC;AACXb,QAAAA,UAAAA;AACF,OAAC,CAAC,CAEE,CAAA;AAEZ,KAAC,CAAC,CAAA;AACN,GAAC,EAAE,CAACN,gBAAgB,CAAC,CAAC,CAAA;AAEtB,EAAA,oBACEc,cAAA,CAAAC,aAAA,CAACtB,kBAAkB,CAACiC,QAAQ,EAAA;AAC1BC,IAAAA,KAAK,EAAE;AACLhC,MAAAA,SAAAA;AACF,KAAA;GAEAmB,eAAAA,cAAA,CAAAC,aAAA,CAACP,cAAc,EAAG,IAAA,CAAA,EACjBT,QAAQ,CACmB,CAAA;AAElC,EAAC;AACM,MAAM6B,qBAAqB,GAAGA,MAAmCC,UAAU,CAACpC,kBAAkB;;;;"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useRef, useEffect, useCallback } from 'react';
|
|
2
|
-
import { S as SCROLL_BUFFER } from './consts-
|
|
2
|
+
import { S as SCROLL_BUFFER } from './consts-9f4a812e.js';
|
|
3
3
|
|
|
4
4
|
function useDebounce(callback, delay) {
|
|
5
5
|
const timeoutRef = useRef(null);
|
|
@@ -73,4 +73,4 @@ function useHandleOnScrollCallback(_ref) {
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
export { useHandleOnScrollCallback as a, useDebounce as u };
|
|
76
|
-
//# sourceMappingURL=index-
|
|
76
|
+
//# sourceMappingURL=index-f48e9c68.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index-f48e9c68.js","sources":["../src/hooks/useDebounce.ts","../src/hooks/useHandleOnScrollCallback/index.ts"],"sourcesContent":["import { useEffect, useRef } from 'react';\n\nexport function useDebounce<T extends(...args: any[]) => void>(callback: T, delay: number): T {\n const timeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n // Cleanup the timeout on unmount\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n function debounceFunction(...args: Parameters<T>) {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n\n timeoutRef.current = setTimeout(() => {\n callback(...args);\n }, delay);\n }\n\n return debounceFunction as T;\n}\n","import React, { useCallback } from 'react';\nimport { SCROLL_BUFFER } from '../../utils/consts';\nimport { useDebounce } from '../useDebounce';\n\nconst DELAY = 500;\n\nexport interface UseHandleOnScrollCallbackProps {\n hasMore: boolean;\n hasNext?: boolean;\n onScroll(callback: () => void): void;\n scrollRef: React.RefObject<HTMLDivElement>;\n setShowScrollDownButton?: React.Dispatch<React.SetStateAction<boolean>>;\n setIsScrolled?: React.Dispatch<React.SetStateAction<boolean>>;\n}\n\nexport function calcScrollBottom(scrollHeight: number, scrollTop: number): number {\n return scrollHeight - scrollTop;\n}\n\nexport function useHandleOnScrollCallback({\n hasMore,\n hasNext,\n onScroll,\n scrollRef,\n setShowScrollDownButton,\n}: UseHandleOnScrollCallbackProps): () => void {\n const scrollCb = useCallback(() => {\n const element = scrollRef?.current;\n if (element == null) {\n return;\n }\n\n const {\n scrollTop,\n scrollHeight,\n clientHeight,\n } = element;\n // https://sendbird.atlassian.net/browse/SBISSUE-11759\n // the edge case where channel is inside a page that already has scroll\n // scrollintoView will move the whole page, which we dont want\n const scrollBottom = calcScrollBottom(scrollHeight, scrollTop);\n // even if there is more to fetch or not,\n // we still have to show the scroll to bottom button\n if (typeof setShowScrollDownButton === 'function') {\n setShowScrollDownButton(scrollHeight > scrollTop + clientHeight + 1);\n }\n if (hasMore && scrollTop < SCROLL_BUFFER) {\n onScroll(() => {\n // sets the scroll position to the bottom of the new messages\n element.scrollTop = element.scrollHeight - scrollBottom;\n });\n }\n if (hasNext) {\n onScroll(() => {\n // sets the scroll position to the top of the new messages\n element.scrollTop = scrollTop - (scrollHeight - element.scrollHeight);\n });\n }\n }, [\n setShowScrollDownButton,\n hasMore,\n onScroll,\n scrollRef,\n ]);\n\n return useDebounce(scrollCb, DELAY);\n}\n"],"names":["useDebounce","callback","delay","timeoutRef","useRef","useEffect","current","clearTimeout","debounceFunction","_len","arguments","length","args","Array","_key","setTimeout","DELAY","calcScrollBottom","scrollHeight","scrollTop","useHandleOnScrollCallback","_ref","hasMore","hasNext","onScroll","scrollRef","setShowScrollDownButton","scrollCb","useCallback","element","clientHeight","scrollBottom","SCROLL_BUFFER"],"mappings":"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"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { useCallback } from 'react';
|
|
2
2
|
import DOMPurify from 'dompurify';
|
|
3
|
-
import { M as MENTION_USER_LABEL_CLASSNAME } from './consts-
|
|
4
|
-
import { T as TEXT_MESSAGE_BODY_CLASSNAME } from './consts-
|
|
5
|
-
import { O as OG_MESSAGE_BODY_CLASSNAME } from './consts-
|
|
3
|
+
import { M as MENTION_USER_LABEL_CLASSNAME } from './consts-6e6f7e9f.js';
|
|
4
|
+
import { T as TEXT_MESSAGE_BODY_CLASSNAME } from './consts-d580c2c7.js';
|
|
5
|
+
import { O as OG_MESSAGE_BODY_CLASSNAME } from './consts-b5df6e74.js';
|
|
6
6
|
|
|
7
7
|
// cretes a sanitized string from a mention user label
|
|
8
8
|
function renderToString(_ref) {
|
|
@@ -38,6 +38,10 @@ const nodeListToArray = childNodes => {
|
|
|
38
38
|
return [];
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
|
+
function isChannelTypeSupportsMultipleFilesMessage(channel) {
|
|
42
|
+
var _channel$isGroupChann;
|
|
43
|
+
return channel && (channel === null || channel === void 0 ? void 0 : (_channel$isGroupChann = channel.isGroupChannel) === null || _channel$isGroupChann === void 0 ? void 0 : _channel$isGroupChann.call(channel)) && !channel.isBroadcast && !channel.isSuper;
|
|
44
|
+
}
|
|
41
45
|
|
|
42
46
|
function inserTemplateToDOM(templateList) {
|
|
43
47
|
const nodes = templateList.map(template => {
|
|
@@ -217,5 +221,5 @@ function usePaste(_ref) {
|
|
|
217
221
|
}, [ref, setIsInput, setHeight, channel, setMentionedUsers]);
|
|
218
222
|
}
|
|
219
223
|
|
|
220
|
-
export { nodeListToArray as n, renderToString as r, sanitizeString as s, usePaste as u };
|
|
221
|
-
//# sourceMappingURL=index-
|
|
224
|
+
export { isChannelTypeSupportsMultipleFilesMessage as i, nodeListToArray as n, renderToString as r, sanitizeString as s, usePaste as u };
|
|
225
|
+
//# sourceMappingURL=index-fde902d5.js.map
|