@sendbird/uikit-react 3.0.0-rc.0 → 3.0.0-rc.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/App.js +33 -33
- package/CHANGELOG.md +1 -1
- package/Channel/components/ChannelHeader.js +18 -18
- package/Channel/components/ChannelUI.js +25 -25
- package/Channel/components/FileViewer.js +17 -17
- package/Channel/components/FrozenNotification.js +5 -5
- package/Channel/components/Message.js +22 -22
- package/Channel/components/MessageInput.js +19 -19
- package/Channel/components/MessageList.js +24 -24
- package/Channel/components/RemoveMessageModal.js +20 -20
- package/Channel/components/SuggestedMentionList.js +18 -18
- package/Channel/components/TypingIndicator.js +17 -17
- package/Channel/components/UnreadCount.js +5 -5
- package/Channel/context.js +16 -16
- package/Channel.js +25 -25
- package/ChannelList/components/AddChannel.js +15 -15
- package/ChannelList/components/ChannelListHeader.js +8 -8
- package/ChannelList/components/ChannelListUI.js +29 -29
- package/ChannelList/components/ChannelPreview.js +22 -22
- package/ChannelList/components/ChannelPreviewAction.js +17 -17
- package/ChannelList/context.js +11 -11
- package/ChannelList.js +29 -29
- package/{ChannelListProvider-76b1ec23.js → ChannelListProvider-c3810392.js} +9 -9
- package/{ChannelListProvider-76b1ec23.js.map → ChannelListProvider-c3810392.js.map} +1 -1
- package/{ChannelProvider-c0ed5fae.js → ChannelProvider-03ec9238.js} +11 -11
- package/{ChannelProvider-c0ed5fae.js.map → ChannelProvider-03ec9238.js.map} +1 -1
- package/ChannelSettings/components/ChannelProfile.js +14 -14
- package/ChannelSettings/components/ChannelSettingsUI.js +19 -19
- package/ChannelSettings/components/EditDetailsModal.js +14 -14
- package/ChannelSettings/components/LeaveChannel.js +11 -11
- package/ChannelSettings/components/ModerationPanel.js +16 -16
- package/ChannelSettings/components/UserListItem.js +13 -13
- package/ChannelSettings/components/UserPanel.js +15 -15
- package/ChannelSettings/context.js +4 -4
- package/ChannelSettings.js +19 -19
- package/CreateChannel/components/CreateChannelUI.js +15 -15
- package/CreateChannel/components/InviteUsers.js +15 -15
- package/CreateChannel/components/SelectChannelType.js +11 -11
- package/CreateChannel/context.js +5 -5
- package/CreateChannel.js +15 -15
- package/{CreateChannelProvider-8c72aa06.js → CreateChannelProvider-adb7afa8.js} +1 -1
- package/{CreateChannelProvider-8c72aa06.js.map → CreateChannelProvider-adb7afa8.js.map} +1 -1
- package/EditUserProfile/components/EditUserProfileUI.js +14 -14
- package/EditUserProfile.js +14 -14
- package/{LocalizationContext-fb3dafcd.js → LocalizationContext-0293a3fd.js} +3 -3
- package/{LocalizationContext-fb3dafcd.js.map → LocalizationContext-0293a3fd.js.map} +1 -1
- package/{MemberList-01d3c8bf.js → MemberList-4e057ef8.js} +5 -5
- package/{MemberList-01d3c8bf.js.map → MemberList-4e057ef8.js.map} +1 -1
- package/MessageSearch/components/MessageSearchUI.js +12 -12
- package/MessageSearch/context.js +3 -3
- package/MessageSearch.js +12 -12
- package/OpenChannel/components/FrozenChannelNotification.js +5 -5
- package/OpenChannel/components/OpenChannelHeader.js +15 -15
- package/OpenChannel/components/OpenChannelInput.js +19 -19
- package/OpenChannel/components/OpenChannelMessage.js +24 -24
- package/OpenChannel/components/OpenChannelMessageList.js +26 -26
- package/OpenChannel/components/OpenChannelUI.js +26 -26
- package/OpenChannel/context.js +12 -12
- package/OpenChannel.js +26 -26
- package/{OpenChannelProvider-0fb27972.js → OpenChannelProvider-0572862e.js} +9 -9
- package/{OpenChannelProvider-0fb27972.js.map → OpenChannelProvider-0572862e.js.map} +1 -1
- package/OpenChannelSettings/components/EditDetailsModal.js +14 -14
- package/OpenChannelSettings/components/OpenChannelProfile.js +14 -14
- package/OpenChannelSettings/components/OpenChannelSettingsUI.js +18 -18
- package/OpenChannelSettings/components/OperatorUI.js +17 -17
- package/OpenChannelSettings/components/ParticipantUI.js +15 -15
- package/OpenChannelSettings/context.js +3 -3
- package/OpenChannelSettings.js +18 -18
- package/README.md +1 -1
- package/SendbirdProvider.js +12 -12
- package/{UserProfileContext-6a387a08.js → UserProfileContext-bcfe2804.js} +1 -1
- package/{UserProfileContext-6a387a08.js.map → UserProfileContext-bcfe2804.js.map} +1 -1
- package/{__bundle-7dfccc8c-03df3ada.js → __bundle-7dfccc8c-a0cba188.js} +1 -1
- package/{__bundle-7dfccc8c-03df3ada.js.map → __bundle-7dfccc8c-a0cba188.js.map} +1 -1
- package/{_rollupPluginBabelHelpers-084fb589.js → _rollupPluginBabelHelpers-38569358.js} +1 -1
- package/{_rollupPluginBabelHelpers-084fb589.js.map → _rollupPluginBabelHelpers-38569358.js.map} +1 -1
- package/{actionTypes-302a2801.js → actionTypes-c12e9c30.js} +1 -1
- package/{actionTypes-302a2801.js.map → actionTypes-c12e9c30.js.map} +1 -1
- package/cjs/App.js +33 -33
- package/cjs/Channel/components/ChannelHeader.js +18 -18
- package/cjs/Channel/components/ChannelUI.js +25 -25
- package/cjs/Channel/components/FileViewer.js +17 -17
- package/cjs/Channel/components/FrozenNotification.js +5 -5
- package/cjs/Channel/components/Message.js +22 -22
- package/cjs/Channel/components/MessageInput.js +19 -19
- package/cjs/Channel/components/MessageList.js +24 -24
- package/cjs/Channel/components/RemoveMessageModal.js +20 -20
- package/cjs/Channel/components/SuggestedMentionList.js +18 -18
- package/cjs/Channel/components/TypingIndicator.js +17 -17
- package/cjs/Channel/components/UnreadCount.js +5 -5
- package/cjs/Channel/context.js +16 -16
- package/cjs/Channel.js +25 -25
- package/cjs/ChannelList/components/AddChannel.js +15 -15
- package/cjs/ChannelList/components/ChannelListHeader.js +8 -8
- package/cjs/ChannelList/components/ChannelListUI.js +29 -29
- package/cjs/ChannelList/components/ChannelPreview.js +22 -22
- package/cjs/ChannelList/components/ChannelPreviewAction.js +17 -17
- package/cjs/ChannelList/context.js +11 -11
- package/cjs/ChannelList.js +29 -29
- package/cjs/{ChannelListProvider-7d1c0466.js → ChannelListProvider-8f421c0d.js} +9 -9
- package/cjs/{ChannelListProvider-7d1c0466.js.map → ChannelListProvider-8f421c0d.js.map} +1 -1
- package/cjs/{ChannelProvider-a3ec5a56.js → ChannelProvider-397c5f03.js} +11 -11
- package/cjs/{ChannelProvider-a3ec5a56.js.map → ChannelProvider-397c5f03.js.map} +1 -1
- package/cjs/ChannelSettings/components/ChannelProfile.js +14 -14
- package/cjs/ChannelSettings/components/ChannelSettingsUI.js +19 -19
- package/cjs/ChannelSettings/components/EditDetailsModal.js +14 -14
- package/cjs/ChannelSettings/components/LeaveChannel.js +11 -11
- package/cjs/ChannelSettings/components/ModerationPanel.js +16 -16
- package/cjs/ChannelSettings/components/UserListItem.js +13 -13
- package/cjs/ChannelSettings/components/UserPanel.js +15 -15
- package/cjs/ChannelSettings/context.js +4 -4
- package/cjs/ChannelSettings.js +19 -19
- package/cjs/CreateChannel/components/CreateChannelUI.js +15 -15
- package/cjs/CreateChannel/components/InviteUsers.js +15 -15
- package/cjs/CreateChannel/components/SelectChannelType.js +11 -11
- package/cjs/CreateChannel/context.js +5 -5
- package/cjs/CreateChannel.js +15 -15
- package/cjs/{CreateChannelProvider-95fbfb06.js → CreateChannelProvider-adb49afd.js} +1 -1
- package/cjs/{CreateChannelProvider-95fbfb06.js.map → CreateChannelProvider-adb49afd.js.map} +1 -1
- package/cjs/EditUserProfile/components/EditUserProfileUI.js +14 -14
- package/cjs/EditUserProfile.js +14 -14
- package/cjs/{LocalizationContext-5a6a0f67.js → LocalizationContext-af3a239a.js} +3 -3
- package/cjs/{LocalizationContext-5a6a0f67.js.map → LocalizationContext-af3a239a.js.map} +1 -1
- package/cjs/{MemberList-bfecdd64.js → MemberList-a507429a.js} +5 -5
- package/cjs/{MemberList-bfecdd64.js.map → MemberList-a507429a.js.map} +1 -1
- package/cjs/MessageSearch/components/MessageSearchUI.js +12 -12
- package/cjs/MessageSearch/context.js +3 -3
- package/cjs/MessageSearch.js +12 -12
- package/cjs/OpenChannel/components/FrozenChannelNotification.js +5 -5
- package/cjs/OpenChannel/components/OpenChannelHeader.js +15 -15
- package/cjs/OpenChannel/components/OpenChannelInput.js +19 -19
- package/cjs/OpenChannel/components/OpenChannelMessage.js +24 -24
- package/cjs/OpenChannel/components/OpenChannelMessageList.js +26 -26
- package/cjs/OpenChannel/components/OpenChannelUI.js +26 -26
- package/cjs/OpenChannel/context.js +12 -12
- package/cjs/OpenChannel.js +26 -26
- package/cjs/{OpenChannelProvider-e8247193.js → OpenChannelProvider-e0ff3593.js} +9 -9
- package/cjs/{OpenChannelProvider-e8247193.js.map → OpenChannelProvider-e0ff3593.js.map} +1 -1
- package/cjs/OpenChannelSettings/components/EditDetailsModal.js +14 -14
- package/cjs/OpenChannelSettings/components/OpenChannelProfile.js +14 -14
- package/cjs/OpenChannelSettings/components/OpenChannelSettingsUI.js +18 -18
- package/cjs/OpenChannelSettings/components/OperatorUI.js +17 -17
- package/cjs/OpenChannelSettings/components/ParticipantUI.js +15 -15
- package/cjs/OpenChannelSettings/context.js +3 -3
- package/cjs/OpenChannelSettings.js +18 -18
- package/cjs/SendbirdProvider.js +13 -13
- package/cjs/{UserProfileContext-17c8f75c.js → UserProfileContext-1a32d7da.js} +1 -1
- package/cjs/{UserProfileContext-17c8f75c.js.map → UserProfileContext-1a32d7da.js.map} +1 -1
- package/cjs/{__bundle-7dfccc8c-c3c55861.js → __bundle-7dfccc8c-3aa3a536.js} +1 -1
- package/cjs/{__bundle-7dfccc8c-c3c55861.js.map → __bundle-7dfccc8c-3aa3a536.js.map} +1 -1
- package/cjs/{_rollupPluginBabelHelpers-d984e855.js → _rollupPluginBabelHelpers-1be0417a.js} +1 -1
- package/cjs/{_rollupPluginBabelHelpers-d984e855.js.map → _rollupPluginBabelHelpers-1be0417a.js.map} +1 -1
- package/cjs/{actionTypes-7a330bec.js → actionTypes-9635e2a1.js} +1 -1
- package/cjs/{actionTypes-7a330bec.js.map → actionTypes-9635e2a1.js.map} +1 -1
- package/cjs/{color-b30f84a2.js → color-79441155.js} +1 -1
- package/cjs/{color-b30f84a2.js.map → color-79441155.js.map} +1 -1
- package/cjs/{compareIds-d8053014.js → compareIds-9e929882.js} +1 -1
- package/cjs/{compareIds-d8053014.js.map → compareIds-9e929882.js.map} +1 -1
- package/cjs/{const-2623fae1.js → const-3ec42b99.js} +1 -1
- package/cjs/{const-2623fae1.js.map → const-3ec42b99.js.map} +1 -1
- package/cjs/{const-6aa26f9f.js → const-c45b3772.js} +1 -1
- package/cjs/{const-6aa26f9f.js.map → const-c45b3772.js.map} +1 -1
- package/cjs/{context-83ecdafd.js → context-7f20c4fc.js} +2 -2
- package/cjs/{context-83ecdafd.js.map → context-7f20c4fc.js.map} +1 -1
- package/cjs/dist/index.css +49 -49
- package/cjs/dist/index.css.map +1 -1
- package/cjs/{groupChannel-e311e26a.js → groupChannel-57828c97.js} +2 -2
- package/cjs/{groupChannel-e311e26a.js.map → groupChannel-57828c97.js.map} +1 -1
- package/cjs/{index-df05e765.js → index-101e25b6.js} +3 -3
- package/cjs/{index-df05e765.js.map → index-101e25b6.js.map} +1 -1
- package/cjs/{index-ce679d41.js → index-7b1f120b.js} +1 -1
- package/cjs/{index-ce679d41.js.map → index-7b1f120b.js.map} +1 -1
- package/cjs/{index-2537cbc7.js → index-82b738a4.js} +4 -4
- package/cjs/{index-2537cbc7.js.map → index-82b738a4.js.map} +1 -1
- package/cjs/{index-72479c2a.js → index-c3d974a8.js} +1 -1
- package/cjs/{index-72479c2a.js.map → index-c3d974a8.js.map} +1 -1
- package/cjs/{index-5e7b82c2.js → index-c42f8ea9.js} +6 -6
- package/cjs/{index-5e7b82c2.js.map → index-c42f8ea9.js.map} +1 -1
- package/cjs/{index-1e14c5b9.js → index-c4440bd2.js} +4 -4
- package/cjs/{index-1e14c5b9.js.map → index-c4440bd2.js.map} +1 -1
- package/cjs/{index-f9677913.js → index-ebb83a37.js} +3 -3
- package/cjs/{index-f9677913.js.map → index-ebb83a37.js.map} +1 -1
- package/cjs/{index-cdcd27bc.js → index-f21d728f.js} +2 -2
- package/cjs/{index-cdcd27bc.js.map → index-f21d728f.js.map} +1 -1
- package/cjs/{index-40d245a3.js → index-f3cc1992.js} +2 -2
- package/cjs/{index-40d245a3.js.map → index-f3cc1992.js.map} +1 -1
- package/cjs/{index-ab5d906d.js → index-fddacd70.js} +2 -2
- package/cjs/{index-ab5d906d.js.map → index-fddacd70.js.map} +1 -1
- package/cjs/index.js +37 -37
- package/cjs/{openChannel-e9f65946.js → openChannel-19ee9ebe.js} +2 -2
- package/cjs/{openChannel-e9f65946.js.map → openChannel-19ee9ebe.js.map} +1 -1
- package/cjs/{openChannelUtils-4b7d2697.js → openChannelUtils-d4258320.js} +1 -1
- package/cjs/{openChannelUtils-4b7d2697.js.map → openChannelUtils-d4258320.js.map} +1 -1
- package/cjs/sendbirdSelectors.js +2 -2
- package/cjs/{stringSet-2f3588b5.js → stringSet-ed353b6e.js} +1 -1
- package/cjs/{stringSet-2f3588b5.js.map → stringSet-ed353b6e.js.map} +1 -1
- package/cjs/{topics-582e38dc.js → topics-1e190fcd.js} +1 -1
- package/cjs/{topics-582e38dc.js.map → topics-1e190fcd.js.map} +1 -1
- package/cjs/{tslib.es6-d9c7aa8b.js → tslib.es6-4b07fef2.js} +1 -1
- package/cjs/{tslib.es6-d9c7aa8b.js.map → tslib.es6-4b07fef2.js.map} +1 -1
- package/cjs/ui/Accordion.js +4 -4
- package/cjs/ui/AccordionGroup.js +2 -2
- package/cjs/ui/AdminMessage.js +3 -3
- package/cjs/ui/Avatar.js +3 -3
- package/cjs/ui/Badge.js +5 -5
- package/cjs/ui/Button.js +4 -4
- package/cjs/ui/ChannelAvatar.js +4 -4
- package/cjs/ui/ChannelPreview.js +12 -12
- package/cjs/ui/ChatHeader.js +8 -8
- package/cjs/ui/Checkbox.js +1 -1
- package/cjs/ui/ConnectionStatus.js +5 -5
- package/cjs/ui/ContextMenu.js +5 -5
- package/cjs/ui/DateSeparator.js +4 -4
- package/cjs/ui/Dropdown.js +3 -3
- package/cjs/ui/EmojiReactions.js +7 -7
- package/cjs/ui/FileMessageItemBody.js +6 -6
- package/cjs/ui/FileViewer.js +7 -7
- package/cjs/ui/Icon.js +1 -1
- package/cjs/ui/IconButton.js +1 -1
- package/cjs/ui/ImageRenderer.js +1 -1
- package/cjs/ui/Input.js +3 -3
- package/cjs/ui/Label.js +3 -3
- package/cjs/ui/LinkLabel.js +3 -3
- package/cjs/ui/Loader.js +1 -1
- package/cjs/ui/MentionLabel.js +12 -12
- package/cjs/ui/MessageContent.js +15 -15
- package/cjs/ui/MessageInput.js +10 -10
- package/cjs/ui/MessageItemMenu.js +7 -7
- package/cjs/ui/MessageItemReactionMenu.js +5 -5
- package/cjs/ui/MessageSearchFileItem.js +10 -10
- package/cjs/ui/MessageSearchItem.js +10 -10
- package/cjs/ui/MessageStatus.js +8 -8
- package/cjs/ui/Modal.js +8 -8
- package/cjs/ui/MutedAvatarOverlay.js +1 -1
- package/cjs/ui/OGMessageItemBody.js +12 -12
- package/cjs/ui/OpenChannelAdminMessage.js +4 -4
- package/cjs/ui/OpenChannelAvatar.js +7 -7
- package/cjs/ui/OpenchannelConversationHeader.js +7 -7
- package/cjs/ui/OpenchannelFileMessage.js +16 -16
- package/cjs/ui/OpenchannelOGMessage.js +16 -16
- package/cjs/ui/OpenchannelThumbnailMessage.js +15 -15
- package/cjs/ui/OpenchannelUserMessage.js +16 -16
- package/cjs/ui/PlaceHolder.js +6 -6
- package/cjs/ui/QuoteMessage.js +7 -7
- package/cjs/ui/QuoteMessageInput.js +7 -7
- package/cjs/ui/ReactionBadge.js +3 -3
- package/cjs/ui/ReactionButton.js +1 -1
- package/cjs/ui/SortByRow.js +1 -1
- package/cjs/ui/TextButton.js +2 -2
- package/cjs/ui/TextMessageItemBody.js +12 -12
- package/cjs/ui/ThumbnailMessageItemBody.js +3 -3
- package/cjs/ui/Tooltip.js +3 -3
- package/cjs/ui/TooltipWrapper.js +1 -1
- package/cjs/ui/UnknownMessageItemBody.js +7 -7
- package/cjs/ui/UserListItem.js +13 -13
- package/cjs/ui/UserProfile.js +12 -12
- package/cjs/ui/Word.js +12 -12
- package/cjs/useSendbirdStateContext.js +3 -3
- package/cjs/{utils-031aba48.js → utils-6ff87257.js} +1 -1
- package/cjs/{utils-031aba48.js.map → utils-6ff87257.js.map} +1 -1
- package/cjs/{utils-689065e6.js → utils-88672f3d.js} +1 -1
- package/cjs/{utils-689065e6.js.map → utils-88672f3d.js.map} +1 -1
- package/cjs/{utils-510b93ac.js → utils-c15722aa.js} +1 -1
- package/cjs/{utils-510b93ac.js.map → utils-c15722aa.js.map} +1 -1
- package/cjs/{uuid-099485ae.js → uuid-c63c6c5a.js} +1 -1
- package/cjs/{uuid-099485ae.js.map → uuid-c63c6c5a.js.map} +1 -1
- package/cjs/{withSendBird.js → withSendbird.js} +2 -2
- package/cjs/{withSendBird.js.map → withSendbird.js.map} +1 -1
- package/{color-9bf8c922.js → color-8ef428b9.js} +1 -1
- package/{color-9bf8c922.js.map → color-8ef428b9.js.map} +1 -1
- package/{compareIds-b78d7cd6.js → compareIds-d0f57b59.js} +1 -1
- package/{compareIds-b78d7cd6.js.map → compareIds-d0f57b59.js.map} +1 -1
- package/{const-40b58d8b.js → const-c751cfe7.js} +1 -1
- package/{const-40b58d8b.js.map → const-c751cfe7.js.map} +1 -1
- package/{const-99800b8d.js → const-da7e79d6.js} +1 -1
- package/{const-99800b8d.js.map → const-da7e79d6.js.map} +1 -1
- package/{context-bedea43b.js → context-64a89b1b.js} +2 -2
- package/{context-bedea43b.js.map → context-64a89b1b.js.map} +1 -1
- package/dist/index.css +49 -49
- package/dist/index.css.map +1 -1
- package/{groupChannel-96502de7.js → groupChannel-45ccdf2b.js} +2 -2
- package/{groupChannel-96502de7.js.map → groupChannel-45ccdf2b.js.map} +1 -1
- package/{index-c95d2aab.js → index-03332d0e.js} +4 -4
- package/{index-c95d2aab.js.map → index-03332d0e.js.map} +1 -1
- package/{index-a5e8849a.js → index-244760b9.js} +4 -4
- package/{index-a5e8849a.js.map → index-244760b9.js.map} +1 -1
- package/{index-71e2bf26.js → index-5729e2f0.js} +3 -3
- package/{index-71e2bf26.js.map → index-5729e2f0.js.map} +1 -1
- package/{index-13729368.js → index-6924378b.js} +1 -1
- package/{index-13729368.js.map → index-6924378b.js.map} +1 -1
- package/{index-71ad343b.js → index-87a997c3.js} +6 -6
- package/{index-71ad343b.js.map → index-87a997c3.js.map} +1 -1
- package/{index-b574cc8e.js → index-b9a1f38d.js} +3 -3
- package/{index-b574cc8e.js.map → index-b9a1f38d.js.map} +1 -1
- package/{index-ccd99cfe.js → index-c3d16dc1.js} +2 -2
- package/{index-ccd99cfe.js.map → index-c3d16dc1.js.map} +1 -1
- package/{index-16bed610.js → index-e0ff03bb.js} +2 -2
- package/{index-16bed610.js.map → index-e0ff03bb.js.map} +1 -1
- package/{index-8e6a607b.js → index-f1c7b834.js} +2 -2
- package/{index-8e6a607b.js.map → index-f1c7b834.js.map} +1 -1
- package/{index-1d112ad4.js → index-f6405407.js} +1 -1
- package/{index-1d112ad4.js.map → index-f6405407.js.map} +1 -1
- package/index.d.ts +7 -7
- package/index.js +36 -36
- package/{openChannel-dd5c9246.js → openChannel-a604a724.js} +2 -2
- package/{openChannel-dd5c9246.js.map → openChannel-a604a724.js.map} +1 -1
- package/{openChannelUtils-211a679a.js → openChannelUtils-d9f15020.js} +1 -1
- package/{openChannelUtils-211a679a.js.map → openChannelUtils-d9f15020.js.map} +1 -1
- package/package.json +1 -1
- package/sendbirdSelectors.js +2 -2
- package/{stringSet-d3a8a2a0.js → stringSet-6bcac8f5.js} +1 -1
- package/{stringSet-d3a8a2a0.js.map → stringSet-6bcac8f5.js.map} +1 -1
- package/{topics-f941ba80.js → topics-997dc2ef.js} +1 -1
- package/{topics-f941ba80.js.map → topics-997dc2ef.js.map} +1 -1
- package/{tslib.es6-a7db0cc5.js → tslib.es6-528d1472.js} +1 -1
- package/{tslib.es6-a7db0cc5.js.map → tslib.es6-528d1472.js.map} +1 -1
- package/ui/Accordion.js +4 -4
- package/ui/AccordionGroup.js +2 -2
- package/ui/AdminMessage.js +3 -3
- package/ui/Avatar.js +3 -3
- package/ui/Badge.js +5 -5
- package/ui/Button.js +4 -4
- package/ui/ChannelAvatar.js +4 -4
- package/ui/ChannelPreview.js +12 -12
- package/ui/ChatHeader.js +8 -8
- package/ui/Checkbox.js +1 -1
- package/ui/ConnectionStatus.js +5 -5
- package/ui/ContextMenu.js +5 -5
- package/ui/DateSeparator.js +4 -4
- package/ui/Dropdown.js +3 -3
- package/ui/EmojiReactions.js +7 -7
- package/ui/FileMessageItemBody.js +6 -6
- package/ui/FileViewer.js +7 -7
- package/ui/Icon.js +1 -1
- package/ui/IconButton.js +1 -1
- package/ui/ImageRenderer.js +1 -1
- package/ui/Input.js +3 -3
- package/ui/Label.js +3 -3
- package/ui/LinkLabel.js +3 -3
- package/ui/Loader.js +1 -1
- package/ui/MentionLabel.js +12 -12
- package/ui/MessageContent.js +15 -15
- package/ui/MessageInput.js +10 -10
- package/ui/MessageItemMenu.js +7 -7
- package/ui/MessageItemReactionMenu.js +5 -5
- package/ui/MessageSearchFileItem.js +10 -10
- package/ui/MessageSearchItem.js +10 -10
- package/ui/MessageStatus.js +8 -8
- package/ui/Modal.js +8 -8
- package/ui/MutedAvatarOverlay.js +1 -1
- package/ui/OGMessageItemBody.js +12 -12
- package/ui/OpenChannelAdminMessage.js +4 -4
- package/ui/OpenChannelAvatar.js +7 -7
- package/ui/OpenchannelConversationHeader.js +7 -7
- package/ui/OpenchannelFileMessage.js +16 -16
- package/ui/OpenchannelOGMessage.js +16 -16
- package/ui/OpenchannelThumbnailMessage.js +15 -15
- package/ui/OpenchannelUserMessage.js +16 -16
- package/ui/PlaceHolder.js +6 -6
- package/ui/QuoteMessage.js +7 -7
- package/ui/QuoteMessageInput.js +7 -7
- package/ui/ReactionBadge.js +3 -3
- package/ui/ReactionButton.js +1 -1
- package/ui/SortByRow.js +1 -1
- package/ui/TextButton.js +2 -2
- package/ui/TextMessageItemBody.js +12 -12
- package/ui/ThumbnailMessageItemBody.js +3 -3
- package/ui/Tooltip.js +3 -3
- package/ui/TooltipWrapper.js +1 -1
- package/ui/UnknownMessageItemBody.js +7 -7
- package/ui/UserListItem.js +13 -13
- package/ui/UserProfile.js +11 -11
- package/ui/Word.js +12 -12
- package/useSendbirdStateContext.js +2 -2
- package/{utils-2e3623c0.js → utils-77d4fd35.js} +1 -1
- package/{utils-2e3623c0.js.map → utils-77d4fd35.js.map} +1 -1
- package/{utils-d9325ddf.js → utils-91321bf8.js} +1 -1
- package/{utils-d9325ddf.js.map → utils-91321bf8.js.map} +1 -1
- package/{utils-cadde06a.js → utils-d0e53d6f.js} +1 -1
- package/{utils-cadde06a.js.map → utils-d0e53d6f.js.map} +1 -1
- package/{uuid-748dae7a.js → uuid-ae0ebd46.js} +1 -1
- package/{uuid-748dae7a.js.map → uuid-ae0ebd46.js.map} +1 -1
- package/{withSendBird.js → withSendbird.js} +2 -2
- package/{withSendBird.js.map → withSendbird.js.map} +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as requiredArgs, t as toDate } from './index-
|
|
1
|
+
import { r as requiredArgs, t as toDate } from './index-c3d16dc1.js';
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* @name startOfDay
|
|
@@ -61,4 +61,4 @@ function isSameDay(dirtyDateLeft, dirtyDateRight) {
|
|
|
61
61
|
}
|
|
62
62
|
|
|
63
63
|
export { isSameDay as i, startOfDay as s };
|
|
64
|
-
//# sourceMappingURL=index-
|
|
64
|
+
//# sourceMappingURL=index-e0ff03bb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-e0ff03bb.js","sources":["../node_modules/date-fns/esm/startOfDay/index.js","../node_modules/date-fns/esm/isSameDay/index.js"],"sourcesContent":["import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * const result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import startOfDay from \"../startOfDay/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isSameDay\n * @category Day Helpers\n * @summary Are the given dates in the same day?\n *\n * @description\n * Are the given dates in the same day?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to check\n * @param {Date|Number} dateRight - the second date to check\n * @returns {Boolean} the dates are in the same day\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Are 4 September 06:00:00 and 4 September 18:00:00 in the same day?\n * var result = isSameDay(new Date(2014, 8, 4, 6, 0), new Date(2014, 8, 4, 18, 0))\n * //=> true\n */\n\nexport default function isSameDay(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeftStartOfDay = startOfDay(dirtyDateLeft);\n var dateRightStartOfDay = startOfDay(dirtyDateRight);\n return dateLeftStartOfDay.getTime() === dateRightStartOfDay.getTime();\n}"],"names":[],"mappings":";;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS,UAAU,CAAC,SAAS,EAAE;AAC9C,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAC7B,EAAE,IAAI,IAAI,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAC/B,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,EAAE,OAAO,IAAI,CAAC;AACd;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS,SAAS,CAAC,aAAa,EAAE,cAAc,EAAE;AACjE,EAAE,YAAY,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC;AAC7B,EAAE,IAAI,kBAAkB,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;AACrD,EAAE,IAAI,mBAAmB,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;AACvD,EAAE,OAAO,kBAAkB,CAAC,OAAO,EAAE,KAAK,mBAAmB,CAAC,OAAO,EAAE,CAAC;AACxE;;;;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { _ as __assign, a as __spreadArray } from './tslib.es6-
|
|
1
|
+
import { _ as __assign, a as __spreadArray } from './tslib.es6-528d1472.js';
|
|
2
2
|
|
|
3
3
|
var SUPPORTED_MIMES = {
|
|
4
4
|
IMAGE: ['image/jpeg', 'image/jpg', 'image/png', 'image/gif', 'image/svg+xml', 'image/webp' // not supported in IE
|
|
@@ -685,4 +685,4 @@ var arrayEqual = function arrayEqual(array1, array2) {
|
|
|
685
685
|
};
|
|
686
686
|
|
|
687
687
|
export { isSupportedFileView as A, isVideo as B, isImage as C, isSentMessage as D, isFailedMessage as E, isPendingMessage as F, copyToClipboard as G, getEmojiListAll as H, getEmojiMapAll as I, isReactedBy as J, getEmojiTooltipString as K, getUIKitFileType as L, getUIKitFileTypes as M, isGif as N, StringObjType as S, getOutgoingMessageStates as a, getSendingMessageStatus as b, isReadMessage as c, filterMessageListParams as d, isEditedMessage as e, filterChannelListParams as f, getChannelsWithUpsertedChannel as g, getOutgoingMessageState as h, isTextuallyNull as i, isSentStatus as j, getClassName as k, convertWordToStringObj as l, arrayEqual as m, isFileMessage as n, isImageMessage as o, isThumbnailMessage as p, isAudioMessage as q, isGifMessage as r, isVideoMessage as s, truncateString as t, isUserMessage as u, getUIKitMessageTypes as v, getSenderName as w, isTextMessage as x, isOGMessage as y, getUIKitMessageType as z };
|
|
688
|
-
//# sourceMappingURL=index-
|
|
688
|
+
//# sourceMappingURL=index-f1c7b834.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-8e6a607b.js","sources":["../src/utils/index.ts"],"sourcesContent":["import SendbirdChat, { Emoji, EmojiCategory, EmojiContainer, User } from '@sendbird/chat';\nimport type { GroupChannel, Member, SendbirdGroupChat, GroupChannelListQuery } from '@sendbird/chat/groupChannel';\nimport type { AdminMessage, FileMessage, MessageListParams, Reaction, UserMessage } from '@sendbird/chat/message';\nimport type { OpenChannel, SendbirdOpenChat } from '@sendbird/chat/openChannel';\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\nexport interface OutgoingMessageStates {\n NONE: 'NONE',\n PENDING: 'PENDING',\n SENT: 'SENT',\n FAILED: 'FAILED',\n DELIVERED: 'DELIVERED',\n READ: 'READ',\n // delivered and read are only in group channel\n}\nexport const OutgoingMessageStates: OutgoingMessageStates = {\n NONE: 'NONE',\n PENDING: 'PENDING',\n SENT: 'SENT',\n FAILED: 'FAILED',\n DELIVERED: 'DELIVERED',\n READ: 'READ',\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};\nexport const getOutgoingMessageStates = (): OutgoingMessageStates => ({ ...OutgoingMessageStates });\nexport const getOutgoingMessageState = (channel: GroupChannel | OpenChannel, message: UserMessage | FileMessage): string => {\n if (message.sendingStatus === 'pending') return OutgoingMessageStates.PENDING;\n if (message.sendingStatus === 'failed') return OutgoingMessageStates.FAILED;\n if (channel?.isGroupChannel?.()) {\n /* GroupChannel only */\n if ((channel as GroupChannel).getUnreadMemberCount(message) === 0) {\n return OutgoingMessageStates.READ;\n } else if ((channel as GroupChannel).getUndeliveredMemberCount(message) === 0) {\n return OutgoingMessageStates.DELIVERED;\n }\n }\n if (message.sendingStatus === 'succeeded') return OutgoingMessageStates.SENT;\n return OutgoingMessageStates.NONE;\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 { normal, mention, url }\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","OutgoingMessageStates","SENT","DELIVERED","READ","isTextuallyNull","text","isImage","type","indexOf","isVideo","isGif","isSupportedFileView","isAudio","getUIKitFileTypes","getUIKitFileType","getOutgoingMessageStates","getOutgoingMessageState","channel","message","sendingStatus","isGroupChannel","getUnreadMemberCount","getUndeliveredMemberCount","isSentMessage","isReadMessage","isFailedMessage","isPendingMessage","isSentStatus","state","isAdminMessage","messageType","isUserMessage","isFileMessage","isOGMessage","ogMetaData","url","isTextMessage","isThumbnailMessage","isImageMessage","isVideoMessage","isGifMessage","isAudioMessage","isEditedMessage","updatedAt","getUIKitMessageTypes","getUIKitMessageType","getSendingMessageStatus","reducer","accumulator","currentValue","Array","isArray","push","getClassName","classNames","reduce","join","isReactedBy","userId","reaction","userIds","some","reactorUserId","getEmojiTooltipString","memberNicknamesMap","stringSet","you","length","TOOLTIP__YOU","TOOLTIP__AND_YOU","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","concat","getEmojiMapAll","emojiMap","Map","forEach","category","emoji","key","set","getUserName","user","friendName","nickname","getSenderName","sender","hasSameMembers","a","b","sortedA","__spreadArray","sort","sortedB","i","isFriend","friendDiscoveryKey","filterMessageListParams","params","messageTypeFilter","customTypesFilter","customTypes","item","includes","customType","senderUserIdsFilter","messageSender","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","every","includeFrozen","isFrozen","customTypeStartsWithFilter","RegExp","channelNameContainsFilter","nicknameContainsFilter","lowerCasedSubString_1","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
|
+
{"version":3,"file":"index-f1c7b834.js","sources":["../src/utils/index.ts"],"sourcesContent":["import SendbirdChat, { Emoji, EmojiCategory, EmojiContainer, User } from '@sendbird/chat';\nimport type { GroupChannel, Member, SendbirdGroupChat, GroupChannelListQuery } from '@sendbird/chat/groupChannel';\nimport type { AdminMessage, FileMessage, MessageListParams, Reaction, UserMessage } from '@sendbird/chat/message';\nimport type { OpenChannel, SendbirdOpenChat } from '@sendbird/chat/openChannel';\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\nexport interface OutgoingMessageStates {\n NONE: 'NONE',\n PENDING: 'PENDING',\n SENT: 'SENT',\n FAILED: 'FAILED',\n DELIVERED: 'DELIVERED',\n READ: 'READ',\n // delivered and read are only in group channel\n}\nexport const OutgoingMessageStates: OutgoingMessageStates = {\n NONE: 'NONE',\n PENDING: 'PENDING',\n SENT: 'SENT',\n FAILED: 'FAILED',\n DELIVERED: 'DELIVERED',\n READ: 'READ',\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};\nexport const getOutgoingMessageStates = (): OutgoingMessageStates => ({ ...OutgoingMessageStates });\nexport const getOutgoingMessageState = (channel: GroupChannel | OpenChannel, message: UserMessage | FileMessage): string => {\n if (message.sendingStatus === 'pending') return OutgoingMessageStates.PENDING;\n if (message.sendingStatus === 'failed') return OutgoingMessageStates.FAILED;\n if (channel?.isGroupChannel?.()) {\n /* GroupChannel only */\n if ((channel as GroupChannel).getUnreadMemberCount(message) === 0) {\n return OutgoingMessageStates.READ;\n } else if ((channel as GroupChannel).getUndeliveredMemberCount(message) === 0) {\n return OutgoingMessageStates.DELIVERED;\n }\n }\n if (message.sendingStatus === 'succeeded') return OutgoingMessageStates.SENT;\n return OutgoingMessageStates.NONE;\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 { normal, mention, url }\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","OutgoingMessageStates","SENT","DELIVERED","READ","isTextuallyNull","text","isImage","type","indexOf","isVideo","isGif","isSupportedFileView","isAudio","getUIKitFileTypes","getUIKitFileType","getOutgoingMessageStates","getOutgoingMessageState","channel","message","sendingStatus","isGroupChannel","getUnreadMemberCount","getUndeliveredMemberCount","isSentMessage","isReadMessage","isFailedMessage","isPendingMessage","isSentStatus","state","isAdminMessage","messageType","isUserMessage","isFileMessage","isOGMessage","ogMetaData","url","isTextMessage","isThumbnailMessage","isImageMessage","isVideoMessage","isGifMessage","isAudioMessage","isEditedMessage","updatedAt","getUIKitMessageTypes","getUIKitMessageType","getSendingMessageStatus","reducer","accumulator","currentValue","Array","isArray","push","getClassName","classNames","reduce","join","isReactedBy","userId","reaction","userIds","some","reactorUserId","getEmojiTooltipString","memberNicknamesMap","stringSet","you","length","TOOLTIP__YOU","TOOLTIP__AND_YOU","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","concat","getEmojiMapAll","emojiMap","Map","forEach","category","emoji","key","set","getUserName","user","friendName","nickname","getSenderName","sender","hasSameMembers","a","b","sortedA","__spreadArray","sort","sortedB","i","isFriend","friendDiscoveryKey","filterMessageListParams","params","messageTypeFilter","customTypesFilter","customTypes","item","includes","customType","senderUserIdsFilter","messageSender","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","every","includeFrozen","isFrozen","customTypeStartsWithFilter","RegExp","channelNameContainsFilter","nicknameContainsFilter","lowerCasedSubString_1","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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index-
|
|
1
|
+
{"version":3,"file":"index-f6405407.js","sources":["../src/hooks/useModal/ModalRoot/index.jsx"],"sourcesContent":["// simple component to be used as modal root\nimport React from 'react';\n\nexport const MODAL_ROOT = 'sendbird-modal-root';\n\nexport default () => (\n <div id={MODAL_ROOT} />\n);\n"],"names":["MODAL_ROOT"],"mappings":";;AAAA;IAGaA,UAAU,GAAG;;;;"}
|
package/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* homepage: https://sendbird.com/
|
|
4
4
|
* git: https://github.com/sendbird/sendbird-uikit-react
|
|
5
5
|
*/
|
|
6
|
-
declare module "SendbirdUIKitGlobal" {
|
|
6
|
+
declare module "SendbirdUIKitGlobal" {
|
|
7
7
|
import type React from 'react';
|
|
8
8
|
import type Locale from 'date-fns';
|
|
9
9
|
import type SendbirdChat from '@sendbird/chat';
|
|
@@ -838,13 +838,13 @@ declare module '@sendbird/uikit-react/useSendbirdStateContext' {
|
|
|
838
838
|
export default useSendbirdStateContext;
|
|
839
839
|
}
|
|
840
840
|
|
|
841
|
-
declare module '@sendbird/uikit-react/
|
|
841
|
+
declare module '@sendbird/uikit-react/withSendbird' {
|
|
842
842
|
import SendbirdUIKitGlobal from 'SendbirdUIKitGlobal';
|
|
843
|
-
function
|
|
843
|
+
function withSendbird(
|
|
844
844
|
ChildComp: React.Component | React.ElementType,
|
|
845
845
|
mapStoreToProps?: (store: SendbirdUIKitGlobal.SendBirdState) => unknown
|
|
846
846
|
): (props: unknown) => React.ReactNode;
|
|
847
|
-
export default
|
|
847
|
+
export default withSendbird;
|
|
848
848
|
}
|
|
849
849
|
|
|
850
850
|
/** ChannelList */
|
|
@@ -902,9 +902,9 @@ declare module '@sendbird/uikit-react/ChannelSettings/context' {
|
|
|
902
902
|
export const useChannelSettingsContext: () => SendbirdUIKitGlobal.ChannelSettingsProviderInterface;
|
|
903
903
|
}
|
|
904
904
|
|
|
905
|
-
declare module '@sendbird/uikit-react/ChannelSettings/components/
|
|
906
|
-
const
|
|
907
|
-
export default
|
|
905
|
+
declare module '@sendbird/uikit-react/ChannelSettings/components/ModerationPanel' {
|
|
906
|
+
const ModerationPanel: React.FunctionComponent;
|
|
907
|
+
export default ModerationPanel;
|
|
908
908
|
}
|
|
909
909
|
|
|
910
910
|
declare module '@sendbird/uikit-react/ChannelSettings/components/ChannelProfile' {
|
package/index.js
CHANGED
|
@@ -3,52 +3,52 @@ export { default as App } from './App.js';
|
|
|
3
3
|
export { default as ChannelSettings } from './ChannelSettings.js';
|
|
4
4
|
export { default as ChannelList } from './ChannelList.js';
|
|
5
5
|
export { default as Channel } from './Channel.js';
|
|
6
|
-
export { g as getStringSet } from './stringSet-
|
|
6
|
+
export { g as getStringSet } from './stringSet-6bcac8f5.js';
|
|
7
7
|
export { default as OpenChannel } from './OpenChannel.js';
|
|
8
8
|
export { default as OpenChannelSettings } from './OpenChannelSettings.js';
|
|
9
9
|
export { default as MessageSearch } from './MessageSearch.js';
|
|
10
|
-
export { default as withSendBird } from './
|
|
10
|
+
export { default as withSendBird } from './withSendbird.js';
|
|
11
11
|
export { default as sendbirdSelectors } from './sendbirdSelectors.js';
|
|
12
12
|
export { default as useSendbirdStateContext } from './useSendbirdStateContext.js';
|
|
13
|
-
import './_rollupPluginBabelHelpers-
|
|
13
|
+
import './_rollupPluginBabelHelpers-38569358.js';
|
|
14
14
|
import 'react';
|
|
15
15
|
import 'prop-types';
|
|
16
|
-
import './openChannel-
|
|
17
|
-
import './__bundle-7dfccc8c-
|
|
18
|
-
import './groupChannel-
|
|
19
|
-
import './actionTypes-
|
|
20
|
-
import './index-
|
|
21
|
-
import './tslib.es6-
|
|
16
|
+
import './openChannel-a604a724.js';
|
|
17
|
+
import './__bundle-7dfccc8c-a0cba188.js';
|
|
18
|
+
import './groupChannel-45ccdf2b.js';
|
|
19
|
+
import './actionTypes-c12e9c30.js';
|
|
20
|
+
import './index-f1c7b834.js';
|
|
21
|
+
import './tslib.es6-528d1472.js';
|
|
22
22
|
import 'css-vars-ponyfill';
|
|
23
|
-
import './uuid-
|
|
24
|
-
import './LocalizationContext-
|
|
25
|
-
import './index-
|
|
23
|
+
import './uuid-ae0ebd46.js';
|
|
24
|
+
import './LocalizationContext-0293a3fd.js';
|
|
25
|
+
import './index-6924378b.js';
|
|
26
26
|
import './ChannelSettings/components/ChannelSettingsUI.js';
|
|
27
27
|
import './ChannelSettings/context.js';
|
|
28
|
-
import './UserProfileContext-
|
|
29
|
-
import './index-
|
|
28
|
+
import './UserProfileContext-bcfe2804.js';
|
|
29
|
+
import './index-03332d0e.js';
|
|
30
30
|
import './ui/Icon.js';
|
|
31
31
|
import './ui/Loader.js';
|
|
32
|
-
import './index-
|
|
32
|
+
import './index-5729e2f0.js';
|
|
33
33
|
import './ui/IconButton.js';
|
|
34
34
|
import './ChannelSettings/components/ChannelProfile.js';
|
|
35
35
|
import './ui/ChannelAvatar.js';
|
|
36
36
|
import './ui/Avatar.js';
|
|
37
37
|
import './ui/ImageRenderer.js';
|
|
38
|
-
import './utils-
|
|
38
|
+
import './utils-91321bf8.js';
|
|
39
39
|
import './ui/TextButton.js';
|
|
40
|
-
import './color-
|
|
40
|
+
import './color-8ef428b9.js';
|
|
41
41
|
import './ChannelSettings/components/EditDetailsModal.js';
|
|
42
42
|
import './ui/Modal.js';
|
|
43
43
|
import 'react-dom';
|
|
44
|
-
import './index-
|
|
45
|
-
import './index-
|
|
46
|
-
import './utils-
|
|
44
|
+
import './index-f6405407.js';
|
|
45
|
+
import './index-b9a1f38d.js';
|
|
46
|
+
import './utils-d0e53d6f.js';
|
|
47
47
|
import './ui/Input.js';
|
|
48
48
|
import './ChannelSettings/components/ModerationPanel.js';
|
|
49
49
|
import './ui/Accordion.js';
|
|
50
50
|
import './ui/AccordionGroup.js';
|
|
51
|
-
import './context-
|
|
51
|
+
import './context-64a89b1b.js';
|
|
52
52
|
import './ui/Badge.js';
|
|
53
53
|
import './ui/ContextMenu.js';
|
|
54
54
|
import './ui/SortByRow.js';
|
|
@@ -57,40 +57,40 @@ import './ui/MutedAvatarOverlay.js';
|
|
|
57
57
|
import './ui/UserProfile.js';
|
|
58
58
|
import './ui/UserListItem.js';
|
|
59
59
|
import './ui/Checkbox.js';
|
|
60
|
-
import './MemberList-
|
|
60
|
+
import './MemberList-4e057ef8.js';
|
|
61
61
|
import './ChannelSettings/components/LeaveChannel.js';
|
|
62
62
|
import './ChannelSettings/components/UserPanel.js';
|
|
63
|
-
import './ChannelListProvider-
|
|
64
|
-
import './topics-
|
|
63
|
+
import './ChannelListProvider-c3810392.js';
|
|
64
|
+
import './topics-997dc2ef.js';
|
|
65
65
|
import './ChannelList/components/ChannelListUI.js';
|
|
66
66
|
import './ChannelList/components/ChannelListHeader.js';
|
|
67
67
|
import './ChannelList/components/AddChannel.js';
|
|
68
68
|
import './CreateChannel.js';
|
|
69
69
|
import './CreateChannel/components/CreateChannelUI.js';
|
|
70
|
-
import './CreateChannelProvider-
|
|
70
|
+
import './CreateChannelProvider-adb7afa8.js';
|
|
71
71
|
import './CreateChannel/components/InviteUsers.js';
|
|
72
72
|
import './CreateChannel/components/SelectChannelType.js';
|
|
73
73
|
import './ChannelList/components/ChannelPreview.js';
|
|
74
|
-
import './index-
|
|
75
|
-
import './index-
|
|
76
|
-
import './index-
|
|
74
|
+
import './index-244760b9.js';
|
|
75
|
+
import './index-e0ff03bb.js';
|
|
76
|
+
import './index-c3d16dc1.js';
|
|
77
77
|
import './ui/MentionUserLabel.js';
|
|
78
78
|
import './Channel/components/TypingIndicator.js';
|
|
79
|
-
import './ChannelProvider-
|
|
80
|
-
import './compareIds-
|
|
81
|
-
import './const-
|
|
79
|
+
import './ChannelProvider-03ec9238.js';
|
|
80
|
+
import './compareIds-d0f57b59.js';
|
|
81
|
+
import './const-da7e79d6.js';
|
|
82
82
|
import './ui/ReactionButton.js';
|
|
83
83
|
import './ui/MessageStatus.js';
|
|
84
84
|
import './ChannelList/components/ChannelPreviewAction.js';
|
|
85
85
|
import './EditUserProfile.js';
|
|
86
|
-
import './index-
|
|
86
|
+
import './index-87a997c3.js';
|
|
87
87
|
import './Channel/components/ChannelUI.js';
|
|
88
88
|
import './ui/ConnectionStatus.js';
|
|
89
89
|
import './Channel/components/ChannelHeader.js';
|
|
90
90
|
import './Channel/components/MessageList.js';
|
|
91
91
|
import './Channel/components/Message.js';
|
|
92
92
|
import './Channel/components/SuggestedMentionList.js';
|
|
93
|
-
import './const-
|
|
93
|
+
import './const-c751cfe7.js';
|
|
94
94
|
import './ui/DateSeparator.js';
|
|
95
95
|
import './ui/MessageInput.js';
|
|
96
96
|
import 'stream';
|
|
@@ -118,15 +118,15 @@ import './Channel/components/UnreadCount.js';
|
|
|
118
118
|
import './Channel/components/MessageInput.js';
|
|
119
119
|
import './ui/QuoteMessageInput.js';
|
|
120
120
|
import './OpenChannel/components/OpenChannelUI.js';
|
|
121
|
-
import './OpenChannelProvider-
|
|
121
|
+
import './OpenChannelProvider-0572862e.js';
|
|
122
122
|
import './OpenChannel/components/OpenChannelInput.js';
|
|
123
123
|
import './OpenChannel/components/FrozenChannelNotification.js';
|
|
124
124
|
import './OpenChannel/components/OpenChannelHeader.js';
|
|
125
125
|
import './OpenChannel/components/OpenChannelMessageList.js';
|
|
126
126
|
import './OpenChannel/components/OpenChannelMessage.js';
|
|
127
127
|
import './ui/OpenchannelUserMessage.js';
|
|
128
|
-
import './utils-
|
|
129
|
-
import './openChannelUtils-
|
|
128
|
+
import './utils-77d4fd35.js';
|
|
129
|
+
import './openChannelUtils-d9f15020.js';
|
|
130
130
|
import './ui/OpenChannelAdminMessage.js';
|
|
131
131
|
import './ui/OpenchannelOGMessage.js';
|
|
132
132
|
import './ui/OpenchannelThumbnailMessage.js';
|