@sendbird/uikit-react 3.2.5 → 3.2.6-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/App.js +327 -101
- package/App.js.map +1 -1
- package/CHANGELOG.md +7 -0
- package/Channel/components/ChannelHeader.js +30 -18
- package/Channel/components/ChannelHeader.js.map +1 -1
- package/Channel/components/ChannelUI.js +31 -22
- package/Channel/components/ChannelUI.js.map +1 -1
- package/Channel/components/FileViewer.js +14 -14
- package/Channel/components/FrozenNotification.js +4 -4
- package/Channel/components/Message.js +76 -73
- package/Channel/components/Message.js.map +1 -1
- package/Channel/components/MessageInput.js +15 -15
- package/Channel/components/MessageList.js +23 -20
- package/Channel/components/MessageList.js.map +1 -1
- package/Channel/components/RemoveMessageModal.js +16 -15
- package/Channel/components/RemoveMessageModal.js.map +1 -1
- package/Channel/components/SuggestedMentionList.js +15 -15
- package/Channel/components/TypingIndicator.js +14 -14
- package/Channel/components/UnreadCount.js +4 -4
- package/Channel/context.js +13 -13
- package/Channel.js +25 -21
- package/Channel.js.map +1 -1
- package/ChannelList/components/AddChannel.js +14 -13
- package/ChannelList/components/AddChannel.js.map +1 -1
- package/ChannelList/components/ChannelListHeader.js +7 -7
- package/ChannelList/components/ChannelListUI.js +32 -26
- package/ChannelList/components/ChannelListUI.js.map +1 -1
- package/ChannelList/components/ChannelPreview.js +69 -28
- package/ChannelList/components/ChannelPreview.js.map +1 -1
- package/ChannelList/components/ChannelPreviewAction.js +14 -13
- package/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/ChannelList/context.js +8 -8
- package/ChannelList.js +28 -26
- package/ChannelList.js.map +1 -1
- package/{ChannelListProvider-cdb08b62.js → ChannelListProvider-cef1f985.js} +33 -11
- package/ChannelListProvider-cef1f985.js.map +1 -0
- package/{ChannelProvider-08b86d72.js → ChannelProvider-924d5a93.js} +15 -11
- package/ChannelProvider-924d5a93.js.map +1 -0
- package/ChannelSettings/components/ChannelProfile.js +12 -11
- package/ChannelSettings/components/ChannelProfile.js.map +1 -1
- package/ChannelSettings/components/ChannelSettingsUI.js +18 -17
- package/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/ChannelSettings/components/EditDetailsModal.js +13 -11
- package/ChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/ChannelSettings/components/LeaveChannel.js +74 -26
- package/ChannelSettings/components/LeaveChannel.js.map +1 -1
- package/ChannelSettings/components/ModerationPanel.js +19 -14
- package/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/ChannelSettings/components/UserListItem.js +11 -11
- package/ChannelSettings/components/UserPanel.js +14 -13
- package/ChannelSettings/components/UserPanel.js.map +1 -1
- package/ChannelSettings/context.js +9 -5
- package/ChannelSettings/context.js.map +1 -1
- package/ChannelSettings.js +19 -17
- package/ChannelSettings.js.map +1 -1
- package/CreateChannel/components/CreateChannelUI.js +14 -13
- package/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/CreateChannel/components/InviteUsers.js +32 -13
- package/CreateChannel/components/InviteUsers.js.map +1 -1
- package/CreateChannel/components/SelectChannelType.js +13 -11
- package/CreateChannel/components/SelectChannelType.js.map +1 -1
- package/CreateChannel/context.js +4 -4
- package/CreateChannel.js +14 -13
- package/CreateChannel.js.map +1 -1
- package/{CreateChannelProvider-b5fa7c16.js → CreateChannelProvider-2b5b2952.js} +1 -1
- package/{CreateChannelProvider-b5fa7c16.js.map → CreateChannelProvider-2b5b2952.js.map} +1 -1
- package/CreateOpenChannel/components/CreateOpenChannelUI.js +11 -9
- package/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
- package/CreateOpenChannel/context.js +1 -1
- package/CreateOpenChannel.js +10 -9
- package/CreateOpenChannel.js.map +1 -1
- package/EditUserProfile/components/EditUserProfileUI.js +13 -12
- package/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
- package/EditUserProfile.js +13 -12
- package/EditUserProfile.js.map +1 -1
- package/{LocalizationContext-9976b34e.js → LocalizationContext-2bd4bbe8.js} +3 -3
- package/{LocalizationContext-9976b34e.js.map → LocalizationContext-2bd4bbe8.js.map} +1 -1
- package/MediaQueryContext-7be72ab4.js +90 -0
- package/MediaQueryContext-7be72ab4.js.map +1 -0
- package/{MemberList-070e920a.js → MemberList-405c20b6.js} +12 -6
- package/MemberList-405c20b6.js.map +1 -0
- package/MessageSearch/components/MessageSearchUI.js +11 -11
- package/MessageSearch/context.js +2 -2
- package/MessageSearch.js +11 -11
- package/OpenChannel/components/FrozenChannelNotification.js +4 -4
- package/OpenChannel/components/OpenChannelHeader.js +25 -15
- package/OpenChannel/components/OpenChannelHeader.js.map +1 -1
- package/OpenChannel/components/OpenChannelInput.js +15 -15
- package/OpenChannel/components/OpenChannelMessage.js +22 -20
- package/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/OpenChannel/components/OpenChannelMessageList.js +24 -22
- package/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/OpenChannel/components/OpenChannelUI.js +24 -22
- package/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/OpenChannel/context.js +9 -9
- package/OpenChannel.js +27 -24
- package/OpenChannel.js.map +1 -1
- package/OpenChannelList/components/OpenChannelListUI.js +15 -13
- package/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
- package/OpenChannelList/components/OpenChannelPreview.js +4 -4
- package/OpenChannelList/context.js +4 -4
- package/OpenChannelList.js +13 -12
- package/OpenChannelList.js.map +1 -1
- package/{OpenChannelListProvider-ca1d96e3.js → OpenChannelListProvider-13648dc9.js} +3 -3
- package/{OpenChannelListProvider-ca1d96e3.js.map → OpenChannelListProvider-13648dc9.js.map} +1 -1
- package/{OpenChannelProvider-03efd3ff.js → OpenChannelProvider-7a6eea29.js} +11 -9
- package/OpenChannelProvider-7a6eea29.js.map +1 -0
- package/OpenChannelSettings/components/EditDetailsModal.js +14 -12
- package/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/OpenChannelSettings/components/OpenChannelProfile.js +13 -12
- package/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js +21 -18
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/OpenChannelSettings/components/OperatorUI.js +22 -16
- package/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/OpenChannelSettings/components/ParticipantUI.js +15 -14
- package/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
- package/OpenChannelSettings/context.js +3 -3
- package/OpenChannelSettings.js +18 -17
- package/OpenChannelSettings.js.map +1 -1
- package/SendbirdProvider.js +22 -10
- package/SendbirdProvider.js.map +1 -1
- package/{UserProfileContext-24bb1c79.js → UserProfileContext-0d8287d0.js} +8 -4
- package/UserProfileContext-0d8287d0.js.map +1 -0
- package/{_rollupPluginBabelHelpers-a72165e4.js → _rollupPluginBabelHelpers-fa4874e9.js} +19 -2
- package/_rollupPluginBabelHelpers-fa4874e9.js.map +1 -0
- package/{actionTypes-b30fed5f.js → actionTypes-36657780.js} +1 -1
- package/{actionTypes-b30fed5f.js.map → actionTypes-36657780.js.map} +1 -1
- package/cjs/App.js +326 -100
- package/cjs/App.js.map +1 -1
- package/cjs/Channel/components/ChannelHeader.js +29 -17
- package/cjs/Channel/components/ChannelHeader.js.map +1 -1
- package/cjs/Channel/components/ChannelUI.js +31 -22
- package/cjs/Channel/components/ChannelUI.js.map +1 -1
- package/cjs/Channel/components/FileViewer.js +14 -14
- package/cjs/Channel/components/FrozenNotification.js +4 -4
- package/cjs/Channel/components/Message.js +76 -73
- package/cjs/Channel/components/Message.js.map +1 -1
- package/cjs/Channel/components/MessageInput.js +15 -15
- package/cjs/Channel/components/MessageList.js +23 -20
- package/cjs/Channel/components/MessageList.js.map +1 -1
- package/cjs/Channel/components/RemoveMessageModal.js +16 -15
- package/cjs/Channel/components/RemoveMessageModal.js.map +1 -1
- package/cjs/Channel/components/SuggestedMentionList.js +15 -15
- package/cjs/Channel/components/TypingIndicator.js +14 -14
- package/cjs/Channel/components/UnreadCount.js +4 -4
- package/cjs/Channel/context.js +13 -13
- package/cjs/Channel.js +25 -21
- package/cjs/Channel.js.map +1 -1
- package/cjs/ChannelList/components/AddChannel.js +14 -13
- package/cjs/ChannelList/components/AddChannel.js.map +1 -1
- package/cjs/ChannelList/components/ChannelListHeader.js +7 -7
- package/cjs/ChannelList/components/ChannelListUI.js +32 -26
- package/cjs/ChannelList/components/ChannelListUI.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreview.js +68 -27
- package/cjs/ChannelList/components/ChannelPreview.js.map +1 -1
- package/cjs/ChannelList/components/ChannelPreviewAction.js +14 -13
- package/cjs/ChannelList/components/ChannelPreviewAction.js.map +1 -1
- package/cjs/ChannelList/context.js +8 -8
- package/cjs/ChannelList.js +28 -26
- package/cjs/ChannelList.js.map +1 -1
- package/cjs/{ChannelListProvider-5543db95.js → ChannelListProvider-7ee975c5.js} +33 -11
- package/cjs/ChannelListProvider-7ee975c5.js.map +1 -0
- package/cjs/{ChannelProvider-c9b390b7.js → ChannelProvider-b28cd92d.js} +15 -11
- package/cjs/ChannelProvider-b28cd92d.js.map +1 -0
- package/cjs/ChannelSettings/components/ChannelProfile.js +12 -11
- package/cjs/ChannelSettings/components/ChannelProfile.js.map +1 -1
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js +18 -17
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js.map +1 -1
- package/cjs/ChannelSettings/components/EditDetailsModal.js +13 -11
- package/cjs/ChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/cjs/ChannelSettings/components/LeaveChannel.js +74 -26
- package/cjs/ChannelSettings/components/LeaveChannel.js.map +1 -1
- package/cjs/ChannelSettings/components/ModerationPanel.js +19 -14
- package/cjs/ChannelSettings/components/ModerationPanel.js.map +1 -1
- package/cjs/ChannelSettings/components/UserListItem.js +11 -11
- package/cjs/ChannelSettings/components/UserPanel.js +14 -13
- package/cjs/ChannelSettings/components/UserPanel.js.map +1 -1
- package/cjs/ChannelSettings/context.js +9 -5
- package/cjs/ChannelSettings/context.js.map +1 -1
- package/cjs/ChannelSettings.js +19 -17
- package/cjs/ChannelSettings.js.map +1 -1
- package/cjs/CreateChannel/components/CreateChannelUI.js +14 -13
- package/cjs/CreateChannel/components/CreateChannelUI.js.map +1 -1
- package/cjs/CreateChannel/components/InviteUsers.js +32 -13
- package/cjs/CreateChannel/components/InviteUsers.js.map +1 -1
- package/cjs/CreateChannel/components/SelectChannelType.js +13 -11
- package/cjs/CreateChannel/components/SelectChannelType.js.map +1 -1
- package/cjs/CreateChannel/context.js +4 -4
- package/cjs/CreateChannel.js +14 -13
- package/cjs/CreateChannel.js.map +1 -1
- package/cjs/{CreateChannelProvider-0a28a871.js → CreateChannelProvider-e368f771.js} +1 -1
- package/cjs/{CreateChannelProvider-0a28a871.js.map → CreateChannelProvider-e368f771.js.map} +1 -1
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js +11 -9
- package/cjs/CreateOpenChannel/components/CreateOpenChannelUI.js.map +1 -1
- package/cjs/CreateOpenChannel/context.js +1 -1
- package/cjs/CreateOpenChannel.js +10 -9
- package/cjs/CreateOpenChannel.js.map +1 -1
- package/cjs/EditUserProfile/components/EditUserProfileUI.js +13 -12
- package/cjs/EditUserProfile/components/EditUserProfileUI.js.map +1 -1
- package/cjs/EditUserProfile.js +13 -12
- package/cjs/EditUserProfile.js.map +1 -1
- package/cjs/{LocalizationContext-0349dfbd.js → LocalizationContext-2a1cb44b.js} +3 -3
- package/cjs/{LocalizationContext-0349dfbd.js.map → LocalizationContext-2a1cb44b.js.map} +1 -1
- package/cjs/MediaQueryContext-623586af.js +97 -0
- package/cjs/MediaQueryContext-623586af.js.map +1 -0
- package/cjs/{MemberList-a95f8e7f.js → MemberList-ab7f22b9.js} +12 -6
- package/cjs/MemberList-ab7f22b9.js.map +1 -0
- package/cjs/MessageSearch/components/MessageSearchUI.js +11 -11
- package/cjs/MessageSearch/context.js +2 -2
- package/cjs/MessageSearch.js +11 -11
- package/cjs/OpenChannel/components/FrozenChannelNotification.js +4 -4
- package/cjs/OpenChannel/components/OpenChannelHeader.js +24 -14
- package/cjs/OpenChannel/components/OpenChannelHeader.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelInput.js +15 -15
- package/cjs/OpenChannel/components/OpenChannelMessage.js +22 -20
- package/cjs/OpenChannel/components/OpenChannelMessage.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelMessageList.js +24 -22
- package/cjs/OpenChannel/components/OpenChannelMessageList.js.map +1 -1
- package/cjs/OpenChannel/components/OpenChannelUI.js +24 -22
- package/cjs/OpenChannel/components/OpenChannelUI.js.map +1 -1
- package/cjs/OpenChannel/context.js +9 -9
- package/cjs/OpenChannel.js +27 -24
- package/cjs/OpenChannel.js.map +1 -1
- package/cjs/OpenChannelList/components/OpenChannelListUI.js +15 -13
- package/cjs/OpenChannelList/components/OpenChannelListUI.js.map +1 -1
- package/cjs/OpenChannelList/components/OpenChannelPreview.js +4 -4
- package/cjs/OpenChannelList/context.js +4 -4
- package/cjs/OpenChannelList.js +13 -12
- package/cjs/OpenChannelList.js.map +1 -1
- package/cjs/{OpenChannelListProvider-df27c36c.js → OpenChannelListProvider-ee1df405.js} +3 -3
- package/cjs/{OpenChannelListProvider-df27c36c.js.map → OpenChannelListProvider-ee1df405.js.map} +1 -1
- package/cjs/{OpenChannelProvider-4895f5f6.js → OpenChannelProvider-8b0e26a5.js} +11 -9
- package/cjs/OpenChannelProvider-8b0e26a5.js.map +1 -0
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js +14 -12
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +13 -12
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +21 -18
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/OperatorUI.js +22 -16
- package/cjs/OpenChannelSettings/components/OperatorUI.js.map +1 -1
- package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -14
- package/cjs/OpenChannelSettings/components/ParticipantUI.js.map +1 -1
- package/cjs/OpenChannelSettings/context.js +3 -3
- package/cjs/OpenChannelSettings.js +18 -17
- package/cjs/OpenChannelSettings.js.map +1 -1
- package/cjs/SendbirdProvider.js +22 -10
- package/cjs/SendbirdProvider.js.map +1 -1
- package/cjs/{UserProfileContext-d1596965.js → UserProfileContext-157c5174.js} +8 -4
- package/cjs/UserProfileContext-157c5174.js.map +1 -0
- package/cjs/{_rollupPluginBabelHelpers-93d42928.js → _rollupPluginBabelHelpers-c8ddc77e.js} +19 -1
- package/cjs/_rollupPluginBabelHelpers-c8ddc77e.js.map +1 -0
- package/cjs/{actionTypes-6a04e98a.js → actionTypes-8d79679a.js} +1 -1
- package/cjs/{actionTypes-6a04e98a.js.map → actionTypes-8d79679a.js.map} +1 -1
- package/cjs/{color-8da1967d.js → color-fcbb3426.js} +1 -1
- package/cjs/{color-8da1967d.js.map → color-fcbb3426.js.map} +1 -1
- package/cjs/{compareIds-20b6caa8.js → compareIds-eb7c82dc.js} +1 -1
- package/cjs/{compareIds-20b6caa8.js.map → compareIds-eb7c82dc.js.map} +1 -1
- package/cjs/{const-ed017cc9.js → const-3ceaca5c.js} +1 -1
- package/cjs/{const-ed017cc9.js.map → const-3ceaca5c.js.map} +1 -1
- package/cjs/{const-0ce11db5.js → const-8b0c6ef1.js} +1 -1
- package/cjs/{const-0ce11db5.js.map → const-8b0c6ef1.js.map} +1 -1
- package/cjs/{context-bd7de995.js → context-ca0ce6fa.js} +2 -2
- package/cjs/{context-bd7de995.js.map → context-ca0ce6fa.js.map} +1 -1
- package/cjs/dist/index.css +565 -238
- package/cjs/dist/index.css.map +1 -1
- package/cjs/{index-e741ec2c.js → index-02154394.js} +4 -4
- package/cjs/{index-e741ec2c.js.map → index-02154394.js.map} +1 -1
- package/cjs/{index-a52296d6.js → index-06c0cb5d.js} +9 -8
- package/cjs/index-06c0cb5d.js.map +1 -0
- package/cjs/{index-7ab4005e.js → index-223b8a15.js} +6 -5
- package/cjs/index-223b8a15.js.map +1 -0
- package/cjs/{index-c7bba14f.js → index-5513787c.js} +2 -2
- package/cjs/{index-c7bba14f.js.map → index-5513787c.js.map} +1 -1
- package/cjs/{index-491f2403.js → index-5ce5b5ef.js} +1 -1
- package/cjs/{index-491f2403.js.map → index-5ce5b5ef.js.map} +1 -1
- package/cjs/{index-e59510d3.js → index-6c759d44.js} +2 -2
- package/cjs/{index-e59510d3.js.map → index-6c759d44.js.map} +1 -1
- package/cjs/index-6f03baa8.js +194 -0
- package/cjs/index-6f03baa8.js.map +1 -0
- package/cjs/{index-09d50472.js → index-7f18a16f.js} +2 -2
- package/cjs/{index-09d50472.js.map → index-7f18a16f.js.map} +1 -1
- package/cjs/{index-1ce4efa3.js → index-8d7bc2cf.js} +4 -4
- package/cjs/{index-1ce4efa3.js.map → index-8d7bc2cf.js.map} +1 -1
- package/cjs/{index-200b85a3.js → index-f1ad3c0d.js} +1 -1
- package/cjs/{index-200b85a3.js.map → index-f1ad3c0d.js.map} +1 -1
- package/cjs/{index-558d367a.js → index-f42aafcc.js} +5 -5
- package/cjs/index-f42aafcc.js.map +1 -0
- package/cjs/index.js +35 -32
- package/cjs/index.js.map +1 -1
- package/cjs/sendbirdSelectors.js +2 -2
- package/cjs/{stringSet-9eadd9a2.js → stringSet-b531455a.js} +4 -1
- package/cjs/stringSet-b531455a.js.map +1 -0
- package/cjs/{topics-c4ffdf98.js → topics-14e5ee9f.js} +1 -1
- package/cjs/{topics-c4ffdf98.js.map → topics-14e5ee9f.js.map} +1 -1
- package/cjs/{tslib.es6-712ab026.js → tslib.es6-ce6b9cf9.js} +1 -1
- package/cjs/{tslib.es6-712ab026.js.map → tslib.es6-ce6b9cf9.js.map} +1 -1
- package/cjs/ui/Accordion.js +3 -3
- package/cjs/ui/AccordionGroup.js +2 -2
- package/cjs/ui/AdminMessage.js +3 -3
- package/cjs/ui/Avatar.js +2 -2
- package/cjs/ui/Badge.js +5 -5
- package/cjs/ui/BottomSheet.js +43 -0
- package/cjs/ui/BottomSheet.js.map +1 -0
- package/cjs/ui/Button.js +3 -3
- package/cjs/ui/ChannelAvatar.js +3 -3
- package/cjs/ui/ConnectionStatus.js +4 -4
- package/cjs/ui/ContextMenu.js +14 -10
- package/cjs/ui/ContextMenu.js.map +1 -1
- package/cjs/ui/DateSeparator.js +4 -4
- package/cjs/ui/EmojiReactions.js +7 -7
- package/cjs/ui/FileMessageItemBody.js +8 -6
- package/cjs/ui/FileMessageItemBody.js.map +1 -1
- package/cjs/ui/FileViewer.js +8 -8
- package/cjs/ui/IconButton.js +1 -1
- package/cjs/ui/ImageRenderer.js +1 -1
- package/cjs/ui/Input.js +2 -2
- package/cjs/ui/Label.js +2 -2
- package/cjs/ui/LinkLabel.js +9 -3
- package/cjs/ui/LinkLabel.js.map +1 -1
- package/cjs/ui/Loader.js +1 -1
- package/cjs/ui/MentionLabel.js +11 -10
- package/cjs/ui/MentionLabel.js.map +1 -1
- package/cjs/ui/MessageContent.js +450 -40
- package/cjs/ui/MessageContent.js.map +1 -1
- package/cjs/ui/MessageInput.js +9 -9
- package/cjs/ui/MessageItemMenu.js +7 -7
- package/cjs/ui/MessageItemReactionMenu.js +5 -5
- package/cjs/ui/MessageSearchFileItem.js +9 -9
- package/cjs/ui/MessageSearchItem.js +9 -9
- package/cjs/ui/MessageStatus.js +7 -7
- package/cjs/ui/Modal.js +33 -18
- package/cjs/ui/Modal.js.map +1 -1
- package/cjs/ui/OGMessageItemBody.js +11 -10
- package/cjs/ui/OGMessageItemBody.js.map +1 -1
- package/cjs/ui/OpenChannelAdminMessage.js +3 -3
- package/cjs/ui/OpenChannelAvatar.js +6 -6
- package/cjs/ui/OpenchannelConversationHeader.js +6 -6
- package/cjs/ui/OpenchannelFileMessage.js +56 -26
- package/cjs/ui/OpenchannelFileMessage.js.map +1 -1
- package/cjs/ui/OpenchannelOGMessage.js +75 -37
- package/cjs/ui/OpenchannelOGMessage.js.map +1 -1
- package/cjs/ui/OpenchannelThumbnailMessage.js +58 -26
- package/cjs/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/cjs/ui/OpenchannelUserMessage.js +74 -51
- package/cjs/ui/OpenchannelUserMessage.js.map +1 -1
- package/cjs/ui/PlaceHolder.js +6 -6
- package/cjs/ui/QuoteMessage.js +9 -6
- package/cjs/ui/QuoteMessage.js.map +1 -1
- package/cjs/ui/QuoteMessageInput.js +6 -6
- package/cjs/ui/ReactionBadge.js +4 -3
- package/cjs/ui/ReactionBadge.js.map +1 -1
- package/cjs/ui/ReactionButton.js +7 -1
- package/cjs/ui/ReactionButton.js.map +1 -1
- package/cjs/ui/SortByRow.js +2 -2
- package/cjs/ui/TextButton.js +2 -2
- package/cjs/ui/TextMessageItemBody.js +11 -10
- package/cjs/ui/TextMessageItemBody.js.map +1 -1
- package/cjs/ui/ThumbnailMessageItemBody.js +2 -2
- package/cjs/ui/ThumbnailMessageItemBody.js.map +1 -1
- package/cjs/ui/Tooltip.js +3 -3
- package/cjs/ui/TooltipWrapper.js +1 -1
- package/cjs/ui/UnknownMessageItemBody.js +6 -6
- package/cjs/ui/UserListItem.js +11 -11
- package/cjs/ui/UserProfile.js +18 -11
- package/cjs/ui/UserProfile.js.map +1 -1
- package/cjs/ui/Word.js +11 -10
- package/cjs/ui/Word.js.map +1 -1
- package/cjs/useLongPress-ca8f8cd9.js +118 -0
- package/cjs/useLongPress-ca8f8cd9.js.map +1 -0
- package/cjs/useSendbirdStateContext.js +1 -1
- package/cjs/{utils-03670a4b.js → utils-54962329.js} +1 -1
- package/cjs/{utils-03670a4b.js.map → utils-54962329.js.map} +1 -1
- package/cjs/{utils-db03a3ee.js → utils-b076caa2.js} +1 -1
- package/cjs/{utils-db03a3ee.js.map → utils-b076caa2.js.map} +1 -1
- package/cjs/{utils-90917fdb.js → utils-d8b4def1.js} +1 -1
- package/cjs/{utils-90917fdb.js.map → utils-d8b4def1.js.map} +1 -1
- package/cjs/{uuid-4fb21145.js → uuid-e0efb18c.js} +1 -1
- package/cjs/{uuid-4fb21145.js.map → uuid-e0efb18c.js.map} +1 -1
- package/cjs/withSendbird.js +1 -1
- package/{color-511dde29.js → color-468f177a.js} +1 -1
- package/{color-511dde29.js.map → color-468f177a.js.map} +1 -1
- package/{compareIds-8626728b.js → compareIds-7e80cfd0.js} +1 -1
- package/{compareIds-8626728b.js.map → compareIds-7e80cfd0.js.map} +1 -1
- package/{const-411c29c2.js → const-5feae56e.js} +1 -1
- package/{const-411c29c2.js.map → const-5feae56e.js.map} +1 -1
- package/{const-4836ca2f.js → const-7a18ac0a.js} +1 -1
- package/{const-4836ca2f.js.map → const-7a18ac0a.js.map} +1 -1
- package/{context-b3b0d94d.js → context-0e023b05.js} +2 -2
- package/{context-b3b0d94d.js.map → context-0e023b05.js.map} +1 -1
- package/dist/index.css +565 -238
- package/dist/index.css.map +1 -1
- package/{index-9113fa9d.js → index-1c02ac0d.js} +2 -2
- package/{index-9113fa9d.js.map → index-1c02ac0d.js.map} +1 -1
- package/{index-5cc28c33.js → index-36f812a7.js} +4 -4
- package/{index-5cc28c33.js.map → index-36f812a7.js.map} +1 -1
- package/{index-5e61b8f6.js → index-670435a8.js} +1 -1
- package/{index-5e61b8f6.js.map → index-670435a8.js.map} +1 -1
- package/{index-89cd6e36.js → index-867e0d39.js} +6 -6
- package/index-867e0d39.js.map +1 -0
- package/{index-c16ac1c8.js → index-8b890de6.js} +9 -8
- package/index-8b890de6.js.map +1 -0
- package/{index-dbe2f386.js → index-b4ee3569.js} +1 -1
- package/{index-dbe2f386.js.map → index-b4ee3569.js.map} +1 -1
- package/{index-07ae6a1b.js → index-b8a1932a.js} +2 -2
- package/{index-07ae6a1b.js.map → index-b8a1932a.js.map} +1 -1
- package/index-c4739f89.js +179 -0
- package/index-c4739f89.js.map +1 -0
- package/{index-200a8796.js → index-c4eefc9d.js} +2 -2
- package/{index-200a8796.js.map → index-c4eefc9d.js.map} +1 -1
- package/{index-4be14273.js → index-dcae1e38.js} +6 -5
- package/index-dcae1e38.js.map +1 -0
- package/{index-c3c4236f.js → index-ec923bf5.js} +4 -4
- package/{index-c3c4236f.js.map → index-ec923bf5.js.map} +1 -1
- package/index.d.ts +15 -4
- package/index.js +35 -32
- package/index.js.map +1 -1
- package/package.json +1 -1
- package/sendbirdSelectors.js +2 -2
- package/{stringSet-8662ec77.js → stringSet-65cf83b4.js} +4 -1
- package/stringSet-65cf83b4.js.map +1 -0
- package/{topics-0752cb33.js → topics-2ff5f12a.js} +1 -1
- package/{topics-0752cb33.js.map → topics-2ff5f12a.js.map} +1 -1
- package/{tslib.es6-d20349ad.js → tslib.es6-7fef98cd.js} +1 -1
- package/{tslib.es6-d20349ad.js.map → tslib.es6-7fef98cd.js.map} +1 -1
- package/ui/Accordion.js +3 -3
- package/ui/AccordionGroup.js +2 -2
- package/ui/AdminMessage.js +3 -3
- package/ui/Avatar.js +2 -2
- package/ui/Badge.js +5 -5
- package/ui/BottomSheet.js +37 -0
- package/ui/BottomSheet.js.map +1 -0
- package/ui/Button.js +3 -3
- package/ui/ChannelAvatar.js +3 -3
- package/ui/ConnectionStatus.js +4 -4
- package/ui/ContextMenu.js +14 -10
- package/ui/ContextMenu.js.map +1 -1
- package/ui/DateSeparator.js +4 -4
- package/ui/EmojiReactions.js +7 -7
- package/ui/FileMessageItemBody.js +8 -6
- package/ui/FileMessageItemBody.js.map +1 -1
- package/ui/FileViewer.js +8 -8
- package/ui/IconButton.js +1 -1
- package/ui/ImageRenderer.js +1 -1
- package/ui/Input.js +2 -2
- package/ui/Label.js +2 -2
- package/ui/LinkLabel.js +9 -3
- package/ui/LinkLabel.js.map +1 -1
- package/ui/Loader.js +1 -1
- package/ui/MentionLabel.js +11 -10
- package/ui/MentionLabel.js.map +1 -1
- package/ui/MessageContent.js +452 -42
- package/ui/MessageContent.js.map +1 -1
- package/ui/MessageInput.js +9 -9
- package/ui/MessageItemMenu.js +7 -7
- package/ui/MessageItemReactionMenu.js +5 -5
- package/ui/MessageSearchFileItem.js +9 -9
- package/ui/MessageSearchItem.js +9 -9
- package/ui/MessageStatus.js +7 -7
- package/ui/Modal.js +33 -18
- package/ui/Modal.js.map +1 -1
- package/ui/OGMessageItemBody.js +11 -10
- package/ui/OGMessageItemBody.js.map +1 -1
- package/ui/OpenChannelAdminMessage.js +3 -3
- package/ui/OpenChannelAvatar.js +6 -6
- package/ui/OpenchannelConversationHeader.js +6 -6
- package/ui/OpenchannelFileMessage.js +50 -20
- package/ui/OpenchannelFileMessage.js.map +1 -1
- package/ui/OpenchannelOGMessage.js +66 -28
- package/ui/OpenchannelOGMessage.js.map +1 -1
- package/ui/OpenchannelThumbnailMessage.js +50 -18
- package/ui/OpenchannelThumbnailMessage.js.map +1 -1
- package/ui/OpenchannelUserMessage.js +67 -44
- package/ui/OpenchannelUserMessage.js.map +1 -1
- package/ui/PlaceHolder.js +6 -6
- package/ui/QuoteMessage.js +9 -6
- package/ui/QuoteMessage.js.map +1 -1
- package/ui/QuoteMessageInput.js +6 -6
- package/ui/ReactionBadge.js +4 -3
- package/ui/ReactionBadge.js.map +1 -1
- package/ui/ReactionButton.js +7 -1
- package/ui/ReactionButton.js.map +1 -1
- package/ui/SortByRow.js +2 -2
- package/ui/TextButton.js +2 -2
- package/ui/TextMessageItemBody.js +11 -10
- package/ui/TextMessageItemBody.js.map +1 -1
- package/ui/ThumbnailMessageItemBody.js +2 -2
- package/ui/ThumbnailMessageItemBody.js.map +1 -1
- package/ui/Tooltip.js +3 -3
- package/ui/TooltipWrapper.js +1 -1
- package/ui/UnknownMessageItemBody.js +6 -6
- package/ui/UserListItem.js +11 -11
- package/ui/UserProfile.js +18 -11
- package/ui/UserProfile.js.map +1 -1
- package/ui/Word.js +11 -10
- package/ui/Word.js.map +1 -1
- package/useLongPress-2c79297b.js +116 -0
- package/useLongPress-2c79297b.js.map +1 -0
- package/useSendbirdStateContext.js +1 -1
- package/{utils-aba28b29.js → utils-a3afc9f0.js} +1 -1
- package/{utils-aba28b29.js.map → utils-a3afc9f0.js.map} +1 -1
- package/{utils-beb5bcc4.js → utils-ac92824a.js} +1 -1
- package/{utils-beb5bcc4.js.map → utils-ac92824a.js.map} +1 -1
- package/{utils-5569d95d.js → utils-db039320.js} +1 -1
- package/{utils-5569d95d.js.map → utils-db039320.js.map} +1 -1
- package/{uuid-e5bc1634.js → uuid-68db8245.js} +1 -1
- package/{uuid-e5bc1634.js.map → uuid-68db8245.js.map} +1 -1
- package/withSendbird.js +1 -1
- package/ChannelListProvider-cdb08b62.js.map +0 -1
- package/ChannelProvider-08b86d72.js.map +0 -1
- package/MemberList-070e920a.js.map +0 -1
- package/OpenChannelProvider-03efd3ff.js.map +0 -1
- package/UserProfileContext-24bb1c79.js.map +0 -1
- package/_rollupPluginBabelHelpers-a72165e4.js.map +0 -1
- package/cjs/ChannelListProvider-5543db95.js.map +0 -1
- package/cjs/ChannelProvider-c9b390b7.js.map +0 -1
- package/cjs/MemberList-a95f8e7f.js.map +0 -1
- package/cjs/OpenChannelProvider-4895f5f6.js.map +0 -1
- package/cjs/UserProfileContext-d1596965.js.map +0 -1
- package/cjs/_rollupPluginBabelHelpers-93d42928.js.map +0 -1
- package/cjs/index-558d367a.js.map +0 -1
- package/cjs/index-7ab4005e.js.map +0 -1
- package/cjs/index-a52296d6.js.map +0 -1
- package/cjs/openChannelUtils-5a371d5c.js +0 -96
- package/cjs/openChannelUtils-5a371d5c.js.map +0 -1
- package/cjs/stringSet-9eadd9a2.js.map +0 -1
- package/index-4be14273.js.map +0 -1
- package/index-89cd6e36.js.map +0 -1
- package/index-c16ac1c8.js.map +0 -1
- package/openChannelUtils-fecc8bc0.js +0 -86
- package/openChannelUtils-fecc8bc0.js.map +0 -1
- package/stringSet-8662ec77.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"OpenChannelProvider-4895f5f6.js","sources":["../../src/smart-components/OpenChannel/context/utils.ts","../../src/smart-components/OpenChannel/context/dux/actionTypes.ts","../../src/smart-components/OpenChannel/context/dux/reducers.ts","../../src/smart-components/OpenChannel/context/dux/initialState.ts","../../src/smart-components/OpenChannel/context/hooks/useSetChannel.ts","../../src/smart-components/OpenChannel/context/hooks/useHandleChannelEvents.ts","../../src/smart-components/OpenChannel/context/hooks/useInitialMessagesFetch.ts","../../src/smart-components/OpenChannel/context/hooks/useScrollCallback.ts","../../src/smart-components/OpenChannel/context/hooks/useCheckScrollBottom.ts","../../src/smart-components/OpenChannel/context/hooks/useSendMessageCallback.ts","../../src/smart-components/OpenChannel/context/hooks/useFileUploadCallback.ts","../../src/smart-components/OpenChannel/context/hooks/useUpdateMessageCallback.ts","../../src/smart-components/OpenChannel/context/hooks/useDeleteMessageCallback.ts","../../src/smart-components/OpenChannel/context/hooks/useResendMessageCallback.ts","../../src/smart-components/OpenChannel/context/hooks/useTrimMessageList.ts","../../src/smart-components/OpenChannel/context/OpenChannelProvider.tsx"],"sourcesContent":["import type { User } from '@sendbird/chat';\nimport type { AdminMessage, FileMessage, UserMessage } from '@sendbird/chat/message';\nimport type { OpenChannel, ParticipantListQuery } from '@sendbird/chat/openChannel';\nimport format from 'date-fns/format';\n\nimport { Logger } from '../../../lib/SendbirdState';\n\nexport const getMessageCreatedAt = (message: UserMessage | FileMessage): string => format(message.createdAt, 'p');\n\nexport const shouldFetchMore = (messageLength: number, maxMessages: number): boolean => {\n if (typeof maxMessages !== 'number') {\n return true;\n }\n\n if (typeof maxMessages === 'number'\n && maxMessages > messageLength\n ) {\n return true;\n }\n return false;\n}\n\nexport const scrollIntoLast = (intialTry = 0): void => {\n const MAX_TRIES = 10;\n const currentTry = intialTry;\n if (currentTry > MAX_TRIES) {\n return;\n }\n try {\n const scrollDOM = document.querySelector('.sendbird-openchannel-conversation-scroll__container__item-container');\n // eslint-disable-next-line no-multi-assign\n scrollDOM.scrollTop = scrollDOM.scrollHeight;\n } catch (error) {\n setTimeout(() => {\n scrollIntoLast(currentTry + 1);\n }, 500 * currentTry);\n }\n};\n\nexport const isSameGroup = (\n message: AdminMessage | UserMessage | FileMessage,\n comparingMessage: AdminMessage | UserMessage | FileMessage,\n): boolean => {\n if (!(\n message\n && comparingMessage\n && message?.messageType\n && message.messageType !== 'admin'\n && comparingMessage?.messageType\n && comparingMessage.messageType !== 'admin'\n && (message as UserMessage | FileMessage)?.sender\n && (comparingMessage as UserMessage | FileMessage)?.sender\n && message?.createdAt\n && comparingMessage?.createdAt\n && (message as UserMessage | FileMessage)?.sender?.userId\n && (comparingMessage as UserMessage | FileMessage)?.sender?.userId\n )) {\n return false\n }\n // to fix typecasting\n const message_ = message as UserMessage;\n const comparingMessage_ = comparingMessage as UserMessage;\n return (\n message_?.sendingStatus === comparingMessage_?.sendingStatus\n && message_?.sender?.userId === comparingMessage_?.sender?.userId\n && (\n getMessageCreatedAt(message as UserMessage | FileMessage) === getMessageCreatedAt(comparingMessage as UserMessage | FileMessage)\n )\n );\n};\n\nexport const compareMessagesForGrouping = (\n prevMessage: AdminMessage | UserMessage | FileMessage,\n currMessage: AdminMessage | UserMessage | FileMessage,\n nextMessage: AdminMessage | UserMessage | FileMessage,\n): [boolean, boolean] => (\n [\n isSameGroup(prevMessage, currMessage),\n isSameGroup(currMessage, nextMessage),\n ]\n);\n\nexport const kFormatter = (num: number): string => {\n if (Math.abs(num) > 999999) {\n return `${(Math.abs(num) / 1000000).toFixed(1)}M`;\n }\n\n if (Math.abs(num) > 999) {\n return `${(Math.abs(num) / 1000).toFixed(1)}K`;\n }\n\n return `${num}`;\n};\n\nexport const isOperator = (openChannel: OpenChannel, userId: string): boolean => {\n const operators = openChannel?.operators;\n if (operators.map(operator => operator.userId).indexOf(userId) < 0) {\n return false;\n }\n return true;\n};\n\nexport const isDisabledBecauseFrozen = (openChannel: OpenChannel, userId: string): boolean => {\n const isFrozen = openChannel?.isFrozen;\n return isFrozen && !isOperator(openChannel, userId);\n};\n\nexport const isDisabledBecauseMuted = (mutedParticipantIds: Array<string>, userId: string): boolean => {\n return mutedParticipantIds.indexOf(userId) > -1;\n};\n\nexport const fetchWithListQuery = (\n listQuery: ParticipantListQuery,\n logger: Logger,\n eachQueryNextCallback: (users: Array<User>) => void,\n): void => {\n const fetchList = (query: ParticipantListQuery) => {\n const { hasNext } = query;\n if (hasNext) {\n query.next().then((users) => {\n eachQueryNextCallback(users);\n fetchList(query);\n }).catch((error) => {\n logger.warning('OpenChannel | FetchUserList failed', error);\n });\n } else {\n logger.info('OpenChannel | FetchUserList finished');\n }\n };\n logger.info('OpenChannel | FetchUserList start', listQuery);\n fetchList(listQuery);\n};\n\nexport const pxToNumber = (px: string | number): number | void => {\n if (typeof px === 'number') {\n return px;\n }\n if (typeof px === 'string') {\n const parsed = Number.parseFloat(px);\n if (!Number.isNaN(parsed)) {\n return parsed;\n }\n }\n return null;\n};\n","export const SET_CURRENT_CHANNEL = 'SET_CURRENT_CHANNEL';\nexport const SET_CHANNEL_INVALID = 'SET_CHANNEL_INVALID';\nexport const RESET_MESSAGES = 'RESET_MESSAGES';\nexport const EXIT_CURRENT_CHANNEL = 'EXIT_CURRENT_CHANNEL';\nexport const GET_PREV_MESSAGES_START = 'GET_PREV_MESSAGES_START';\nexport const GET_PREV_MESSAGES_SUCESS = 'GET_PREV_MESSAGES_SUCESS';\nexport const GET_PREV_MESSAGES_FAIL = 'GET_PREV_MESSAGES_FAIL';\nexport const SENDING_MESSAGE_FAILED = 'SENDING_MESSAGE_FAILED';\nexport const SENDING_MESSAGE_SUCCEEDED = 'SENDING_MESSAGE_SUCCEEDED';\nexport const SENDING_MESSAGE_START = 'SENDING_MESSAGE_START';\nexport const RESENDING_MESSAGE_START = 'RESENDING_MESSAGE_START';\nexport const FETCH_PARTICIPANT_LIST = 'FETCH_PARTICIPANT_LIST';\nexport const FETCH_BANNED_USER_LIST = 'FETCH_BANNED_USER_LIST';\nexport const FETCH_MUTED_USER_LIST= 'FETCH_MUTED_USER_LIST';\nexport const TRIM_MESSAGE_LIST= 'TRIM_MESSAGE_LIST';\n\n// event handlers\nexport const ON_MESSAGE_RECEIVED = 'ON_MESSAGE_RECEIVED';\nexport const ON_MESSAGE_UPDATED = 'ON_MESSAGE_UPDATED';\nexport const ON_MESSAGE_DELETED = 'ON_MESSAGE_DELETED';\nexport const ON_MESSAGE_DELETED_BY_REQ_ID = 'ON_MESSAGE_DELETED_BY_REQ_ID';\nexport const ON_OPERATOR_UPDATED = 'ON_OPERATOR_UPDATED';\nexport const ON_USER_ENTERED = 'ON_USER_ENTERED';\nexport const ON_USER_EXITED = 'ON_USER_EXITED';\nexport const ON_USER_MUTED = 'ON_USER_MUTED';\nexport const ON_USER_UNMUTED = 'ON_USER_UNMUTED';\nexport const ON_USER_BANNED = 'ON_USER_BANNED';\nexport const ON_USER_UNBANNED = 'ON_USER_UNBANNED';\nexport const ON_CHANNEL_FROZEN = 'ON_CHANNEL_FROZEN';\nexport const ON_CHANNEL_UNFROZEN = 'ON_CHANNEL_UNFROZEN';\nexport const ON_CHANNEL_CHANGED = 'ON_CHANNEL_CHANGED';\nexport const ON_CHANNEL_DELETED = 'ON_CHANNEL_DELETED';\nexport const ON_META_DATA_CREATED = 'ON_META_DATA_CREATED';\nexport const ON_META_DATA_UPDATED = 'ON_META_DATA_UPDATED';\nexport const ON_META_DATA_DELETED = 'ON_META_DATA_DELETED';\nexport const ON_META_COUNTERS_CREATED = 'ON_META_COUNTERS_CREATED';\nexport const ON_META_COUNTERS_UPDATED = 'ON_META_COUNTERS_UPDATED';\nexport const ON_META_COUNTERS_DELETED = 'ON_META_COUNTERS_DELETED';\nexport const ON_MENTION_RECEIVED = 'ON_MENTION_RECEIVED';\n","import { State as initialStateInterface } from './initialState';\nimport * as actionTypes from './actionTypes';\n\nimport compareIds from '../../../../utils/compareIds.js';\nimport { FileMessage, UserMessage } from '@sendbird/chat/message';\n\n/* eslint-disable @typescript-eslint/no-explicit-any */\n// @ts-ignore: Unreachable code error\ninterface ActionInterface {\n type: string;\n payload?: any;\n}\n\nexport default function reducer(\n state: initialStateInterface,\n action: ActionInterface,\n): initialStateInterface {\n switch (action.type) {\n case actionTypes.RESET_MESSAGES: {\n return {\n ...state,\n allMessages: [],\n };\n }\n case actionTypes.EXIT_CURRENT_CHANNEL: {\n if (action.payload?.url === state.currentOpenChannel?.url) {\n return {\n ...state,\n currentOpenChannel: null,\n };\n }\n return state;\n }\n case actionTypes.SET_CURRENT_CHANNEL: {\n const gottenChannel = action.payload;\n const operators = gottenChannel.operators;\n if (\n !state.isInvalid\n && state.currentOpenChannel\n && state.currentOpenChannel.url\n && (state.currentOpenChannel.url === gottenChannel.url)\n ) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: gottenChannel,\n isInvalid: false,\n operators: operators,\n participants: operators,\n bannedParticipantIds: [],\n mutedParticipantIds: [],\n };\n }\n case actionTypes.SET_CHANNEL_INVALID: {\n return {\n ...state,\n isInvalid: true,\n };\n }\n case actionTypes.GET_PREV_MESSAGES_START: {\n return {\n ...state,\n loading: true,\n };\n }\n case actionTypes.GET_PREV_MESSAGES_SUCESS:\n case actionTypes.GET_PREV_MESSAGES_FAIL: {\n const isFailed = (action.type === actionTypes.GET_PREV_MESSAGES_FAIL);\n const {\n currentOpenChannel = {},\n messages = [],\n hasMore,\n lastMessageTimestamp,\n } = action.payload;\n const actionChannelUrl = currentOpenChannel.url;\n const receivedMessages = isFailed ? [] : messages;\n const _hasMore = isFailed ? false : hasMore;\n const _lastMessageTimestamp = isFailed ? 0 : lastMessageTimestamp;\n\n const stateChannel = state.currentOpenChannel;\n const stateChannelUrl = stateChannel.url;\n\n if (actionChannelUrl !== stateChannelUrl) {\n return state;\n }\n\n const filteredAllMessages = state.allMessages.filter((message) => (\n !(receivedMessages.find(({ messageId }) => compareIds(messageId, message.messageId)))\n ));\n return {\n ...state,\n loading: false,\n initialized: true,\n hasMore: _hasMore,\n lastMessageTimestamp: _lastMessageTimestamp,\n allMessages: [\n ...receivedMessages,\n ...filteredAllMessages,\n ],\n };\n }\n case actionTypes.SENDING_MESSAGE_START: {\n const {\n message,\n channel,\n } = action.payload;\n if (channel?.url !== state.currentOpenChannel.url\n || state.allMessages.some((m) => (m as UserMessage | FileMessage).reqId === message.reqId)\n // Handing failed first than sending start issue\n ) {\n return state;\n }\n return {\n ...state,\n allMessages: [\n ...state.allMessages,\n message,\n ],\n };\n }\n case actionTypes.SENDING_MESSAGE_SUCCEEDED: {\n const sentMessage = action.payload;\n const newMessages = state.allMessages.map((m) => (\n compareIds((m as UserMessage | FileMessage).reqId, sentMessage.reqId) ? sentMessage : m\n ));\n return {\n ...state,\n allMessages: newMessages,\n };\n }\n case actionTypes.SENDING_MESSAGE_FAILED: {\n const sentMessage = action.payload;\n sentMessage.sendingStatus = 'failed';\n if (!(state.allMessages.some((m) => (m as UserMessage | FileMessage)?.reqId === sentMessage?.reqId))) {\n // Handling failed first than sending start issue\n return {\n ...state,\n allMessages: [\n ...state.allMessages.filter((m) => !compareIds((m as UserMessage | FileMessage).reqId, sentMessage)),\n sentMessage,\n ],\n };\n } else {\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds((m as UserMessage | FileMessage).reqId, sentMessage.reqId) ? sentMessage : m\n )),\n };\n }\n }\n case actionTypes.TRIM_MESSAGE_LIST: {\n const { allMessages } = state;\n const messageLimit = action.payload?.messageLimit;\n if (messageLimit\n && messageLimit > 0\n && allMessages?.length > messageLimit\n ) {\n const sliceAt = allMessages.length - messageLimit;\n return {\n ...state,\n allMessages: allMessages.slice(sliceAt),\n }\n }\n return state;\n }\n case actionTypes.RESENDING_MESSAGE_START: {\n const eventedChannel = action.payload.channel;\n const resentMessage = action.payload.message;\n if (eventedChannel.url !== state.currentOpenChannel.url) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.map((m) => (\n compareIds((m as UserMessage | FileMessage).reqId, resentMessage.reqId) ? resentMessage : m\n )),\n };\n }\n case actionTypes.FETCH_PARTICIPANT_LIST: {\n const eventedChannel = action.payload.channel;\n const fetchedParticipantList = action.payload.users;\n if (eventedChannel.url !== state.currentOpenChannel.url) {\n return state;\n }\n return {\n ...state,\n participants: [...state.participants, ...fetchedParticipantList],\n // Should check duplication\n };\n }\n case actionTypes.FETCH_BANNED_USER_LIST: {\n const eventedChannel = action.payload.channel;\n const fetchedBannedUserList = action.payload.users;\n if (\n (eventedChannel.url !== state.currentOpenChannel.url)\n || !(fetchedBannedUserList.every(user => typeof user.userId === 'string'))\n ) {\n return state;\n }\n return {\n ...state,\n bannedParticipantIds: [\n ...state.bannedParticipantIds,\n ...fetchedBannedUserList.map(user => user.userId),\n ],\n // Should check duplication\n };\n }\n case actionTypes.FETCH_MUTED_USER_LIST: {\n const eventedChannel = action.payload.channel;\n const fetchedMutedUserList = action.payload.users;\n if (\n (eventedChannel.url !== state.currentOpenChannel.url)\n || !(fetchedMutedUserList.every(user => typeof user.userId === 'string'))\n ) {\n return state;\n }\n return {\n ...state,\n mutedParticipantIds: [\n ...state.mutedParticipantIds,\n ...fetchedMutedUserList.map(user => user.userId),\n ],\n // Should check duplication\n };\n }\n // events\n case actionTypes.ON_MESSAGE_RECEIVED: {\n const eventedChannel = action.payload.channel;\n const receivedMessage = action.payload.message;\n\n const {\n currentOpenChannel\n } = state;\n\n if (\n !compareIds(eventedChannel.url, currentOpenChannel.url)\n || (\n !(state.allMessages.map(\n (message) => message.messageId).indexOf(receivedMessage.messageId) < 0\n ))\n ) {\n return state;\n }\n\n return {\n ...state,\n allMessages: [...state.allMessages, receivedMessage],\n };\n }\n case actionTypes.ON_MESSAGE_UPDATED: {\n const eventedChannel = action.payload.channel;\n const updatedMessage = action.payload.message;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.map((message) => (\n message.isIdentical(updatedMessage)\n ? updatedMessage\n : message\n )),\n };\n }\n case actionTypes.ON_MESSAGE_DELETED: {\n const eventedChannel = action.payload.channel;\n const deletedMessageId = action.payload.messageId;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n allMessages: state.allMessages.filter((message) => (\n !compareIds(message.messageId, deletedMessageId)\n )),\n };\n }\n case actionTypes.ON_MESSAGE_DELETED_BY_REQ_ID: {\n return {\n ...state,\n allMessages: state.allMessages.filter((m) => (\n !compareIds((m as UserMessage | FileMessage).reqId, action.payload)\n )),\n };\n }\n case actionTypes.ON_OPERATOR_UPDATED: {\n const eventedChannel = action.payload.channel;\n const updatedOperators = action.payload.operators;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: eventedChannel,\n operators: updatedOperators,\n };\n }\n case actionTypes.ON_USER_ENTERED: {\n const eventedChannel = action.payload.channel;\n const enteredUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n participants: [...state.participants, enteredUser],\n };\n }\n case actionTypes.ON_USER_EXITED: {\n const eventedChannel = action.payload.channel;\n const exitedUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== eventedChannel.url)) {\n return state;\n }\n return {\n ...state,\n participants: state.participants.filter((participant) => (\n !compareIds(participant.userId, exitedUser.userId)\n )),\n };\n }\n case actionTypes.ON_USER_MUTED: {\n const eventedChannel = action.payload.channel;\n const mutedUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (\n !currentChannel\n || (currentChannel.url && (currentChannel.url !== eventedChannel.url))\n || state.mutedParticipantIds.indexOf(mutedUser.userId) >= 0\n ) {\n return state;\n }\n return {\n ...state,\n mutedParticipantIds: [...state.mutedParticipantIds, mutedUser.userId],\n };\n }\n case actionTypes.ON_USER_UNMUTED: {\n const eventedChannel = action.payload.channel;\n const unmutedUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (\n !currentChannel\n || (currentChannel.url && (currentChannel.url !== eventedChannel.url))\n || state.mutedParticipantIds.indexOf(unmutedUser.userId) < 0\n ) {\n return state;\n }\n return {\n ...state,\n mutedParticipantIds: state.mutedParticipantIds.filter(userId => userId !== unmutedUser.userId),\n };\n }\n case actionTypes.ON_USER_BANNED: {\n const eventedChannel = action.payload.channel;\n const bannedUser = action.payload.user;\n const currentUser = action.payload.currentUser;\n const currentChannel = state.currentOpenChannel;\n if (currentChannel?.url === eventedChannel?.url && bannedUser?.userId === currentUser?.userId) {\n return {\n ...state,\n currentOpenChannel: null,\n }\n } else if (currentChannel?.url === eventedChannel?.url) {\n return {\n ...state,\n bannedParticipantIds: [...state.bannedParticipantIds, bannedUser.userId],\n }\n }\n return state;\n }\n case actionTypes.ON_USER_UNBANNED: {\n const eventedChannel = action.payload.channel;\n const unbannedUser = action.payload.user;\n const currentChannel = state.currentOpenChannel;\n if (currentChannel?.url === eventedChannel?.url) {\n return {\n ...state,\n bannedParticipantIds: state.bannedParticipantIds.filter((userId) => userId !== unbannedUser.userId),\n }\n }\n return state;\n }\n case actionTypes.ON_CHANNEL_FROZEN: {\n const frozenChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== frozenChannel.url)) {\n return state;\n }\n return {\n ...state,\n frozen: true,\n };\n }\n case actionTypes.ON_CHANNEL_UNFROZEN: {\n const unfrozenChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== unfrozenChannel.url)) {\n return state;\n }\n return {\n ...state,\n frozen: false,\n };\n }\n case actionTypes.ON_CHANNEL_CHANGED: {\n const changedChannel = action.payload;\n const currentChannel = state.currentOpenChannel;\n if (!currentChannel || currentChannel.url && (currentChannel.url !== changedChannel.url)) {\n return state;\n }\n return {\n ...state,\n currentOpenChannel: changedChannel,\n };\n }\n case actionTypes.ON_CHANNEL_DELETED: {\n const deletedChannelUrl = action.payload;\n const currentChannel = state?.currentOpenChannel;\n if (currentChannel?.url === deletedChannelUrl) {\n return {\n ...state,\n currentOpenChannel: null,\n }\n }\n return state;\n }\n case actionTypes.ON_META_DATA_CREATED: {\n // const eventedChannel = action.payload.channel;\n // const createdMetaData = action.payload.metaData;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_DATA_UPDATED: {\n // const eventedChannel = action.payload.channel;\n // const updatedMetaData = action.payload.metaData;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_DATA_DELETED: {\n // const eventedChannel = action.payload.channel;\n // const deletedMetaDataKeys = action.payload.metaDataKeys;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_CREATED: {\n // const eventedChannel = action.payload.channel;\n // const createdMetaCounter = action.payload.metaCounter;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_UPDATED: {\n // const eventedChannel = action.payload.channel;\n // const updatedMetaCounter = action.payload.metaCounter;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_META_COUNTERS_DELETED: {\n // const eventedChannel = action.payload.channel;\n // const deletedMetaCounterKeys = action.payload.metaCounterKeys;\n // return {\n // ...state\n // };\n return state;\n }\n case actionTypes.ON_MENTION_RECEIVED: {\n // const eventedChannel = action.payload.channel;\n // const mentionedMessage = action.payload.message;\n // return {\n // ...state\n // };\n return state;\n }\n default:\n return state;\n }\n}\n","import type { User } from '@sendbird/chat';\nimport { AdminMessage, FileMessage, UserMessage } from '@sendbird/chat/message';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\n\nexport interface State {\n allMessages: Array<AdminMessage | UserMessage | FileMessage>;\n loading: boolean;\n initialized: boolean;\n currentOpenChannel: OpenChannel;\n isInvalid: boolean;\n hasMore: boolean;\n lastMessageTimestamp: number;\n frozen: boolean;\n operators: Array<User>;\n participants: Array<User>;\n bannedParticipantIds: Array<string>;\n mutedParticipantIds: Array<string>;\n}\n\nconst initialState: State = {\n allMessages: [],\n loading: false,\n initialized: false,\n currentOpenChannel: null,\n isInvalid: false,\n hasMore: false,\n lastMessageTimestamp: 0,\n frozen: false,\n operators: [],\n participants: [],\n bannedParticipantIds: [],\n mutedParticipantIds: [],\n};\n\nexport default initialState;\n","import type { OpenChannel, SendbirdOpenChat } from '@sendbird/chat/openChannel';\nimport { useEffect } from 'react';\nimport type { Logger } from '../../../../lib/SendbirdState';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\n\ninterface DynamicParams {\n channelUrl: string;\n sdkInit: boolean;\n fetchingParticipants: boolean;\n userId: string;\n currentOpenChannel: OpenChannel;\n}\ninterface StaticParams {\n sdk: SendbirdOpenChat;\n logger: Logger;\n messagesDispatcher: ({ type, payload }: { type: string, payload: any }) => void;\n}\n\nfunction useSetChannel(\n { channelUrl, sdkInit, fetchingParticipants, userId, currentOpenChannel }: DynamicParams,\n { sdk, logger, messagesDispatcher }: StaticParams,\n): void {\n useEffect(() => {\n if (channelUrl && sdkInit && sdk?.openChannel) {\n if (currentOpenChannel && currentOpenChannel?.exit) {\n currentOpenChannel.exit?.().then(() => {\n logger.info('OpenChannel | useSetChannel: Exit from the previous open channel', currentOpenChannel?.url);\n messagesDispatcher({\n type: messageActionTypes.EXIT_CURRENT_CHANNEL,\n payload: currentOpenChannel,\n });\n });\n }\n logger.info('OpenChannel | useSetChannel: Fetching channel', channelUrl);\n sdk.openChannel.getChannel(channelUrl).then((openChannel) => {\n logger.info('OpenChannel | useSetChannel: Succeeded to fetch channel', openChannel);\n messagesDispatcher({\n type: messageActionTypes.SET_CURRENT_CHANNEL,\n payload: openChannel,\n });\n openChannel.enter().then(() => {\n if (openChannel.isOperator(userId)) { // only operator has a permission to fetch these list\n const bannedParticipantListQuery = openChannel.createBannedUserListQuery();\n const mutedParticipantListQuery = openChannel.createMutedUserListQuery();\n utils.fetchWithListQuery(\n bannedParticipantListQuery,\n logger,\n (users) => {\n messagesDispatcher({\n type: messageActionTypes.FETCH_BANNED_USER_LIST,\n payload: {\n channel: openChannel,\n users,\n },\n });\n },\n );\n utils.fetchWithListQuery(\n mutedParticipantListQuery,\n logger,\n (users) => {\n messagesDispatcher({\n type: messageActionTypes.FETCH_MUTED_USER_LIST,\n payload: {\n channel: openChannel,\n users,\n },\n });\n },\n );\n } else {\n openChannel.getMyMutedInfo()\n .then((mutedInfo) => {\n if (mutedInfo?.isMuted) {\n messagesDispatcher({\n type: messageActionTypes.FETCH_MUTED_USER_LIST,\n payload: {\n channel: openChannel,\n users: [sdk?.currentUser],\n },\n });\n }\n });\n }\n if (fetchingParticipants) {\n // fetch participants list\n const participantListQuery = openChannel.createParticipantListQuery({\n limit: openChannel.participantCount,\n });\n utils.fetchWithListQuery(\n participantListQuery,\n logger,\n (users) => {\n messagesDispatcher({\n type: messageActionTypes.FETCH_PARTICIPANT_LIST,\n payload: {\n channel: openChannel,\n users,\n },\n });\n },\n );\n }\n }).catch((error) => {\n logger.warning('OpenChannel | useSetChannel: Failed to enter channel', { channelUrl, error });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n payload: null,\n });\n });\n }).catch((error) => {\n logger.warning('OpenChannel | useSetChannel: Failed to fetch channel', { channelUrl, error });\n messagesDispatcher({\n type: messageActionTypes.SET_CHANNEL_INVALID,\n payload: null,\n });\n });\n }\n }, [channelUrl, sdkInit, fetchingParticipants]);\n}\n\nexport default useSetChannel;\n","import { useEffect } from 'react';\nimport { ChannelType } from '@sendbird/chat';\nimport { OpenChannel, OpenChannelHandler, SendbirdOpenChat } from '@sendbird/chat/openChannel';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport uuidv4 from '../../../../utils/uuid';\nimport { scrollIntoLast } from '../utils';\nimport { Logger } from '../../../../lib/SendbirdState';\n\ntype MessagesDispatcherType = {\n type: string, payload: any,\n}\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n checkScrollBottom: () => boolean;\n}\ninterface StaticParams {\n sdk: SendbirdOpenChat;\n logger: Logger;\n messagesDispatcher: (props: MessagesDispatcherType) => void;\n}\n\nfunction useHandleChannelEvents(\n { currentOpenChannel, checkScrollBottom }: DynamicParams,\n { sdk, logger, messagesDispatcher }: StaticParams,\n): void {\n useEffect(() => {\n const messageReceiverId = uuidv4();\n if (currentOpenChannel && currentOpenChannel.url && sdk?.openChannel?.addOpenChannelHandler) {\n logger.info('OpenChannel | useHandleChannelEvents: Setup evnet handler', messageReceiverId);\n const channelHandlerParams: OpenChannelHandler = {\n onMessageReceived: (channel, message) => {\n const scrollToEnd = checkScrollBottom();\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageReceived', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_RECEIVED,\n payload: { channel, message },\n });\n if (scrollToEnd) {\n try {\n setTimeout(() => {\n scrollIntoLast();\n });\n } catch (error) {\n logger.warning('OpenChannel | onMessageReceived | scroll to end failed');\n }\n }\n },\n onMessageUpdated: (channel, message) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageUpdated', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n },\n onMessageDeleted: (channel, messageId) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMessageDeleted', { channelUrl, messageId });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: { channel, messageId },\n });\n },\n onOperatorUpdated: (channel, operators) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onOperatorUpdated', { channelUrl, operators });\n messagesDispatcher({\n type: messageActionTypes.ON_OPERATOR_UPDATED,\n payload: { channel, operators },\n });\n },\n onUserEntered: (channel, user) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserEntered', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_ENTERED,\n payload: { channel, user },\n });\n },\n onUserExited: (channel, user) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserExited', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_EXITED,\n payload: { channel, user },\n });\n },\n onUserMuted: (channel, user) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserMuted', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_MUTED,\n payload: { channel, user },\n });\n },\n onUserUnmuted: (channel, user) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserUnmuted', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_UNMUTED,\n payload: { channel, user },\n });\n },\n onUserBanned: (channel, user) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserBanned', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_BANNED,\n payload: { channel, user, currentUser: sdk?.currentUser },\n });\n },\n onUserUnbanned: (channel, user) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onUserUnbanned', { channelUrl, user });\n messagesDispatcher({\n type: messageActionTypes.ON_USER_UNBANNED,\n payload: { channel, user },\n });\n },\n onChannelFrozen: (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelFrozen', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_FROZEN,\n payload: channel,\n });\n },\n onChannelUnfrozen: (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelUnfrozen', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_UNFROZEN,\n payload: channel,\n });\n },\n onChannelChanged: (channel) => {\n logger.info('OpenChannel | useHandleChannelEvents: onChannelChanged', channel);\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_CHANGED,\n payload: channel,\n });\n },\n onMetaDataCreated: (channel, metaData) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataCreated', { channelUrl, metaData });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_CREATED,\n payload: { channel, metaData },\n });\n },\n onMetaDataUpdated: (channel, metaData) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataUpdated', { channelUrl, metaData });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_UPDATED,\n payload: { channel, metaData },\n });\n },\n onMetaDataDeleted: (channel, metaDataKeys) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaDataDeleted', { channelUrl, metaDataKeys });\n messagesDispatcher({\n type: messageActionTypes.ON_META_DATA_DELETED,\n payload: { channel, metaDataKeys },\n });\n },\n onMetaCounterCreated: (channel, metaCounter) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersCreated', { channelUrl, metaCounter });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_CREATED,\n payload: { channel, metaCounter },\n });\n },\n onMetaCounterUpdated: (channel, metaCounter) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersUpdated', { channelUrl, metaCounter });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_UPDATED,\n payload: { channel, metaCounter },\n });\n },\n onMetaCounterDeleted: (channel, metaCounterKeys) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMetaCountersDeleted', { channelUrl, metaCounterKeys });\n messagesDispatcher({\n type: messageActionTypes.ON_META_COUNTERS_DELETED,\n payload: { channel, metaCounterKeys },\n });\n },\n onMentionReceived: (channel, message) => {\n const channelUrl = channel?.url;\n logger.info('OpenChannel | useHandleChannelEvents: onMentionReceived', { channelUrl, message });\n messagesDispatcher({\n type: messageActionTypes.ON_MENTION_RECEIVED,\n payload: { channel, message },\n });\n },\n onChannelDeleted: (channelUrl, channelType) => {\n if (channelType === ChannelType.OPEN && currentOpenChannel?.url === channelUrl) {\n messagesDispatcher({\n type: messageActionTypes.ON_CHANNEL_DELETED,\n payload: channelUrl,\n });\n }\n },\n };\n\n const ChannelHandler = new OpenChannelHandler(channelHandlerParams);\n\n sdk?.openChannel?.addOpenChannelHandler(messageReceiverId, ChannelHandler);\n }\n\n return () => {\n if (sdk?.openChannel?.removeOpenChannelHandler) {\n logger.info('OpenChannel | useHandleChannelEvents: Removing message receiver handler', messageReceiverId);\n sdk.openChannel.removeOpenChannelHandler(messageReceiverId);\n }\n }\n }, [currentOpenChannel]);\n}\n\nexport default useHandleChannelEvents;\n","import { MessageListParams } from '@sendbird/chat/message';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\nimport { useEffect } from 'react';\n\nimport type { CustomUseReducerDispatcher, Logger } from '../../../../lib/SendbirdState';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport { scrollIntoLast } from '../utils';\n\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n /* eslint-disable @typescript-eslint/no-explicit-any*/\n userFilledMessageListParams?: Record<string, any>;\n}\ninterface StaticParams {\n logger: Logger;\n messagesDispatcher: CustomUseReducerDispatcher;\n}\n\nfunction useInitialMessagesFetch(\n { currentOpenChannel, userFilledMessageListParams }: DynamicParams,\n { logger, messagesDispatcher }: StaticParams,\n): void {\n useEffect(() => {\n logger.info('OpenChannel | useInitialMessagesFetch: Setup started', currentOpenChannel);\n messagesDispatcher({\n type: messageActionTypes.RESET_MESSAGES,\n payload: null,\n });\n\n if (currentOpenChannel && currentOpenChannel.getMessagesByTimestamp) {\n const messageListParams: MessageListParams = {\n nextResultSize: 0,\n prevResultSize: 30,\n isInclusive: true,\n includeReactions: false,\n };\n if (userFilledMessageListParams) {\n Object.keys(userFilledMessageListParams).forEach((key) => {\n messageListParams[key] = userFilledMessageListParams[key];\n });\n logger.info('OpenChannel | useInitialMessagesFetch: Used customizedMessageListParams');\n }\n\n logger.info('OpenChannel | useInitialMessagesFetch: Fetching messages', { currentOpenChannel, messageListParams });\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_START,\n payload: null,\n });\n currentOpenChannel.getMessagesByTimestamp(new Date().getTime(), messageListParams).then((messages) => {\n logger.info('OpenChannel | useInitialMessagesFetch: Fetching messages succeeded', messages);\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimestamp = hasMore ? messages[0].createdAt : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n currentOpenChannel,\n messages,\n hasMore,\n lastMessageTimestamp,\n },\n });\n setTimeout(() => { scrollIntoLast(); });\n }).catch((error) => {\n logger.error('OpenChannel | useInitialMessagesFetch: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n payload: {\n currentOpenChannel,\n messages: [],\n hasMore: false,\n lastMessageTimestamp: 0,\n },\n });\n });\n }\n }, [currentOpenChannel, userFilledMessageListParams]);\n}\n\nexport default useInitialMessagesFetch;\n","import { useCallback } from 'react';\nimport type { MessageListParams } from '@sendbird/chat/message';\nimport type { OpenChannel, SendbirdOpenChat } from '@sendbird/chat/openChannel';\n\nimport type { CustomUseReducerDispatcher, Logger } from '../../../../lib/SendbirdState';\nimport * as messageActionTypes from '../dux/actionTypes';\n\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n lastMessageTimestamp: number;\n fetchMore?: boolean;\n}\ninterface StaticParams {\n sdk: SendbirdOpenChat;\n logger: Logger;\n messagesDispatcher: CustomUseReducerDispatcher;\n hasMore: boolean;\n /* eslint-disable @typescript-eslint/no-explicit-any*/\n userFilledMessageListParams?: Record<string, any>;\n}\ntype CallbackReturn = (callback: () => void) => void;\n\nfunction useScrollCallback(\n { currentOpenChannel, lastMessageTimestamp, fetchMore }: DynamicParams,\n { sdk, logger, messagesDispatcher, hasMore, userFilledMessageListParams }: StaticParams,\n): CallbackReturn {\n return useCallback((callback) => {\n if (fetchMore && hasMore) {\n logger.info('OpenChannel | useScrollCallback: start');\n const messageListParams: MessageListParams = {\n prevResultSize: 30,\n includeReactions: false,\n nextResultSize: 0,\n };\n\n if (userFilledMessageListParams) {\n Object.keys(userFilledMessageListParams).forEach((key) => {\n messageListParams[key] = userFilledMessageListParams[key];\n });\n logger.info('OpenChannel | useScrollCallback: Used userFilledMessageListParams', userFilledMessageListParams);\n }\n\n logger.info('OpenChannel | useScrollCallback: Fetching messages', { currentOpenChannel, messageListParams });\n\n currentOpenChannel.getMessagesByTimestamp(lastMessageTimestamp || new Date().getTime(), messageListParams).then((messages) => {\n logger.info('OpenChannel | useScrollCallback: Fetching messages succeeded', messages);\n const hasMore = (messages && messages.length > 0);\n const lastMessageTimestamp = hasMore ? messages[0].createdAt : null;\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_SUCESS,\n payload: {\n currentOpenChannel,\n messages,\n hasMore,\n lastMessageTimestamp,\n }\n });\n setTimeout(() => {\n callback();\n });\n }).catch((error) => {\n logger.error('OpenChannel | useScrollCallback: Fetching messages failed', error);\n messagesDispatcher({\n type: messageActionTypes.GET_PREV_MESSAGES_FAIL,\n payload: {\n currentOpenChannel,\n messages: [],\n hasMore: false,\n lastMessageTimestamp: 0,\n }\n });\n });\n }\n }, [currentOpenChannel, lastMessageTimestamp, fetchMore, sdk]);\n}\n\nexport default useScrollCallback;\n","import { useCallback } from 'react';\nimport { Logger } from '../../../..';\n\ninterface DynamicParams {\n conversationScrollRef: React.RefObject<HTMLDivElement>;\n}\ninterface StaticParams {\n logger: Logger;\n}\n\nfunction useCheckScrollBottom(\n { conversationScrollRef }: DynamicParams,\n { logger }: StaticParams,\n): () => boolean {\n return useCallback(() => {\n let isBottom = true;\n if (conversationScrollRef && conversationScrollRef?.current) {\n try {\n const conversationScroll = conversationScrollRef.current;\n isBottom = conversationScroll.scrollHeight <= conversationScroll.scrollTop + conversationScroll.clientHeight;\n } catch(error) {\n logger.error('OpenChannel | useCheckScrollBottom', error);\n }\n }\n return isBottom;\n }, [conversationScrollRef])\n}\n\nexport default useCheckScrollBottom;\n","import type { UserMessageCreateParams } from '@sendbird/chat/message';\nimport type { OpenChannel, SendbirdOpenChat } from '@sendbird/chat/openChannel';\n\nimport { useCallback } from 'react';\nimport type { Logger } from '../../../../lib/SendbirdState';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\n\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n onBeforeSendUserMessage: (text: string) => UserMessageCreateParams;\n checkScrollBottom: () => boolean;\n messageInputRef: React.RefObject<HTMLInputElement>;\n}\ninterface StaticParams {\n sdk: SendbirdOpenChat;\n logger: Logger;\n messagesDispatcher: ({ type: string, payload: any }) => void;\n}\n\nfunction useSendMessageCallback(\n { currentOpenChannel, onBeforeSendUserMessage, checkScrollBottom, messageInputRef }: DynamicParams,\n { sdk, logger, messagesDispatcher }: StaticParams,\n): () => void {\n return useCallback(() => {\n if (sdk) {\n const text = messageInputRef.current.innerText;\n const createParamsDefault = (txt: string | number): UserMessageCreateParams => {\n const message = typeof txt === 'string' ? txt.trim() : txt.toString(10).trim();\n const params: UserMessageCreateParams = {\n message: message,\n };\n return params;\n }\n const createCustomParams = onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function';\n if (createCustomParams) {\n logger.info('OpenChannel | useSendMessageCallback: Creating params using onBeforeSendUserMessage', onBeforeSendUserMessage);\n }\n const params = onBeforeSendUserMessage ? onBeforeSendUserMessage(text) : createParamsDefault(text);\n logger.info('OpenChannel | useSendMessageCallback: Sending message has started', params);\n\n const isBottom = checkScrollBottom();\n let pendingMsg = null;\n currentOpenChannel.sendUserMessage(params)\n .onPending((pendingMessage) => {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: {\n message: pendingMessage,\n channel: currentOpenChannel,\n }\n });\n pendingMsg = pendingMessage;\n })\n .onSucceeded((message) => {\n logger.info('OpenChannel | useSendMessageCallback: Sending message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n if (isBottom) {\n setTimeout(() => {\n utils.scrollIntoLast();\n });\n }\n })\n .onFailed((error) => {\n logger.warning('OpenChannel | useSendMessageCallback: Sending message failed', error);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: pendingMsg,\n });\n // https://sendbird.com/docs/chat/v3/javascript/guides/error-codes#2-server-error-codes\n // TODO: Do we need to handle the error cases?\n // @ts-ignore\n if (error?.code === 900041) {\n messagesDispatcher({\n type: messageActionTypes.ON_USER_MUTED,\n payload: {\n channel: currentOpenChannel,\n user: sdk.currentUser,\n },\n });\n }\n });\n }\n }, [currentOpenChannel, onBeforeSendUserMessage, checkScrollBottom, messageInputRef]);\n}\n\nexport default useSendMessageCallback;\n","import { useCallback } from 'react';\nimport type { OpenChannel, SendbirdOpenChat } from '@sendbird/chat/openChannel';\nimport type { FileMessageCreateParams } from '@sendbird/chat/message';\n\nimport type { Logger } from '../../../../lib/SendbirdState';\nimport * as messageActionTypes from '../dux/actionTypes';\nimport * as utils from '../utils';\n\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n onBeforeSendFileMessage: (file: File) => FileMessageCreateParams;\n checkScrollBottom: () => boolean;\n imageCompression?: {\n compressionRate?: number,\n resizingWidth?: number | string,\n resizingHeight?: number | string,\n };\n}\ninterface StaticParams {\n sdk: SendbirdOpenChat;\n logger: Logger;\n messagesDispatcher: ({ type: string, payload: any }) => void;\n}\n\ntype CallbackReturn = (file: File) => void;\n\nfunction useFileUploadCallback(\n {\n currentOpenChannel,\n checkScrollBottom,\n imageCompression = {},\n onBeforeSendFileMessage,\n }: DynamicParams,\n { sdk, logger, messagesDispatcher }: StaticParams,\n): CallbackReturn {\n return useCallback((file) => {\n if (sdk) {\n const {\n compressionRate,\n resizingWidth,\n resizingHeight,\n } = imageCompression;\n const createCustomParams = onBeforeSendFileMessage && typeof onBeforeSendFileMessage === 'function';\n\n const compressibleFileType = (file.type === 'image/jpg' || file.type === 'image/png' || file.type === 'image/jpeg');\n const compressibleRatio = (compressionRate > 0) && (compressionRate < 1);\n // pxToNumber returns null if values are invalid\n const compressibleDiamensions = utils.pxToNumber(resizingWidth)\n || utils.pxToNumber(resizingHeight);\n\n const canCompressImage = compressibleFileType && (compressibleRatio || compressibleDiamensions);\n\n const createParamsDefault = (file_): FileMessageCreateParams => {\n const params: FileMessageCreateParams = {};\n params.file = file_;\n return params;\n };\n\n if (canCompressImage) { // Using image compression\n try {\n const image: HTMLImageElement = document.createElement('img');\n image.src = URL.createObjectURL(file);\n image.onload = () => {\n URL.revokeObjectURL(image.src);\n const canvas = document.createElement('canvas');\n const imageWidth = image.naturalWidth || image.width;\n const imageHeight = image.naturalHeight || image.height;\n let targetWidth = utils.pxToNumber(resizingWidth) || imageWidth;\n let targetHeight = utils.pxToNumber(resizingHeight) || imageHeight;\n\n // In canvas.toBlob(callback, mimeType, qualityArgument)\n // qualityArgument doesnt work\n // so in case compressibleDiamensions are not present, we use ratio\n if (file.type === 'image/png' && !compressibleDiamensions) {\n targetWidth *= compressionRate;\n targetHeight *= compressionRate;\n }\n\n canvas.width = targetWidth;\n canvas.height = targetHeight;\n const context = canvas.getContext('2d');\n context.drawImage(image, 0, 0, targetWidth, targetHeight);\n context.canvas.toBlob(\n (newImageBlob) => {\n const compressedFile = new File([newImageBlob], file.name, { type: file.type });\n if (createCustomParams) {\n logger.info('OpenChannel | useFileUploadCallback: Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n const params = onBeforeSendFileMessage ? onBeforeSendFileMessage(compressedFile) : createParamsDefault(compressedFile);\n logger.info('OpenChannel | useFileUploadCallback: Uploading file message start', params);\n\n const isBottom = checkScrollBottom();\n currentOpenChannel.sendFileMessage(params)\n .onPending((pendingMessage) => {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: {\n message: {\n ...pendingMessage,\n url: URL.createObjectURL(file),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentOpenChannel,\n }\n });\n })\n .onSucceeded((message) => {\n logger.info('OpenChannel | useFileUploadCallback: Sending message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n if (isBottom) {\n setTimeout(() => {\n utils.scrollIntoLast();\n });\n }\n })\n .onFailed((error, message) => {\n logger.error('OpenChannel | useFileUploadCallback: Sending file message failed', { message, error });\n // @ts-ignore\n message.localUrl = URL.createObjectURL(file);\n // @ts-ignore\n message.file = file;\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: message,\n });\n });\n },\n file.type,\n compressionRate,\n );\n }\n } catch (error) {\n logger.warning('OpenChannel | useFileUploadCallback: Sending file message with image compression failed', error);\n }\n } else { // Not using image compression\n if (createCustomParams) {\n logger.info('OpenChannel | useFileUploadCallback: Creating params using onBeforeSendFileMessage', onBeforeSendFileMessage);\n }\n const params = onBeforeSendFileMessage ? onBeforeSendFileMessage(file) : createParamsDefault(file);\n logger.info('OpenChannel | useFileUploadCallback: Uploading file message start', params);\n\n const isBottom = checkScrollBottom();\n currentOpenChannel.sendFileMessage(params)\n .onPending((pendingMessage) => {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: {\n message: {\n ...pendingMessage,\n url: URL.createObjectURL(file),\n // pending thumbnail message seems to be failed\n requestState: 'pending',\n },\n channel: currentOpenChannel,\n }\n });\n })\n .onSucceeded((message) => {\n logger.info('OpenChannel | useFileUploadCallback: Sending message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n if (isBottom) {\n setTimeout(() => {\n utils.scrollIntoLast();\n });\n }\n })\n .onFailed((error, message) => {\n logger.error('OpenChannel | useFileUploadCallback: Sending file message failed', { message, error });\n // @ts-ignore\n message.localUrl = URL.createObjectURL(file);\n // @ts-ignore\n message.file = file;\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: message,\n });\n });\n }\n }\n }, [currentOpenChannel, onBeforeSendFileMessage, checkScrollBottom, imageCompression]);\n}\n\nexport default useFileUploadCallback;\n","import type { UserMessageUpdateParams } from '@sendbird/chat/message';\n\nimport type { Logger } from '../../../../lib/SendbirdState';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\nimport { useCallback } from 'react';\nimport * as messageActionTypes from '../dux/actionTypes';\n\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n onBeforeSendUserMessage?: (text) => UserMessageUpdateParams;\n}\ninterface StaticParams {\n logger: Logger;\n messagesDispatcher: ({ type: string, payload :any }) => void;\n}\ntype CallbackReturn = (messageId, text, callback) => void;\n\nfunction useUpdateMessageCallback(\n { currentOpenChannel, onBeforeSendUserMessage }: DynamicParams,\n { logger, messagesDispatcher }: StaticParams,\n): CallbackReturn {\n return useCallback((messageId, text, callback) => {\n const createParamsDefault = (txt) => {\n const params = {\n message: txt,\n };\n return params;\n };\n\n if (onBeforeSendUserMessage && typeof onBeforeSendUserMessage === 'function') {\n logger.info('OpenChannel | useUpdateMessageCallback: Creating params using onBeforeUpdateUserMessage');\n }\n const params = onBeforeSendUserMessage ? onBeforeSendUserMessage(text) : createParamsDefault(text);\n currentOpenChannel.updateUserMessage(messageId, params)\n .then((message) => {\n if (callback) {\n callback();\n }\n logger.info('OpenChannel | useUpdateMessageCallback: Updating message succeeded', { message, params });\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: {\n channel: currentOpenChannel,\n message,\n },\n });\n });\n }, [currentOpenChannel, onBeforeSendUserMessage]);\n}\n\nexport default useUpdateMessageCallback;\n","import type { FileMessage, UserMessage } from '@sendbird/chat/message';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\nimport { useCallback } from 'react';\nimport { Logger } from '../../../..';\nimport * as messageActionTypes from '../dux/actionTypes';\n\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n}\n\ntype MessagesDispatcherType = {\n type: string, payload: any,\n};\n\ninterface StaticParams {\n logger: Logger;\n messagesDispatcher: (dispatcher: MessagesDispatcherType) => void;\n}\n\ntype CallbackReturn = (\n message: UserMessage | FileMessage,\n callback?: () => void,\n) => void;\n\nfunction useDeleteMessageCallback(\n { currentOpenChannel }: DynamicParams,\n { logger, messagesDispatcher }: StaticParams,\n): CallbackReturn {\n return useCallback((message, callback) => {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message', message);\n const { sendingStatus } = message;\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message requestState', sendingStatus);\n\n if (sendingStatus === 'failed' || sendingStatus === 'pending') {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleted message from local', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED_BY_REQ_ID,\n payload: message.reqId,\n });\n if (callback) {\n callback();\n }\n } else {\n if (!(message.messageType ==='file' || message.messageType === 'user')) {\n return;\n }\n const messageToDelete = message as UserMessage;\n currentOpenChannel.deleteMessage(messageToDelete).then(() => {\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message on server', sendingStatus);\n if (callback) {\n callback();\n }\n logger.info('OpenChannel | useDeleteMessageCallback: Deleting message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: {\n channel: currentOpenChannel,\n messageId: message.messageId,\n },\n });\n }).catch((error) => {\n logger.warning('OpenChannel | useDeleteMessageCallback: Deleting message failed', error);\n });\n }\n }, [currentOpenChannel]);\n}\n\nexport default useDeleteMessageCallback;\n","import type { FileMessage, UserMessage } from '@sendbird/chat/message';\nimport type { OpenChannel } from '@sendbird/chat/openChannel';\nimport { useCallback } from 'react';\nimport { Logger } from '../../../..';\nimport * as messageActionTypes from '../dux/actionTypes';\n\ninterface DynamicParams {\n currentOpenChannel: OpenChannel;\n}\n\ntype MessagesDispatcherType = { type: string, payload: any };\n\ninterface StaticParams {\n logger: Logger;\n messagesDispatcher: (dispatcher: MessagesDispatcherType) => void;\n}\ntype CallbackReturn = (failedMessage: UserMessage | FileMessage) => void;\n\nfunction useResendMessageCallback(\n { currentOpenChannel }: DynamicParams,\n { logger, messagesDispatcher }: StaticParams,\n): CallbackReturn {\n return useCallback((failedMessage) => {\n logger.info('OpenChannel | useResendMessageCallback: Resending message has started', failedMessage);\n // eslint-disable-next-line no-param-reassign\n const { messageType, file } = failedMessage as FileMessage;\n if (failedMessage && typeof failedMessage.isResendable === 'function' && failedMessage.isResendable) {\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'pending';\n messagesDispatcher({\n type: messageActionTypes.RESENDING_MESSAGE_START,\n payload: {\n channel: currentOpenChannel,\n message: failedMessage,\n },\n });\n\n // userMessage\n if (messageType === 'user' && failedMessage.messageType === 'user') {\n currentOpenChannel.resendUserMessage(failedMessage).then((message) => {\n logger.info('OpenChannel | useResendMessageCallback: Reseding message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n }).catch((error) => {\n logger.warning('OpenChannel | useResendMessageCallback: Resending message failed', error);\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: failedMessage,\n });\n });\n }\n\n // fileMessage\n if (messageType === 'file' && failedMessage.messageType === 'file') {\n currentOpenChannel.resendFileMessage(failedMessage, file).then((message) => {\n logger.info('OpenChannel | useResendMessageCallback: Resending file message succeeded', message);\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n }).catch((error) => {\n logger.warning('OpenChannel | useResendMessageCallback: Resending file message failed', error);\n // eslint-disable-next-line no-param-reassign\n failedMessage.requestState = 'failed';\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_FAILED,\n payload: failedMessage,\n });\n });\n }\n } else {\n // to alert user on console\n // eslint-disable-next-line no-console\n console.error('OpenChannel | useResendMessageCallback: Message is not resendable');\n logger.warning('OpenChannel | useResendMessageCallback: Message is not resendable', failedMessage);\n }\n }, [currentOpenChannel]);\n}\n\nexport default useResendMessageCallback;\n","import { useEffect, useState } from 'react';\nimport { Logger } from '../../../..';\nimport * as messageActionTypes from '../dux/actionTypes';\n\ninterface DynamicParams {\n messagesLength: number;\n messageLimit: number;\n}\n\n\ntype MessagesDispatcherType = {\n type: string,\n payload: { messageLimit: number }\n};\n\ninterface StaticParams {\n messagesDispatcher: (dispatcher: MessagesDispatcherType) => void;\n logger: Logger;\n}\n\nconst THROTTLE_TIMER = 5000;\n\n// to trim message list so that we wont keep thousands of messages in memory\n// We are throttling here; not debouncing\n// it will be called once very 5 sec if messagesLength, messageLimit changes\n// we check if messagesLength > messageLimit before dispatching action\nfunction useTrimMessageList(\n { messagesLength, messageLimit }: DynamicParams,\n { messagesDispatcher, logger }: StaticParams,\n): void {\n const [inProgress, setInProgress] = useState(false);\n useEffect(() => {\n if (inProgress) {\n return;\n }\n if (typeof messagesLength === 'number' && messagesLength > messageLimit) {\n logger.info('Trimming MessageList');\n messagesDispatcher({\n type: messageActionTypes.TRIM_MESSAGE_LIST,\n payload: { messageLimit },\n });\n }\n setInProgress(true);\n setTimeout(() => { setInProgress(false); }, THROTTLE_TIMER);\n }, [messagesLength, messageLimit]);\n}\n\nexport default useTrimMessageList;\n","import React, {\n useRef,\n useEffect,\n useReducer,\n useMemo,\n} from 'react';\nimport type { FileMessageCreateParams, UserMessageCreateParams } from '@sendbird/chat/message';\nimport type { SendbirdOpenChat } from '@sendbird/chat/openChannel';\n\nimport * as utils from './utils';\nimport { UserProfileProvider } from '../../../lib/UserProfileContext';\nimport { RenderUserProfileProps } from '../../../types';\nimport messagesReducer from './dux/reducers';\nimport messagesInitialState, {\n State as MessageStoreState,\n} from './dux/initialState';\nimport * as messageActionTypes from './dux/actionTypes';\nimport { scrollIntoLast } from './utils';\nimport * as topics from '../../../lib/pubSub/topics';\n\n// hooks\nimport useSetChannel from './hooks/useSetChannel';\nimport useHandleChannelEvents from './hooks/useHandleChannelEvents';\nimport useInitialMessagesFetch from './hooks/useInitialMessagesFetch';\nimport useScrollCallback from './hooks/useScrollCallback';\nimport useCheckScrollBottom from './hooks/useCheckScrollBottom';\nimport useSendMessageCallback from './hooks/useSendMessageCallback';\nimport useFileUploadCallback from './hooks/useFileUploadCallback';\nimport useUpdateMessageCallback from './hooks/useUpdateMessageCallback';\nimport useDeleteMessageCallback from './hooks/useDeleteMessageCallback';\nimport useResendMessageCallback from './hooks/useResendMessageCallback';\nimport useTrimMessageList from './hooks/useTrimMessageList';\nimport useSendbirdStateContext from '../../../hooks/useSendbirdStateContext';\n\ntype OpenChannelQueries = {\n // https://sendbird.github.io/core-sdk-javascript/module-model_params_messageListParams-MessageListParams.html\n messageListParams?: {\n replyType?: string,\n messageType?: string,\n prevResultSize?: number,\n nextResultSize?: number,\n reverse?: boolean,\n isInclusive?: boolean,\n includeMetaArray?: boolean,\n // UIKit doesn't support emoji reaction in OpenChannel\n // includeReactions?: boolean,\n // UIKit doesn't support message threading in OpenChannel\n // includeThreadInfo?: boolean,\n includePollDetails?: boolean,\n includeParentMessageInfo?: boolean,\n showSubchannelMessagesOnly?: boolean,\n customTypes?: Array<string>,\n senderUserIds?: Array<string>,\n },\n};\n\nexport interface OpenChannelProviderProps {\n channelUrl: string;\n children?: React.ReactElement;\n isMessageGroupingEnabled?: boolean;\n queries?: OpenChannelQueries;\n messageLimit?: number;\n onBeforeSendUserMessage?(text: string): UserMessageCreateParams;\n onBeforeSendFileMessage?(file_: File): FileMessageCreateParams;\n onChatHeaderActionClick?(): void;\n disableUserProfile?: boolean;\n renderUserProfile?: (props: RenderUserProfileProps) => React.ReactElement;\n}\n\n\ninterface OpenChannelInterface extends OpenChannelProviderProps, MessageStoreState {\n // derived/utils\n messageInputRef: React.RefObject<HTMLInputElement>;\n conversationScrollRef: React.RefObject<HTMLDivElement>;\n disabled: boolean;\n amIBanned: boolean;\n amIMuted: boolean;\n amIOperator: boolean;\n fetchMore: boolean;\n checkScrollBottom: () => boolean;\n onScroll: (callback: () => void) => void;\n handleSendMessage: any;\n handleFileUpload: any;\n updateMessage: any;\n deleteMessage: any;\n resendMessage: any;\n}\n\nconst OpenChannelContext = React.createContext<OpenChannelInterface | null>(undefined);\n\nconst OpenChannelProvider: React.FC<OpenChannelProviderProps> = (props: OpenChannelProviderProps) => {\n const {\n channelUrl,\n children,\n isMessageGroupingEnabled = true,\n queries,\n onBeforeSendUserMessage,\n messageLimit,\n onBeforeSendFileMessage,\n onChatHeaderActionClick,\n } = props;\n\n // We didn't decide to support fetching participant list\n const fetchingParticipants = false;\n const globalStore = useSendbirdStateContext();\n\n const sdk = globalStore?.stores?.sdkStore?.sdk as SendbirdOpenChat;\n const sdkInit = globalStore?.stores?.sdkStore?.initialized;\n const user = globalStore?.stores?.userStore?.user;\n const config = globalStore?.config;\n const {\n userId,\n isOnline,\n logger,\n pubSub,\n imageCompression,\n } = config;\n\n // hook variables\n const [messagesStore, messagesDispatcher] = useReducer(messagesReducer, messagesInitialState);\n const {\n allMessages,\n loading,\n initialized,\n currentOpenChannel,\n isInvalid,\n hasMore,\n lastMessageTimestamp,\n operators,\n bannedParticipantIds,\n mutedParticipantIds,\n } = messagesStore;\n // ref\n const messageInputRef = useRef(null); // useSendMessageCallback\n const conversationScrollRef = useRef(null); // useScrollAfterSendMessageCallback\n\n // const\n const userFilledMessageListParams = queries?.messageListParams;\n const disabled = !initialized\n || !isOnline\n || utils.isDisabledBecauseFrozen(currentOpenChannel, userId)\n || utils.isDisabledBecauseMuted(mutedParticipantIds, userId);\n\n // useMemo\n const amIBanned = useMemo(() => {\n return bannedParticipantIds.indexOf(user.userId) >= 0;\n }, [channelUrl, bannedParticipantIds, user]);\n const amIMuted = useMemo(() => {\n return mutedParticipantIds.indexOf(user.userId) >= 0;\n }, [channelUrl, mutedParticipantIds, user]);\n const amIOperator = useMemo(() => {\n return operators.map(operator => operator.userId).indexOf(user.userId) >= 0;\n }, [channelUrl, operators, user]);\n\n // use hooks\n useSetChannel(\n { channelUrl, sdkInit, fetchingParticipants, userId, currentOpenChannel },\n { sdk, logger, messagesDispatcher },\n );\n\n const checkScrollBottom = useCheckScrollBottom(\n { conversationScrollRef },\n { logger },\n );\n useHandleChannelEvents(\n { currentOpenChannel, checkScrollBottom },\n { sdk, logger, messagesDispatcher },\n );\n useInitialMessagesFetch(\n { currentOpenChannel, userFilledMessageListParams },\n { logger, messagesDispatcher },\n );\n\n const fetchMore: boolean = utils.shouldFetchMore(allMessages?.length, messageLimit);\n // donot fetch more for streaming\n const onScroll = useScrollCallback(\n { currentOpenChannel, lastMessageTimestamp, fetchMore },\n { sdk, logger, messagesDispatcher, hasMore, userFilledMessageListParams },\n );\n const handleSendMessage = useSendMessageCallback(\n { currentOpenChannel, onBeforeSendUserMessage, checkScrollBottom, messageInputRef },\n { sdk, logger, messagesDispatcher },\n );\n const handleFileUpload = useFileUploadCallback(\n { currentOpenChannel, onBeforeSendFileMessage, checkScrollBottom, imageCompression },\n { sdk, logger, messagesDispatcher },\n );\n const updateMessage = useUpdateMessageCallback(\n { currentOpenChannel, onBeforeSendUserMessage },\n { logger, messagesDispatcher },\n );\n const deleteMessage = useDeleteMessageCallback(\n { currentOpenChannel },\n { logger, messagesDispatcher },\n );\n const resendMessage = useResendMessageCallback(\n { currentOpenChannel },\n { logger, messagesDispatcher },\n );\n\n useTrimMessageList(\n { messagesLength: allMessages?.length, messageLimit },\n { messagesDispatcher, logger }\n );\n\n // handle API calls from withSendbird\n useEffect(() => {\n const subscriber = new Map();\n if (!pubSub || !pubSub.subscribe) {\n return;\n }\n subscriber.set(topics.SEND_USER_MESSAGE, pubSub.subscribe(topics.SEND_USER_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast();\n if (channel && (channelUrl === channel?.url)) {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: message,\n });\n }\n }));\n subscriber.set(topics.SEND_MESSAGE_START, pubSub.subscribe(topics.SEND_MESSAGE_START, (msg) => {\n const { channel, message } = msg;\n if (channel && (channelUrl === channel?.url)) {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_START,\n payload: { message, channel },\n });\n }\n }));\n subscriber.set(topics.SEND_FILE_MESSAGE, pubSub.subscribe(topics.SEND_FILE_MESSAGE, (msg) => {\n const { channel, message } = msg;\n scrollIntoLast();\n if (channel && (channelUrl === channel?.url)) {\n messagesDispatcher({\n type: messageActionTypes.SENDING_MESSAGE_SUCCEEDED,\n payload: { message, channel },\n });\n }\n }));\n subscriber.set(topics.UPDATE_USER_MESSAGE, pubSub.subscribe(topics.UPDATE_USER_MESSAGE, (msg) => {\n const { channel, message, fromSelector } = msg;\n if (fromSelector && channel && (channelUrl === channel?.url)) {\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_UPDATED,\n payload: { channel, message },\n });\n }\n }));\n subscriber.set(topics.DELETE_MESSAGE, pubSub.subscribe(topics.DELETE_MESSAGE, (msg) => {\n const { channel, messageId } = msg;\n if (channel && (channelUrl === channel?.url)) {\n messagesDispatcher({\n type: messageActionTypes.ON_MESSAGE_DELETED,\n payload: messageId,\n });\n }\n }));\n\n return () => {\n if (subscriber) {\n subscriber.forEach((s) => {\n try {\n s.remove();\n } catch {\n //\n }\n });\n }\n };\n }, [channelUrl, sdkInit]);\n\n return (\n <OpenChannelContext.Provider value={{\n // props\n channelUrl,\n children,\n isMessageGroupingEnabled,\n queries,\n onBeforeSendUserMessage,\n messageLimit,\n onBeforeSendFileMessage,\n onChatHeaderActionClick,\n // store\n allMessages,\n loading,\n initialized,\n currentOpenChannel,\n isInvalid,\n hasMore,\n lastMessageTimestamp,\n operators,\n bannedParticipantIds,\n mutedParticipantIds,\n // derived/utils\n messageInputRef,\n conversationScrollRef,\n disabled,\n amIBanned,\n amIMuted,\n amIOperator,\n checkScrollBottom,\n fetchMore,\n onScroll,\n handleSendMessage,\n handleFileUpload,\n updateMessage,\n deleteMessage,\n resendMessage,\n }}>\n <UserProfileProvider\n isOpenChannel\n renderUserProfile={props?.renderUserProfile}\n disableUserProfile={props?.disableUserProfile}\n >\n {children}\n </UserProfileProvider>\n </OpenChannelContext.Provider>\n );\n}\n\nexport type UseOpenChannelType = () => OpenChannelInterface;\nconst useOpenChannelContext: UseOpenChannelType = () => React.useContext(OpenChannelContext);\n\nexport {\n OpenChannelProvider,\n useOpenChannelContext,\n};\n"],"names":["getMessageCreatedAt","message","format","createdAt","shouldFetchMore","messageLength","maxMessages","scrollIntoLast","intialTry","MAX_TRIES","currentTry","scrollDOM","document","querySelector","scrollTop","scrollHeight","error","setTimeout","isSameGroup","comparingMessage","messageType","sender","_a","userId","_b","message_","comparingMessage_","sendingStatus","_c","_d","compareMessagesForGrouping","prevMessage","currMessage","nextMessage","kFormatter","num","Math","abs","toFixed","concat","isOperator","openChannel","operators","map","operator","indexOf","isDisabledBecauseFrozen","isFrozen","isDisabledBecauseMuted","mutedParticipantIds","fetchWithListQuery","listQuery","logger","eachQueryNextCallback","fetchList","query","hasNext","next","then","users","catch","warning","info","pxToNumber","px","parsed","Number","parseFloat","isNaN","SET_CURRENT_CHANNEL","SET_CHANNEL_INVALID","RESET_MESSAGES","EXIT_CURRENT_CHANNEL","GET_PREV_MESSAGES_START","GET_PREV_MESSAGES_SUCESS","GET_PREV_MESSAGES_FAIL","SENDING_MESSAGE_FAILED","SENDING_MESSAGE_SUCCEEDED","SENDING_MESSAGE_START","RESENDING_MESSAGE_START","FETCH_PARTICIPANT_LIST","FETCH_BANNED_USER_LIST","FETCH_MUTED_USER_LIST","TRIM_MESSAGE_LIST","ON_MESSAGE_RECEIVED","ON_MESSAGE_UPDATED","ON_MESSAGE_DELETED","ON_MESSAGE_DELETED_BY_REQ_ID","ON_OPERATOR_UPDATED","ON_USER_ENTERED","ON_USER_EXITED","ON_USER_MUTED","ON_USER_UNMUTED","ON_USER_BANNED","ON_USER_UNBANNED","ON_CHANNEL_FROZEN","ON_CHANNEL_UNFROZEN","ON_CHANNEL_CHANGED","ON_CHANNEL_DELETED","ON_META_DATA_CREATED","ON_META_DATA_UPDATED","ON_META_DATA_DELETED","ON_META_COUNTERS_CREATED","ON_META_COUNTERS_UPDATED","ON_META_COUNTERS_DELETED","ON_MENTION_RECEIVED","reducer","state","action","type","actionTypes","__assign","allMessages","payload","url","currentOpenChannel","gottenChannel","isInvalid","participants","bannedParticipantIds","loading","isFailed","_e","_f","messages","hasMore","lastMessageTimestamp","actionChannelUrl","receivedMessages_1","_hasMore","_lastMessageTimestamp","stateChannel","stateChannelUrl","filteredAllMessages","filter","find","messageId","compareIds","initialized","__spreadArray","_g","message_1","channel","some","m","reqId","sentMessage_1","newMessages","sentMessage_2","messageLimit","length","sliceAt","slice","eventedChannel","resentMessage_1","fetchedParticipantList","fetchedBannedUserList","every","user","fetchedMutedUserList","receivedMessage","updatedMessage_1","currentChannel","isIdentical","deletedMessageId_1","updatedOperators","enteredUser","exitedUser_1","participant","mutedUser","unmutedUser_1","bannedUser","currentUser","unbannedUser_1","frozenChannel","frozen","unfrozenChannel","changedChannel","deletedChannelUrl","initialState","useSetChannel","channelUrl","sdkInit","fetchingParticipants","sdk","messagesDispatcher","useEffect","exit","call","messageActionTypes","getChannel","enter","bannedParticipantListQuery","createBannedUserListQuery","mutedParticipantListQuery","createMutedUserListQuery","utils","getMyMutedInfo","mutedInfo","isMuted","participantListQuery","createParticipantListQuery","limit","participantCount","useHandleChannelEvents","checkScrollBottom","messageReceiverId","uuidv4","addOpenChannelHandler","channelHandlerParams","onMessageReceived","scrollToEnd","onMessageUpdated","onMessageDeleted","onOperatorUpdated","onUserEntered","onUserExited","onUserMuted","onUserUnmuted","onUserBanned","onUserUnbanned","onChannelFrozen","onChannelUnfrozen","onChannelChanged","onMetaDataCreated","metaData","onMetaDataUpdated","onMetaDataDeleted","metaDataKeys","onMetaCounterCreated","metaCounter","onMetaCounterUpdated","onMetaCounterDeleted","metaCounterKeys","onMentionReceived","onChannelDeleted","channelType","ChannelType","OPEN","ChannelHandler","OpenChannelHandler","removeOpenChannelHandler","useInitialMessagesFetch","userFilledMessageListParams","getMessagesByTimestamp","messageListParams_1","nextResultSize","prevResultSize","isInclusive","includeReactions","Object","keys","forEach","key","messageListParams","Date","getTime","useScrollCallback","fetchMore","useCallback","callback","useCheckScrollBottom","conversationScrollRef","isBottom","current","conversationScroll","clientHeight","useSendMessageCallback","onBeforeSendUserMessage","messageInputRef","text","innerText","createParamsDefault","txt","trim","toString","params","createCustomParams","isBottom_1","pendingMsg_1","sendUserMessage","onPending","pendingMessage","onSucceeded","onFailed","code","useFileUploadCallback","imageCompression","onBeforeSendFileMessage","file","compressionRate_1","compressionRate","resizingWidth_1","resizingWidth","resizingHeight_1","createCustomParams_1","compressibleFileType","compressibleRatio","compressibleDiamensions_1","canCompressImage","createParamsDefault_1","file_","image_1","createElement","src","URL","createObjectURL","onload","revokeObjectURL","canvas","imageWidth","naturalWidth","width","imageHeight","naturalHeight","height","targetWidth","targetHeight","context","getContext","drawImage","toBlob","newImageBlob","compressedFile","File","name","sendFileMessage","requestState","localUrl","useUpdateMessageCallback","updateUserMessage","useDeleteMessageCallback","messageToDelete","deleteMessage","useResendMessageCallback","failedMessage","isResendable","resendUserMessage","resendFileMessage","console","THROTTLE_TIMER","useTrimMessageList","messagesLength","useState","inProgress","setInProgress","OpenChannelContext","React","createContext","undefined","OpenChannelProvider","props","children","isMessageGroupingEnabled","queries","onChatHeaderActionClick","globalStore","useSendbirdStateContext","stores","sdkStore","userStore","config","isOnline","pubSub","_h","useReducer","messagesReducer","messagesInitialState","messagesStore","useRef","disabled","amIBanned","useMemo","amIMuted","amIOperator","onScroll","handleSendMessage","handleFileUpload","updateMessage","resendMessage","subscriber","Map","subscribe","set","topics","msg","fromSelector","s","remove","UserProfileProvider","renderUserProfile","disableUserProfile","useOpenChannelContext","useContext"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UserProfileContext-d1596965.js","sources":["../../src/lib/UserProfileContext.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\n\n/**\n * user profile goes deep inside the component tree\n * use this context as a short circuit to send in values\n */\nconst UserProfileContext = React.createContext({\n disableUserProfile: true,\n isOpenChannel: false,\n renderUserProfile: null,\n});\n\nconst UserProfileProvider = (props) => {\n const { children } = props;\n return (\n <UserProfileContext.Provider value={props}>\n {children}\n </UserProfileContext.Provider>\n );\n};\n\nUserProfileProvider.propTypes = {\n children: PropTypes.oneOfType([\n PropTypes.element,\n PropTypes.arrayOf(PropTypes.element),\n PropTypes.any,\n ]).isRequired,\n // eslint-disable-next-line react/no-unused-prop-types\n isOpenChannel: PropTypes.bool,\n // eslint-disable-next-line react/no-unused-prop-types\n disableUserProfile: PropTypes.bool,\n // eslint-disable-next-line react/no-unused-prop-types\n renderUserProfile: PropTypes.func,\n};\n\nUserProfileProvider.defaultProps = {\n isOpenChannel: false,\n disableUserProfile: false,\n renderUserProfile: null,\n};\n\nexport { UserProfileContext, UserProfileProvider };\n"],"names":["UserProfileContext","React","createContext","disableUserProfile","isOpenChannel","renderUserProfile","UserProfileProvider","props","children","propTypes","PropTypes","oneOfType","element","arrayOf","any","isRequired","bool","func","defaultProps"],"mappings":";;;;;;;;;;AAGA;AACA;AACA;AACA;;AACA,MAAMA,kBAAkB,gBAAGC,yBAAK,CAACC,aAAN,CAAoB;AAC7CC,EAAAA,kBAAkB,EAAE,IADyB;AAE7CC,EAAAA,aAAa,EAAE,KAF8B;AAG7CC,EAAAA,iBAAiB,EAAE,IAAA;AAH0B,CAApB,EAA3B;;AAMMC,MAAAA,mBAAmB,GAAIC,KAAD,IAAW;EACrC,MAAM;AAAEC,IAAAA,QAAAA;AAAF,GAAA,GAAeD,KAArB,CAAA;EACA,oBACEN,yBAAA,CAAA,aAAA,CAAC,kBAAD,CAAoB,QAApB,EAAA;AAA6B,IAAA,KAAK,EAAEM,KAAAA;AAApC,GAAA,EACGC,QADH,CADF,CAAA;AAKD,EAPD;;AASAF,mBAAmB,CAACG,SAApB,GAAgC;EAC9BD,QAAQ,EAAEE,6BAAS,CAACC,SAAV,CAAoB,CAC5BD,6BAAS,CAACE,OADkB,EAE5BF,6BAAS,CAACG,OAAV,CAAkBH,6BAAS,CAACE,OAA5B,CAF4B,EAG5BF,6BAAS,CAACI,GAHkB,CAApB,CAAA,CAIPC,UAL2B;AAM9B;EACAX,aAAa,EAAEM,6BAAS,CAACM,IAPK;AAQ9B;EACAb,kBAAkB,EAAEO,6BAAS,CAACM,IATA;AAU9B;EACAX,iBAAiB,EAAEK,6BAAS,CAACO,IAAAA;AAXC,CAAhC,CAAA;AAcAX,mBAAmB,CAACY,YAApB,GAAmC;AACjCd,EAAAA,aAAa,EAAE,KADkB;AAEjCD,EAAAA,kBAAkB,EAAE,KAFa;AAGjCE,EAAAA,iBAAiB,EAAE,IAAA;AAHc,CAAnC;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_rollupPluginBabelHelpers-93d42928.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-558d367a.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 { AdminMessage, FileMessage, MessageListParams, Reaction, UserMessage } from '@sendbird/chat/message';\nimport { OpenChannel, SendbirdOpenChat } from '@sendbird/chat/openChannel';\n\nimport { getOutgoingMessageState, OutgoingMessageStates } from './exports/getOutgoingMessageState';\nimport { EveryMessage } from '../types';\n\n// https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Complete_list_of_MIME_types\nconst 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 ],\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};\n\nexport interface UIKitMessageTypes {\n ADMIN: \"ADMIN\",\n TEXT: \"TEXT\",\n FILE: \"FILE\",\n THUMBNAIL: \"THUMBNAIL\",\n OG: \"OG\",\n UNKNOWN: \"UNKNOWN\",\n}\nconst UIKitMessageTypes: UIKitMessageTypes = {\n ADMIN: \"ADMIN\",\n TEXT: \"TEXT\",\n FILE: \"FILE\",\n THUMBNAIL: \"THUMBNAIL\",\n OG: \"OG\",\n UNKNOWN: \"UNKNOWN\",\n};\nexport interface UIKitFileTypes {\n IMAGE: \"IMAGE\",\n AUDIO: \"AUDIO\",\n VIDEO: \"VIDEO\",\n GIF: \"GIF\",\n OTHERS: \"OTHERS\",\n}\nexport const UIKitFileTypes: UIKitFileTypes = {\n IMAGE: \"IMAGE\",\n AUDIO: \"AUDIO\",\n VIDEO: \"VIDEO\",\n GIF: \"GIF\",\n OTHERS: \"OTHERS\",\n};\n\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\n\n\nexport type CoreMessageType = EveryMessage;\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 = (message: UserMessage | FileMessage): boolean => (message.sendingStatus === 'succeeded');\nexport const isDeliveredMessage = (channel: GroupChannel, message: UserMessage | FileMessage): boolean => (\n getOutgoingMessageState(channel, message) === OutgoingMessageStates.DELIVERED\n || getOutgoingMessageState(channel, message) === OutgoingMessageStates.READ\n);\nexport const isReadMessage = (channel: GroupChannel, message: UserMessage | FileMessage): boolean => (\n getOutgoingMessageState(channel, message) === OutgoingMessageStates.READ\n);\n// TODO: Remove channel from the params, it seems unnecessary\nexport const isFailedMessage = (message: UserMessage | FileMessage): boolean => (message.sendingStatus === 'failed');\nexport const isPendingMessage = (message: UserMessage | FileMessage): 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: AdminMessage | UserMessage | FileMessage): boolean => (\n message && (message.isAdminMessage?.() || (message['messageType'] && message.messageType === 'admin'))\n);\nexport const isUserMessage = (message: AdminMessage | UserMessage | FileMessage): boolean => (\n message && (message.isUserMessage?.() || (message['messageType'] && message.messageType === 'user'))\n);\nexport const isFileMessage = (message: AdminMessage | UserMessage | FileMessage): boolean => (\n message && (message.isFileMessage?.() || (message['messageType'] && message.messageType === 'file'))\n);\n\nexport const isOGMessage = (message: UserMessage): boolean => !!(\n message && isUserMessage(message) && message?.ogMetaData && message?.ogMetaData?.url\n);\nexport const isTextMessage = (message: UserMessage): boolean => isUserMessage(message) && !isOGMessage(message);\nexport const isThumbnailMessage = (message: FileMessage): boolean => message && isFileMessage(message) && isSupportedFileView(message.type);\nexport const isImageMessage = (message: FileMessage): boolean => message && isThumbnailMessage(message) && isImage(message.type);\nexport const isVideoMessage = (message: FileMessage): boolean => message && isThumbnailMessage(message) && isVideo(message.type);\nexport const isGifMessage = (message: FileMessage): boolean => message && isThumbnailMessage(message) && isGif(message.type);\nexport const isAudioMessage = (message: FileMessage): boolean => message && isFileMessage(message) && isAudio(message.type);\n\nexport const isEditedMessage = (message: AdminMessage | UserMessage | FileMessage): 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 });\nexport const getUIKitMessageType = (message: UserMessage | FileMessage | AdminMessage): 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 if (isFileMessage(message as FileMessage)) {\n return isThumbnailMessage(message as FileMessage) ? UIKitMessageTypes.THUMBNAIL : 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 = (userId: string, message: UserMessage | FileMessage): boolean => (\n (userId && message?.sender?.userId) && userId === message.sender.userId\n);\n\nconst URL_REG = /[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/;\nexport const isUrl = (text: string): boolean => URL_REG.test(text);\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};\n\nexport const getUserName = (user: User): string => (user?.friendName || user?.nickname || user?.userId);\nexport const getSenderName = (message: UserMessage | FileMessage): string => (message.sender && getUserName(message.sender));\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: User): boolean => !!(user.friendDiscoveryKey || user.friendName);\n\nexport const filterMessageListParams = (params: MessageListParams, message: UserMessage | FileMessage): boolean => {\n // @ts-ignore\n if (params?.messageTypeFilter && params.messageTypeFilter !== message.messageType) {\n return false;\n }\n if (params?.customTypesFilter?.length > 0) {\n const customTypes = params.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 UserMessage | FileMessage).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\ninterface SDKChannelListParamsPrivateProps extends GroupChannelListQuery {\n _searchFilter: {\n search_query: string,\n search_fields: Array<'member_nickname' | 'channel_name'>,\n };\n _userIdsFilter: {\n userIds: Array<string>,\n includeMode: boolean,\n queryType: 'AND' | 'OR',\n };\n}\nexport const filterChannelListParams = (params: SDKChannelListParamsPrivateProps, channel: GroupChannel, currentUserId: string): boolean => {\n if (!params?.includeEmpty && channel?.lastMessage === null) {\n return false;\n }\n if (params?._searchFilter?.search_query && params._searchFilter.search_fields?.length > 0) {\n const searchFilter = params._searchFilter;\n const searchQuery = searchFilter.search_query;\n const searchFields = searchFilter.search_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 (params?._userIdsFilter?.userIds?.length > 0) {\n const userIdsFilter = params._userIdsFilter;\n const { includeMode, queryType } = userIdsFilter;\n const userIds: 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 (params?.includeEmpty === false && channel?.lastMessage === null) {\n return false;\n }\n if (params?.includeFrozen === false && channel?.isFrozen === true) {\n return false;\n }\n if (params?.customTypesFilter?.length > 0 && !params.customTypesFilter.includes(channel?.customType)) {\n return false;\n }\n if (params?.customTypeStartsWithFilter && !new RegExp(`^${params.customTypeStartsWithFilter}`).test(channel?.customType)) {\n return false;\n }\n if (params?.channelNameContainsFilter && !channel?.name?.toLowerCase().includes(params.channelNameContainsFilter.toLowerCase())) {\n return false;\n }\n if (params?.nicknameContainsFilter) {\n const lowerCasedSubString = params.nicknameContainsFilter.toLowerCase();\n if (channel?.members?.every((member: Member) => !member.nickname.toLowerCase().includes(lowerCasedSubString))) {\n return false;\n }\n }\n if (params?.channelUrlsFilter?.length > 0 && !params.channelUrlsFilter.includes(channel?.url)) {\n return false;\n }\n if (params?.myMemberStateFilter) {\n switch (params.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 (params?.hiddenChannelFilter) {\n switch (params.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 (params?.unreadChannelFilter) {\n switch (params.unreadChannelFilter) {\n case 'unread_message':\n if (channel?.unreadMessageCount === 0) {\n return false;\n }\n break;\n }\n }\n if (params?.publicChannelFilter) {\n switch (params.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 (params?.superChannelFilter) {\n switch (params.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 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\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 = [];\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","UIKitMessageTypes","ADMIN","TEXT","FILE","THUMBNAIL","OG","UNKNOWN","UIKitFileTypes","GIF","OTHERS","SendingMessageStatus","NONE","SUCCEEDED","FAILED","PENDING","isTextuallyNull","text","isImage","type","indexOf","isVideo","isGif","isSupportedFileView","isAudio","getUIKitFileTypes","__assign","getUIKitFileType","isSentMessage","message","sendingStatus","isReadMessage","channel","getOutgoingMessageState","OutgoingMessageStates","READ","isFailedMessage","isPendingMessage","isSentStatus","state","SENT","DELIVERED","isAdminMessage","_a","call","messageType","isUserMessage","isFileMessage","isOGMessage","ogMetaData","url","isTextMessage","isThumbnailMessage","isImageMessage","isVideoMessage","isGifMessage","isAudioMessage","isEditedMessage","updatedAt","getUIKitMessageTypes","getUIKitMessageType","getSendingMessageStatus","reducer","accumulator","currentValue","Array","isArray","__spreadArray","push","getClassName","classNames","reduce","join","isReactedBy","userId","reaction","userIds","some","reactorUserId","getEmojiTooltipString","memberNicknamesMap","stringSet","you","length","TOOLTIP__YOU","TOOLTIP__AND_YOU","concat","filter","map","get","TOOLTIP__UNKNOWN_USER","URL_REG","isUrl","test","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","emojiCategories","emojiCategory","emojis","prevArr","currArr","getEmojiMapAll","emojiMap","Map","forEach","category","emoji","key","set","getUserName","user","friendName","nickname","getSenderName","sender","hasSameMembers","a","b","sortedA","sort","sortedB","i","isFriend","friendDiscoveryKey","filterMessageListParams","params","messageTypeFilter","customTypesFilter","customTypes","item","includes","customType","senderUserIdsFilter","_b","_c","_d","messageSender","_e","includeParentMessageInfo","parentMessageId","parentMessage","filterChannelListParams","currentUserId","includeEmpty","lastMessage","_searchFilter","search_query","search_fields","searchFilter","searchQuery_1","searchFields","searchField","name","toLowerCase","members","member","_userIdsFilter","userIdsFilter","includeMode","queryType","memberIds_1","_f","every","includeFrozen","isFrozen","_g","customTypeStartsWithFilter","RegExp","channelNameContainsFilter","_h","nicknameContainsFilter","lowerCasedSubString_1","_j","_k","channelUrlsFilter","myMemberStateFilter","myMemberState","inviter","hiddenChannelFilter","isHidden","hiddenState","unreadChannelFilter","unreadMessageCount","publicChannelFilter","isPublic","superChannelFilter","isSuper","binarySearch","list","number","pivot","leftList","slice","rightList","getChannelsWithUpsertedChannel","channels","ch","targetIndex","createdAt","StringObjType","convertWordToStringObj","word","_users","_template","users","template","resultArray","regex","excutionResult","lastIndex","template_1","endIndex","startIndex","normalText","normal","value","mentionedUser","find","mention","exec","arrayEqual","array1","array2"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index-7ab4005e.js","sources":["../../src/smart-components/EditUserProfile/context/EditUserProfIleProvider.tsx","../../src/smart-components/EditUserProfile/components/EditUserProfileUI/index.tsx"],"sourcesContent":["import type { User } from '@sendbird/chat';\nimport React, { useMemo } from 'react';\n\nconst EditUserProfileProviderContext = React.createContext(undefined);\n\nexport interface EditUserProfileProps {\n children?: React.ReactElement;\n onCancel?(): void;\n onThemeChange?(theme: string): void;\n onEditProfile?(updatedUser: User): void;\n}\n\nexport interface EditUserProfileProviderInterface {\n onCancel?(): void;\n onThemeChange?(theme: string): void;\n onEditProfile?(updatedUser: User): void;\n}\n\nconst EditUserProfileProvider: React.FC<EditUserProfileProps> = (props: EditUserProfileProps) => {\n const {\n children,\n onEditProfile,\n onCancel,\n onThemeChange,\n } = props;\n\n const value = useMemo(() => {\n return {\n onEditProfile,\n onCancel,\n onThemeChange,\n };\n }, []);\n\n return (\n <EditUserProfileProviderContext.Provider value={value}>\n {children}\n </EditUserProfileProviderContext.Provider>\n );\n}\n\nconst useEditUserProfileContext = (): EditUserProfileProviderInterface => (\n React.useContext(EditUserProfileProviderContext)\n);\n\nexport {\n EditUserProfileProvider,\n useEditUserProfileContext,\n};\n","import './edit-user-profile.scss';\n\nimport React, {\n ReactElement,\n useRef,\n useState,\n useContext,\n} from 'react';\nimport { useEditUserProfileContext } from '../../context/EditUserProfIleProvider';\n\nimport Modal from '../../../../ui/Modal';\nimport { LocalizationContext } from '../../../../lib/LocalizationContext';\nimport useSendbirdStateContext from '../../../../hooks/useSendbirdStateContext';\n\nimport Input, { InputLabel } from '../../../../ui/Input';\nimport Avatar from '../../../../ui/Avatar';\nimport Icon, { IconTypes } from '../../../../ui/Icon';\nimport { ButtonTypes } from '../../../../ui/Button';\nimport Label, { LabelColors, LabelTypography } from '../../../../ui/Label';\nimport TextButton from '../../../../ui/TextButton';\nimport { noop } from '../../../../utils/utils';\nimport * as userActions from '../../../../lib/dux/user/actionTypes';\n\nexport default function EditUserProfile(): ReactElement {\n const editProfileProps = useEditUserProfileContext();\n const store = useSendbirdStateContext();\n const hiddenInputRef = useRef(null);\n const inputRef = useRef(null);\n const formRef = useRef(null);\n const { stringSet } = useContext(LocalizationContext);\n const [currentImg, setCurrentImg] = useState(null);\n const [newFile, setNewFile] = useState(null);\n\n const {\n onEditProfile,\n onCancel,\n onThemeChange,\n } = editProfileProps;\n\n const theme = store?.config?.theme || 'light';\n const changeTheme = store?.config?.setCurrenttheme || noop;\n const user = store?.stores?.userStore?.user;\n const sdk = store?.stores?.sdkStore?.sdk;\n const userDispatcher = store?.dispatchers?.userDispatcher;\n\n return (\n <Modal\n titleText={stringSet.EDIT_PROFILE__TITLE}\n submitText={stringSet.BUTTON__SAVE}\n type={ButtonTypes.PRIMARY}\n onCancel={onCancel}\n onSubmit={() => {\n if (user?.nickname !== '' && !inputRef.current.value) {\n if (formRef.current.reportValidity) { // might not work in explorer\n formRef.current.reportValidity();\n }\n return;\n }\n sdk?.updateCurrentUserInfo({\n nickname: inputRef?.current?.value,\n profileImage: newFile,\n }).then((updatedUser) => {\n userDispatcher({ type: userActions.UPDATE_USER_INFO, payload: updatedUser });\n if (onEditProfile && typeof onEditProfile === 'function') {\n onEditProfile(updatedUser);\n }\n });\n }}\n >\n <form\n className=\"sendbird-edit-user-profile\"\n ref={formRef}\n onSubmit={(e) => { e.preventDefault(); }}\n >\n <section className=\"sendbird-edit-user-profile__img\">\n <InputLabel>\n {stringSet.EDIT_PROFILE__IMAGE_LABEL}\n </InputLabel>\n <div className=\"sendbird-edit-user-profile__img__avatar\">\n <Avatar\n width=\"80px\"\n height=\"80px\"\n src={currentImg || user?.profileUrl}\n />\n </div>\n <input\n ref={hiddenInputRef}\n type=\"file\"\n accept=\"image/gif, image/jpeg, image/png\"\n style={{ display: 'none' }}\n onChange={(e) => {\n setCurrentImg(URL.createObjectURL(e.target.files[0]));\n setNewFile(e.target.files[0]);\n hiddenInputRef.current.value = '';\n }}\n />\n <TextButton\n className=\"sendbird-edit-user-profile__img__avatar-button\"\n disableUnderline\n onClick={() => hiddenInputRef.current.click()}\n >\n <Label type={LabelTypography.BUTTON_1} color={LabelColors.PRIMARY}>\n {stringSet.EDIT_PROFILE__IMAGE_UPLOAD}\n </Label>\n </TextButton>\n </section>\n <section className=\"sendbird-edit-user-profile__name\">\n <InputLabel>\n {stringSet.EDIT_PROFILE__NICKNAME_LABEL}\n </InputLabel>\n <Input\n required={user?.nickname !== ''}\n name=\"sendbird-edit-user-profile__name__input\"\n ref={inputRef}\n value={user?.nickname}\n placeHolder={stringSet.EDIT_PROFILE__NICKNAME_PLACEHOLDER}\n />\n </section>\n <section className=\"sendbird-edit-user-profile__userid\">\n <InputLabel>\n {/* userID */}\n {stringSet.EDIT_PROFILE__USERID_LABEL}\n </InputLabel>\n <Input\n disabled\n name=\"sendbird-edit-user-profile__userid__input\"\n value={user?.userId}\n />\n </section>\n <section className=\"sendbird-edit-user-profile__theme\">\n <InputLabel>\n {stringSet.EDIT_PROFILE__THEME_LABEL}\n </InputLabel>\n <div className=\"sendbird-edit-user-profile__theme__theme-icon\">\n {\n theme === 'dark'\n ? (\n <Icon\n onClick={() => {\n changeTheme('light');\n onThemeChange?.('light');\n // if (onThemeChange && typeof onThemeChange === 'function') {\n // onThemeChange('light');\n // }\n }}\n type={IconTypes.TOGGLE_ON}\n width={44}\n height={24}\n />\n )\n : (\n <Icon\n onClick={() => {\n changeTheme('dark');\n onThemeChange?.('dark');\n // if (onThemeChange && typeof onThemeChange === 'function') {\n // onThemeChange('dark');\n // }\n }}\n type={IconTypes.TOGGLE_OFF}\n width={44}\n height={24}\n />\n )\n }\n </div>\n </section>\n </form>\n </Modal>\n );\n}\n\n"],"names":["EditUserProfileProviderContext","React","createContext","undefined","EditUserProfileProvider","props","children","onEditProfile","onCancel","onThemeChange","value","useMemo","useEditUserProfileContext","useContext","EditUserProfile","editProfileProps","store","useSendbirdStateContext","hiddenInputRef","useRef","inputRef","formRef","stringSet","LocalizationContext","_h","useState","currentImg","setCurrentImg","_j","newFile","setNewFile","theme","_a","config","changeTheme","_b","setCurrenttheme","noop","user","_d","_c","stores","userStore","sdk","_f","_e","sdkStore","userDispatcher","_g","dispatchers","Modal","EDIT_PROFILE__TITLE","BUTTON__SAVE","ButtonTypes","PRIMARY","nickname","current","reportValidity","updateCurrentUserInfo","profileImage","then","updatedUser","type","userActions","payload","e","preventDefault","InputLabel","EDIT_PROFILE__IMAGE_LABEL","Avatar","profileUrl","display","URL","createObjectURL","target","files","TextButton","click","Label","LabelTypography","BUTTON_1","LabelColors","EDIT_PROFILE__IMAGE_UPLOAD","EDIT_PROFILE__NICKNAME_LABEL","Input","EDIT_PROFILE__NICKNAME_PLACEHOLDER","EDIT_PROFILE__USERID_LABEL","userId","EDIT_PROFILE__THEME_LABEL","Icon","IconTypes","TOGGLE_ON","TOGGLE_OFF"],"mappings":";;;;;;;;;;;;;;;;;;;AAGA,IAAMA,8BAA8B,gBAAGC,yBAAK,CAACC,aAAN,CAAoBC,SAApB,CAAvC,CAAA;;AAeA,IAAMC,uBAAuB,GAAmC,UAACC,KAAD,EAA4B;AAExF,EAAA,IAAAC,QAAQ,GAIND,KAAK,SAJP;AAAA,MACAE,aAAa,GAGXF,KAAK,CAAAE,aAJP;AAAA,MAEAC,QAAQ,GAENH,KAAK,CAFCG,QAFR;AAAA,MAGAC,aAAa,GACXJ,KAAK,cAJP,CAAA;AAMF,EAAA,IAAMK,KAAK,GAAGC,aAAO,CAAC,YAAA;IACpB,OAAO;AACLJ,MAAAA,aAAa,EAAAA,aADR;AAELC,MAAAA,QAAQ,EAAAA,QAFH;AAGLC,MAAAA,aAAa,EAAAA,aAAAA;KAHf,CAAA;GADmB,EAMlB,EANkB,CAArB,CAAA;EAQA,oBACER,yBAAA,CAAA,aAAA,CAAC,8BAAD,CAAgC,QAAhC,EAAA;AAAyC,IAAA,KAAK,EAAES,KAAAA;AAAhD,GAAA,EACGJ,QADH,CADF,CAAA;AAKD,EArBD;;AAuBA,IAAMM,yBAAyB,GAAG,YAAwC;AAAA,EAAA,OACxEX,yBAAK,CAACY,UAAN,CAAiBb,8BAAjB,CADwE,CAAA;AAEzE,CAFD;;AClBc,SAAUc,eAAV,GAAyB;;;EACrC,IAAMC,gBAAgB,GAAGH,yBAAyB,EAAlD,CAAA;EACA,IAAMI,KAAK,GAAGC,uBAAuB,EAArC,CAAA;AACA,EAAA,IAAMC,cAAc,GAAGC,YAAM,CAAC,IAAD,CAA7B,CAAA;AACA,EAAA,IAAMC,QAAQ,GAAGD,YAAM,CAAC,IAAD,CAAvB,CAAA;AACA,EAAA,IAAME,OAAO,GAAGF,YAAM,CAAC,IAAD,CAAtB,CAAA;AACQ,EAAA,IAAAG,SAAS,GAAKT,gBAAU,CAACU,uCAAD,CAAV,UAAd,CAAA;;AACF,EAAA,IAAAC,EAAA,GAA8BC,cAAQ,CAAC,IAAD,CAAtC;AAAA,MAACC,UAAU,GAAAF,EAAA,CAAA,CAAA,CAAX;AAAA,MAAaG,aAAa,GAAAH,EAAA,CAAA,CAAA,CAA1B,CAAA;;AACA,EAAA,IAAAI,EAAA,GAAwBH,cAAQ,CAAC,IAAD,CAAhC;AAAA,MAACI,OAAO,GAAAD,EAAA,CAAA,CAAA,CAAR;AAAA,MAAUE,UAAU,GAAAF,EAAA,CAAA,CAAA,CAApB,CAAA;;AAGJ,EAAA,IAAArB,aAAa,GAGXQ,gBAAgB,CAAAR,aAHlB;AAAA,MACAC,QAAQ,GAENO,gBAAgB,CAAAP,QAHlB;AAAA,MAEAC,aAAa,GACXM,gBAAgB,cAHlB,CAAA;AAKF,EAAA,IAAMgB,KAAK,GAAG,CAAA,CAAAC,EAAA,GAAAhB,KAAK,KAAL,IAAA,IAAAA,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,KAAK,CAAEiB,MAAP,MAAa,IAAb,IAAaD,EAAA,KAAA,KAAA,CAAb,GAAa,KAAA,CAAb,GAAaA,EAAA,CAAED,KAAf,KAAwB,OAAtC,CAAA;AACA,EAAA,IAAMG,WAAW,GAAG,CAAA,CAAAC,EAAA,GAAAnB,KAAK,KAAL,IAAA,IAAAA,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,KAAK,CAAEiB,MAAP,MAAa,IAAb,IAAaE,EAAA,KAAA,KAAA,CAAb,GAAa,KAAA,CAAb,GAAaA,EAAA,CAAEC,eAAf,KAAkCC,UAAtD,CAAA;EACA,IAAMC,IAAI,GAAG,CAAAC,EAAA,GAAA,CAAAC,EAAA,GAAAxB,KAAK,KAAL,IAAA,IAAAA,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,KAAK,CAAEyB,MAAP,MAAa,IAAb,IAAaD,EAAA,KAAA,KAAA,CAAb,GAAa,KAAA,CAAb,GAAaA,EAAA,CAAEE,SAAf,MAAwB,IAAxB,IAAwBH,EAAA,KAAA,KAAA,CAAxB,GAAwB,KAAA,CAAxB,GAAwBA,EAAA,CAAED,IAAvC,CAAA;EACA,IAAMK,GAAG,GAAG,CAAAC,EAAA,GAAA,CAAAC,EAAA,GAAA7B,KAAK,KAAL,IAAA,IAAAA,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,KAAK,CAAEyB,MAAP,MAAa,IAAb,IAAaI,EAAA,KAAA,KAAA,CAAb,GAAa,KAAA,CAAb,GAAaA,EAAA,CAAEC,QAAf,MAAuB,IAAvB,IAAuBF,EAAA,KAAA,KAAA,CAAvB,GAAuB,KAAA,CAAvB,GAAuBA,EAAA,CAAED,GAArC,CAAA;AACA,EAAA,IAAMI,cAAc,GAAG,CAAAC,EAAA,GAAAhC,KAAK,KAAL,IAAA,IAAAA,KAAK,KAAL,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,KAAK,CAAEiC,WAAP,MAAoB,IAApB,IAAoBD,EAAA,KAAA,KAAA,CAApB,GAAoB,KAAA,CAApB,GAAoBA,EAAA,CAAAD,cAA3C,CAAA;AAEA,EAAA,oBACE9C,wCAACiD,mBAAD,EAAA;IACE,SAAS,EAAE5B,SAAS,CAAC6B,mBADvB;IAEE,UAAU,EAAE7B,SAAS,CAAC8B,YAFxB;IAGE,IAAI,EAAEC,qBAAW,CAACC,OAHpB;AAIE,IAAA,QAAQ,EAAE9C,QAJZ;AAKE,IAAA,QAAQ,EAAE,YAAA;;;MACR,IAAI,CAAA8B,IAAI,KAAA,IAAJ,IAAAA,IAAI,KAAA,KAAA,CAAJ,GAAI,KAAA,CAAJ,GAAAA,IAAI,CAAEiB,QAAN,MAAmB,EAAnB,IAAyB,CAACnC,QAAQ,CAACoC,OAAT,CAAiB9C,KAA/C,EAAsD;AACpD,QAAA,IAAIW,OAAO,CAACmC,OAAR,CAAgBC,cAApB,EAAoC;AAAE;UACpCpC,OAAO,CAACmC,OAAR,CAAgBC,cAAhB,EAAA,CAAA;AACD,SAAA;;AACD,QAAA,OAAA;AACD,OAAA;;AACDd,MAAAA,GAAG,SAAH,IAAAA,GAAG,KAAA,KAAA,CAAH,GAAG,KAAA,CAAH,GAAAA,GAAG,CAAEe,qBAAL,CAA2B;AACzBH,QAAAA,QAAQ,EAAE,CAAAvB,EAAA,GAAAZ,QAAQ,KAAR,IAAA,IAAAA,QAAQ,WAAR,SAAA,GAAAA,QAAQ,CAAEoC,OAAV,MAAiB,IAAjB,IAAiBxB,EAAA,KAAA,KAAA,CAAjB,GAAiB,KAAA,CAAjB,GAAiBA,EAAA,CAAEtB,KADJ;AAEzBiD,QAAAA,YAAY,EAAE9B,OAAAA;AAFW,OAA3B,CAGG+B,CAAAA,IAHH,CAGQ,UAACC,WAAD,EAAY;AAClBd,QAAAA,cAAc,CAAC;UAAEe,IAAI,EAAEC,4BAAR;AAAsCC,UAAAA,OAAO,EAAEH,WAAAA;AAA/C,SAAD,CAAd,CAAA;;AACA,QAAA,IAAItD,aAAa,IAAI,OAAOA,aAAP,KAAyB,UAA9C,EAA0D;UACxDA,aAAa,CAACsD,WAAD,CAAb,CAAA;AACD,SAAA;AACF,OARD,CAAA,CAAA;AASD,KAAA;GAED,eAAA5D,yBAAA,CAAA,aAAA,CAAA,MAAA,EAAA;AACE,IAAA,SAAS,EAAC,4BADZ;AAEE,IAAA,GAAG,EAAEoB,OAFP;IAGE,QAAQ,EAAE,UAAC4C,CAAD,EAAE;AAAOA,MAAAA,CAAC,CAACC,cAAF,EAAA,CAAA;AAAqB,KAAA;GAExC,eAAAjE,yBAAA,CAAA,aAAA,CAAA,SAAA,EAAA;AAAS,IAAA,SAAS,EAAC,iCAAA;AAAnB,GAAA,eACEA,wCAACkE,mBAAD,EAAA,IAAA,EACG7C,SAAS,CAAC8C,yBADb,CADF,eAIEnE,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAC,yCAAA;AAAf,GAAA,eACEA,wCAACoE,oBAAD,EAAA;AACE,IAAA,KAAK,EAAC,MADR;AAEE,IAAA,MAAM,EAAC,MAFT;AAGE,IAAA,GAAG,EAAE3C,UAAU,KAAIY,IAAI,KAAA,IAAJ,IAAAA,IAAI,KAAA,KAAA,CAAJ,GAAI,KAAA,CAAJ,GAAAA,IAAI,CAAEgC,UAAV,CAAA;AAHjB,GAAA,CADF,CAJF,eAWErE,yBAAA,CAAA,aAAA,CAAA,OAAA,EAAA;AACE,IAAA,GAAG,EAAEiB,cADP;AAEE,IAAA,IAAI,EAAC,MAFP;AAGE,IAAA,MAAM,EAAC,kCAHT;AAIE,IAAA,KAAK,EAAE;AAAEqD,MAAAA,OAAO,EAAE,MAAA;KAJpB;IAKE,QAAQ,EAAE,UAACN,CAAD,EAAE;AACVtC,MAAAA,aAAa,CAAC6C,GAAG,CAACC,eAAJ,CAAoBR,CAAC,CAACS,MAAF,CAASC,KAAT,CAAe,CAAf,CAApB,CAAD,CAAb,CAAA;MACA7C,UAAU,CAACmC,CAAC,CAACS,MAAF,CAASC,KAAT,CAAe,CAAf,CAAD,CAAV,CAAA;AACAzD,MAAAA,cAAc,CAACsC,OAAf,CAAuB9C,KAAvB,GAA+B,EAA/B,CAAA;AACD,KAAA;GApBL,CAAA,eAsBET,wCAAC2E,aAAD,EAAA;AACE,IAAA,SAAS,EAAC,gDADZ;AAEE,IAAA,gBAAgB,EAFlB,IAAA;AAGE,IAAA,OAAO,EAAE;AAAM,MAAA,OAAA1D,cAAc,CAACsC,OAAf,CAAuBqB,KAAvB,EAAA,CAAA;AAA8B,KAAA;AAH/C,GAAA,eAKE5E,wCAAC6E,cAAD,EAAA;IAAO,IAAI,EAAEC,wBAAe,CAACC,QAA7B;IAAuC,KAAK,EAAEC,oBAAW,CAAC3B,OAAAA;AAA1D,GAAA,EACGhC,SAAS,CAAC4D,0BADb,CALF,CAtBF,CALF,eAqCEjF,yBAAA,CAAA,aAAA,CAAA,SAAA,EAAA;AAAS,IAAA,SAAS,EAAC,kCAAA;GACjB,eAAAA,yBAAA,CAAA,aAAA,CAACkE,mBAAD,EACG7C,IAAAA,EAAAA,SAAS,CAAC6D,4BADb,CADF,eAIElF,yBAAA,CAAA,aAAA,CAACmF,mBAAD,EAAA;AACE,IAAA,QAAQ,EAAE,CAAA9C,IAAI,SAAJ,IAAAA,IAAI,KAAA,KAAA,CAAJ,GAAI,KAAA,CAAJ,GAAAA,IAAI,CAAEiB,QAAN,MAAmB,EAD/B;AAEE,IAAA,IAAI,EAAC,yCAFP;AAGE,IAAA,GAAG,EAAEnC,QAHP;AAIE,IAAA,KAAK,EAAEkB,IAAI,KAAA,IAAJ,IAAAA,IAAI,KAAJ,KAAA,CAAA,GAAA,KAAA,CAAA,GAAAA,IAAI,CAAEiB,QAJf;IAKE,WAAW,EAAEjC,SAAS,CAAC+D,kCAAAA;AALzB,GAAA,CAJF,CArCF,eAiDEpF,yBAAA,CAAA,aAAA,CAAA,SAAA,EAAA;AAAS,IAAA,SAAS,EAAC,oCAAA;GACjB,eAAAA,yBAAA,CAAA,aAAA,CAACkE,mBAAD,EAEG7C,IAAAA,EAAAA,SAAS,CAACgE,0BAFb,CADF,eAKErF,yBAAA,CAAA,aAAA,CAACmF,mBAAD,EAAA;AACE,IAAA,QAAQ,EADV,IAAA;AAEE,IAAA,IAAI,EAAC,2CAFP;AAGE,IAAA,KAAK,EAAE9C,IAAI,SAAJ,IAAAA,IAAI,KAAA,KAAA,CAAJ,GAAI,KAAA,CAAJ,GAAAA,IAAI,CAAEiD,MAAAA;AAHf,GAAA,CALF,CAjDF,eA4DEtF,yBAAA,CAAA,aAAA,CAAA,SAAA,EAAA;AAAS,IAAA,SAAS,EAAC,mCAAA;AAAnB,GAAA,eACEA,wCAACkE,mBAAD,EAAA,IAAA,EACG7C,SAAS,CAACkE,yBADb,CADF,eAIEvF,yBAAA,CAAA,aAAA,CAAA,KAAA,EAAA;AAAK,IAAA,SAAS,EAAC,+CAAA;AAAf,GAAA,EAEI8B,KAAK,KAAK,MAAV,gBAEI9B,wCAACwF,kBAAD,EAAA;AACE,IAAA,OAAO,EAAE,YAAA;MACPvD,WAAW,CAAC,OAAD,CAAX,CAAA;AACAzB,MAAAA,aAAa,SAAb,IAAAA,aAAa,KAAA,KAAA,CAAb,GAAa,KAAA,CAAb,GAAAA,aAAa,CAAG,OAAH,CAAb,CAFO;AAIP;AACA;KANJ;IAQE,IAAI,EAAEiF,iBAAS,CAACC,SARlB;AASE,IAAA,KAAK,EAAE,EATT;AAUE,IAAA,MAAM,EAAE,EAAA;GAZd,CAAA,gBAgBI1F,wCAACwF,kBAAD,EAAA;AACE,IAAA,OAAO,EAAE,YAAA;MACPvD,WAAW,CAAC,MAAD,CAAX,CAAA;AACAzB,MAAAA,aAAa,SAAb,IAAAA,aAAa,KAAA,KAAA,CAAb,GAAa,KAAA,CAAb,GAAAA,aAAa,CAAG,MAAH,CAAb,CAFO;AAIP;AACA;KANJ;IAQE,IAAI,EAAEiF,iBAAS,CAACE,UARlB;AASE,IAAA,KAAK,EAAE,EATT;AAUE,IAAA,MAAM,EAAE,EAAA;GA5BlB,CAAA,CAJF,CA5DF,CAvBF,CADF,CAAA;AA6HD;;;;;"}
|