@tencentcloud/chat-uikit-react 0.0.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/.babelrc +7 -0
- package/.eslintrc.js +70 -0
- package/README.md +107 -0
- package/dist/cjs/_virtual/DateInput.js +1 -0
- package/dist/cjs/_virtual/DatePicker.js +1 -0
- package/dist/cjs/_virtual/DayInput.js +1 -0
- package/dist/cjs/_virtual/Divider.js +1 -0
- package/dist/cjs/_virtual/Fit.js +1 -0
- package/dist/cjs/_virtual/Input.js +1 -0
- package/dist/cjs/_virtual/MonthInput.js +1 -0
- package/dist/cjs/_virtual/MonthSelect.js +1 -0
- package/dist/cjs/_virtual/NativeInput.js +1 -0
- package/dist/cjs/_virtual/YearInput.js +1 -0
- package/dist/cjs/_virtual/_commonjsHelpers.js +1 -0
- package/dist/cjs/_virtual/clsx.m.js +1 -0
- package/dist/cjs/_virtual/dateFormatter.js +1 -0
- package/dist/cjs/_virtual/dates.js +1 -0
- package/dist/cjs/_virtual/entry.js +1 -0
- package/dist/cjs/_virtual/index.js +1 -0
- package/dist/cjs/_virtual/index10.js +1 -0
- package/dist/cjs/_virtual/index2.js +1 -0
- package/dist/cjs/_virtual/index3.js +1 -0
- package/dist/cjs/_virtual/index4.js +1 -0
- package/dist/cjs/_virtual/index5.js +1 -0
- package/dist/cjs/_virtual/index6.js +1 -0
- package/dist/cjs/_virtual/index7.js +1 -0
- package/dist/cjs/_virtual/index8.js +1 -0
- package/dist/cjs/_virtual/index9.js +1 -0
- package/dist/cjs/_virtual/propTypes.js +1 -0
- package/dist/cjs/_virtual/react-dom.development.js +1 -0
- package/dist/cjs/_virtual/react-dom.production.min.js +1 -0
- package/dist/cjs/_virtual/react-is.development.js +1 -0
- package/dist/cjs/_virtual/react-is.production.min.js +1 -0
- package/dist/cjs/_virtual/scheduler.development.js +1 -0
- package/dist/cjs/_virtual/scheduler.production.min.js +1 -0
- package/dist/cjs/_virtual/tiny-warning.esm.js +1 -0
- package/dist/cjs/_virtual/utils.js +1 -0
- package/dist/cjs/components/Avatar/Avatar.d.ts +22 -0
- package/dist/cjs/components/Avatar/Avatar.js +1 -0
- package/dist/cjs/components/Avatar/default.d.ts +7 -0
- package/dist/cjs/components/Avatar/default.js +1 -0
- package/dist/cjs/components/Checkbox/index.js +1 -0
- package/dist/cjs/components/ConversationCreate/ConversationCreatGroupDetail.js +1 -0
- package/dist/cjs/components/ConversationCreate/ConversationCreate.js +1 -0
- package/dist/cjs/components/ConversationCreate/ConversationCreateSelectView.js +1 -0
- package/dist/cjs/components/ConversationCreate/ConversationCreateUserSelectList.js +1 -0
- package/dist/cjs/components/ConversationCreate/ConversationGroupTypeInfo.js +1 -0
- package/dist/cjs/components/ConversationCreate/hooks/useConversationCreate.js +1 -0
- package/dist/cjs/components/ConversationCreate/static/word.js +1 -0
- package/dist/cjs/components/ConversationPreview/ConversationListContainer.d.ts +10 -0
- package/dist/cjs/components/ConversationPreview/ConversationListContainer.js +1 -0
- package/dist/cjs/components/ConversationPreview/ConversationPreview.d.ts +31 -0
- package/dist/cjs/components/ConversationPreview/ConversationPreview.js +1 -0
- package/dist/cjs/components/ConversationPreview/ConversationPreviewContent.d.ts +7 -0
- package/dist/cjs/components/ConversationPreview/ConversationPreviewContent.js +1 -0
- package/dist/cjs/components/ConversationPreview/utils.js +1 -0
- package/dist/cjs/components/ConversationSearch/ConversationSearchInput.d.ts +5 -0
- package/dist/cjs/components/ConversationSearch/ConversationSearchInput.js +1 -0
- package/dist/cjs/components/ConversationSearch/ConversationSearchResult.d.ts +12 -0
- package/dist/cjs/components/ConversationSearch/ConversationSearchResult.js +1 -0
- package/dist/cjs/components/DivWithEdit/DivWithEdit.js +1 -0
- package/dist/cjs/components/DivWithEdit/WithSelect.js +1 -0
- package/dist/cjs/components/DivWithEdit/WithText.js +1 -0
- package/dist/cjs/components/EmptyStateIndicator/EmptyStateIndicator.d.ts +6 -0
- package/dist/cjs/components/EmptyStateIndicator/EmptyStateIndicator.js +1 -0
- package/dist/cjs/components/Icon/Icon.js +1 -0
- package/dist/cjs/components/Icon/config.js +1 -0
- package/dist/cjs/components/Icon/images/add.png.js +1 -0
- package/dist/cjs/components/Icon/images/arrow-down.png.js +1 -0
- package/dist/cjs/components/Icon/images/arrow-right.png.js +1 -0
- package/dist/cjs/components/Icon/images/back.png.js +1 -0
- package/dist/cjs/components/Icon/images/camera.png.js +1 -0
- package/dist/cjs/components/Icon/images/cancel.png.js +1 -0
- package/dist/cjs/components/Icon/images/clear.png.js +1 -0
- package/dist/cjs/components/Icon/images/close.png.js +1 -0
- package/dist/cjs/components/Icon/images/confirm.png.js +1 -0
- package/dist/cjs/components/Icon/images/copy.png.js +1 -0
- package/dist/cjs/components/Icon/images/create.png.js +1 -0
- package/dist/cjs/components/Icon/images/cry.png.js +1 -0
- package/dist/cjs/components/Icon/images/del.png.js +1 -0
- package/dist/cjs/components/Icon/images/document.png.js +1 -0
- package/dist/cjs/components/Icon/images/edit.png.js +1 -0
- package/dist/cjs/components/Icon/images/effort.png.js +1 -0
- package/dist/cjs/components/Icon/images/ellipse.png.js +1 -0
- package/dist/cjs/components/Icon/images/emoji.png.js +1 -0
- package/dist/cjs/components/Icon/images/file.png.js +1 -0
- package/dist/cjs/components/Icon/images/forward.png.js +1 -0
- package/dist/cjs/components/Icon/images/image.png.js +1 -0
- package/dist/cjs/components/Icon/images/more.png.js +1 -0
- package/dist/cjs/components/Icon/images/progress.png.js +1 -0
- package/dist/cjs/components/Icon/images/quote.png.js +1 -0
- package/dist/cjs/components/Icon/images/reply.png.js +1 -0
- package/dist/cjs/components/Icon/images/revocation.png.js +1 -0
- package/dist/cjs/components/Icon/images/right.png.js +1 -0
- package/dist/cjs/components/Icon/images/search.png.js +1 -0
- package/dist/cjs/components/Icon/images/star.png.js +1 -0
- package/dist/cjs/components/Icon/images/video.png.js +1 -0
- package/dist/cjs/components/Icon/type.js +1 -0
- package/dist/cjs/components/InfiniteScrollPaginator/InfiniteScroll.d.ts +20 -0
- package/dist/cjs/components/InfiniteScrollPaginator/InfiniteScroll.js +1 -0
- package/dist/cjs/components/Input/Input.d.ts +16 -0
- package/dist/cjs/components/Input/Input.js +1 -0
- package/dist/cjs/components/Model/index.js +1 -0
- package/dist/cjs/components/Plugins/hooks/usePluginsElement.js +1 -0
- package/dist/cjs/components/Plugins/index.js +1 -0
- package/dist/cjs/components/Popup/index.js +1 -0
- package/dist/cjs/components/Profile/Profile.js +1 -0
- package/dist/cjs/components/Switch/Switch.js +1 -0
- package/dist/cjs/components/Switch/utils/newId.js +1 -0
- package/dist/cjs/components/TUIChat/TUIChat.d.ts +27 -0
- package/dist/cjs/components/TUIChat/TUIChat.js +1 -0
- package/dist/cjs/components/TUIChat/TUIChatState.js +1 -0
- package/dist/cjs/components/TUIChat/hooks/useCreateMessage.d.ts +31 -0
- package/dist/cjs/components/TUIChat/hooks/useCreateMessage.js +1 -0
- package/dist/cjs/components/TUIChat/hooks/useCreateTUIChatStateContext.js +1 -0
- package/dist/cjs/components/TUIChat/hooks/useHandleMessage.d.ts +7 -0
- package/dist/cjs/components/TUIChat/hooks/useHandleMessage.js +1 -0
- package/dist/cjs/components/TUIChat/hooks/useHandleMessageList.js +1 -0
- package/dist/cjs/components/TUIChat/hooks/useMessageReceviedListener.js +1 -0
- package/dist/cjs/components/TUIChat/unitls.js +1 -0
- package/dist/cjs/components/TUIChatHeader/TUIChatHeader.d.ts +13 -0
- package/dist/cjs/components/TUIChatHeader/TUIChatHeader.js +1 -0
- package/dist/cjs/components/TUIChatHeader/TUIChatHeaderDefault.d.ts +13 -0
- package/dist/cjs/components/TUIChatHeader/TUIChatHeaderDefault.js +1 -0
- package/dist/cjs/components/TUIConversation/TUIConversation.d.ts +10 -0
- package/dist/cjs/components/TUIConversation/TUIConversation.js +1 -0
- package/dist/cjs/components/TUIConversationList/TUIConversationList.d.ts +17 -0
- package/dist/cjs/components/TUIConversationList/TUIConversationList.js +1 -0
- package/dist/cjs/components/TUIConversationList/hooks/useConversationList.js +1 -0
- package/dist/cjs/components/TUIConversationList/hooks/useConversationUpdate.js +1 -0
- package/dist/cjs/components/TUIKit/TUIKit.d.ts +10 -0
- package/dist/cjs/components/TUIKit/TUIKit.js +1 -0
- package/dist/cjs/components/TUIKit/hooks/useCreateTUIKitContext.d.ts +17 -0
- package/dist/cjs/components/TUIKit/hooks/useCreateTUIKitContext.js +1 -0
- package/dist/cjs/components/TUIKit/hooks/useTUIKit.d.ts +17 -0
- package/dist/cjs/components/TUIKit/hooks/useTUIKit.js +1 -0
- package/dist/cjs/components/TUIManage/TUIManage.d.ts +3 -0
- package/dist/cjs/components/TUIManage/TUIManage.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageAudio.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageBubble.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageContext.d.ts +7 -0
- package/dist/cjs/components/TUIMessage/MessageContext.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageCustom.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageFace.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageFile.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageImage.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageLocation.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageMerger.js +1 -0
- package/dist/cjs/components/TUIMessage/MessagePlugins.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageRevoke.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageStatus.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageSystem.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageText.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageTip.js +1 -0
- package/dist/cjs/components/TUIMessage/MessageVideo.js +1 -0
- package/dist/cjs/components/TUIMessage/TUIMessage.d.ts +41 -0
- package/dist/cjs/components/TUIMessage/TUIMessage.js +1 -0
- package/dist/cjs/components/TUIMessage/TUIMessageDefault.js +1 -0
- package/dist/cjs/components/TUIMessage/hooks/useMessageContextHandler.js +1 -0
- package/dist/cjs/components/TUIMessage/hooks/useMessageHandler.js +1 -0
- package/dist/cjs/components/TUIMessage/hooks/useMessagePluginElement.js +1 -0
- package/dist/cjs/components/TUIMessage/hooks/useMessageReply.js +1 -0
- package/dist/cjs/components/TUIMessage/utils/decodeText.js +1 -0
- package/dist/cjs/components/TUIMessage/utils/emojiMap.js +1 -0
- package/dist/cjs/components/TUIMessage/utils/index.js +1 -0
- package/dist/cjs/components/TUIMessageInput/EmojiPicker.js +1 -0
- package/dist/cjs/components/TUIMessageInput/InputPluginsDefalut.d.ts +5 -0
- package/dist/cjs/components/TUIMessageInput/InputPluginsDefalut.js +1 -0
- package/dist/cjs/components/TUIMessageInput/InputQuoteDefalut.js +1 -0
- package/dist/cjs/components/TUIMessageInput/TUIForward.js +1 -0
- package/dist/cjs/components/TUIMessageInput/TUIMessageInput.d.ts +18 -0
- package/dist/cjs/components/TUIMessageInput/TUIMessageInput.js +1 -0
- package/dist/cjs/components/TUIMessageInput/TUIMessageInputDefault.d.ts +5 -0
- package/dist/cjs/components/TUIMessageInput/TUIMessageInputDefault.js +1 -0
- package/dist/cjs/components/TUIMessageInput/hooks/useCreateMessageInputContext.js +1 -0
- package/dist/cjs/components/TUIMessageInput/hooks/useEmojiPicker.d.ts +6 -0
- package/dist/cjs/components/TUIMessageInput/hooks/useEmojiPicker.js +1 -0
- package/dist/cjs/components/TUIMessageInput/hooks/useHandleForwardMessage.js +1 -0
- package/dist/cjs/components/TUIMessageInput/hooks/useHandleQuoteMessage.js +1 -0
- package/dist/cjs/components/TUIMessageInput/hooks/useMessageInputState.d.ts +6 -0
- package/dist/cjs/components/TUIMessageInput/hooks/useMessageInputState.js +1 -0
- package/dist/cjs/components/TUIMessageInput/hooks/useMessageInputText.js +1 -0
- package/dist/cjs/components/TUIMessageInput/hooks/useUploadElement.js +1 -0
- package/dist/cjs/components/TUIMessageInput/hooks/useUploadPicker.d.ts +5 -0
- package/dist/cjs/components/TUIMessageInput/hooks/useUploadPicker.js +1 -0
- package/dist/cjs/components/TUIMessageList/TUIMessageList.d.ts +11 -0
- package/dist/cjs/components/TUIMessageList/TUIMessageList.js +1 -0
- package/dist/cjs/components/TUIMessageList/hooks/useEnrichedMessageList.js +1 -0
- package/dist/cjs/components/TUIMessageList/hooks/useMessageListElement.js +1 -0
- package/dist/cjs/components/TUIProfile/TUIProfile.d.ts +10 -0
- package/dist/cjs/components/TUIProfile/TUIProfile.js +1 -0
- package/dist/cjs/components/TUIProfile/TUIProfileDefault.d.ts +12 -0
- package/dist/cjs/components/TUIProfile/TUIProfileDefault.js +1 -0
- package/dist/cjs/components/TUIProfile/hooks/useMyProfile.d.ts +17 -0
- package/dist/cjs/components/TUIProfile/hooks/useMyProfile.js +1 -0
- package/dist/cjs/components/Toast/index.js +1 -0
- package/dist/cjs/components/untils.js +1 -0
- package/dist/cjs/constants.d.ts +11 -0
- package/dist/cjs/constants.js +1 -0
- package/dist/cjs/context/ComponentContext.d.ts +26 -0
- package/dist/cjs/context/ComponentContext.js +1 -0
- package/dist/cjs/context/TUIChatActionContext.d.ts +27 -0
- package/dist/cjs/context/TUIChatActionContext.js +1 -0
- package/dist/cjs/context/TUIChatStateContext.d.ts +25 -0
- package/dist/cjs/context/TUIChatStateContext.js +1 -0
- package/dist/cjs/context/TUIConversationContext.js +1 -0
- package/dist/cjs/context/TUIKitContext.d.ts +21 -0
- package/dist/cjs/context/TUIKitContext.js +1 -0
- package/dist/cjs/context/TUIMessageContext.d.ts +41 -0
- package/dist/cjs/context/TUIMessageContext.js +1 -0
- package/dist/cjs/context/TUIMessageInputContext.d.ts +37 -0
- package/dist/cjs/context/TUIMessageInputContext.js +1 -0
- package/dist/cjs/hooks/useConversation.d.ts +25 -0
- package/dist/cjs/hooks/useConversation.js +1 -0
- package/dist/cjs/hooks/useProfile.d.ts +5 -0
- package/dist/cjs/hooks/useProfile.js +1 -0
- package/dist/cjs/index.css +1 -0
- package/dist/cjs/index.d.css +1281 -0
- package/dist/cjs/index.d.ts +29 -0
- package/dist/cjs/index.js +1 -0
- package/dist/esm/_virtual/DateInput.js +1 -0
- package/dist/esm/_virtual/DatePicker.js +1 -0
- package/dist/esm/_virtual/DayInput.js +1 -0
- package/dist/esm/_virtual/Divider.js +1 -0
- package/dist/esm/_virtual/Fit.js +1 -0
- package/dist/esm/_virtual/Input.js +1 -0
- package/dist/esm/_virtual/MonthInput.js +1 -0
- package/dist/esm/_virtual/MonthSelect.js +1 -0
- package/dist/esm/_virtual/NativeInput.js +1 -0
- package/dist/esm/_virtual/YearInput.js +1 -0
- package/dist/esm/_virtual/_commonjsHelpers.js +1 -0
- package/dist/esm/_virtual/clsx.m.js +1 -0
- package/dist/esm/_virtual/dateFormatter.js +1 -0
- package/dist/esm/_virtual/dates.js +1 -0
- package/dist/esm/_virtual/entry.js +1 -0
- package/dist/esm/_virtual/index.js +1 -0
- package/dist/esm/_virtual/index10.js +1 -0
- package/dist/esm/_virtual/index2.js +1 -0
- package/dist/esm/_virtual/index3.js +1 -0
- package/dist/esm/_virtual/index4.js +1 -0
- package/dist/esm/_virtual/index5.js +1 -0
- package/dist/esm/_virtual/index6.js +1 -0
- package/dist/esm/_virtual/index7.js +1 -0
- package/dist/esm/_virtual/index8.js +1 -0
- package/dist/esm/_virtual/index9.js +1 -0
- package/dist/esm/_virtual/propTypes.js +1 -0
- package/dist/esm/_virtual/react-dom.development.js +1 -0
- package/dist/esm/_virtual/react-dom.production.min.js +1 -0
- package/dist/esm/_virtual/react-is.development.js +1 -0
- package/dist/esm/_virtual/react-is.production.min.js +1 -0
- package/dist/esm/_virtual/scheduler.development.js +1 -0
- package/dist/esm/_virtual/scheduler.production.min.js +1 -0
- package/dist/esm/_virtual/tiny-warning.esm.js +1 -0
- package/dist/esm/_virtual/utils.js +1 -0
- package/dist/esm/components/Avatar/Avatar.d.ts +22 -0
- package/dist/esm/components/Avatar/Avatar.js +1 -0
- package/dist/esm/components/Avatar/default.d.ts +7 -0
- package/dist/esm/components/Avatar/default.js +1 -0
- package/dist/esm/components/Checkbox/index.js +1 -0
- package/dist/esm/components/ConversationCreate/ConversationCreatGroupDetail.js +1 -0
- package/dist/esm/components/ConversationCreate/ConversationCreate.js +1 -0
- package/dist/esm/components/ConversationCreate/ConversationCreateSelectView.js +1 -0
- package/dist/esm/components/ConversationCreate/ConversationCreateUserSelectList.js +1 -0
- package/dist/esm/components/ConversationCreate/ConversationGroupTypeInfo.js +1 -0
- package/dist/esm/components/ConversationCreate/hooks/useConversationCreate.js +1 -0
- package/dist/esm/components/ConversationCreate/static/word.js +1 -0
- package/dist/esm/components/ConversationPreview/ConversationListContainer.d.ts +10 -0
- package/dist/esm/components/ConversationPreview/ConversationListContainer.js +1 -0
- package/dist/esm/components/ConversationPreview/ConversationPreview.d.ts +31 -0
- package/dist/esm/components/ConversationPreview/ConversationPreview.js +1 -0
- package/dist/esm/components/ConversationPreview/ConversationPreviewContent.d.ts +7 -0
- package/dist/esm/components/ConversationPreview/ConversationPreviewContent.js +1 -0
- package/dist/esm/components/ConversationPreview/utils.js +1 -0
- package/dist/esm/components/ConversationSearch/ConversationSearchInput.d.ts +5 -0
- package/dist/esm/components/ConversationSearch/ConversationSearchInput.js +1 -0
- package/dist/esm/components/ConversationSearch/ConversationSearchResult.d.ts +12 -0
- package/dist/esm/components/ConversationSearch/ConversationSearchResult.js +1 -0
- package/dist/esm/components/DivWithEdit/DivWithEdit.js +1 -0
- package/dist/esm/components/DivWithEdit/WithSelect.js +1 -0
- package/dist/esm/components/DivWithEdit/WithText.js +1 -0
- package/dist/esm/components/EmptyStateIndicator/EmptyStateIndicator.d.ts +6 -0
- package/dist/esm/components/EmptyStateIndicator/EmptyStateIndicator.js +1 -0
- package/dist/esm/components/Icon/Icon.js +1 -0
- package/dist/esm/components/Icon/config.js +1 -0
- package/dist/esm/components/Icon/images/add.png.js +1 -0
- package/dist/esm/components/Icon/images/arrow-down.png.js +1 -0
- package/dist/esm/components/Icon/images/arrow-right.png.js +1 -0
- package/dist/esm/components/Icon/images/back.png.js +1 -0
- package/dist/esm/components/Icon/images/camera.png.js +1 -0
- package/dist/esm/components/Icon/images/cancel.png.js +1 -0
- package/dist/esm/components/Icon/images/clear.png.js +1 -0
- package/dist/esm/components/Icon/images/close.png.js +1 -0
- package/dist/esm/components/Icon/images/confirm.png.js +1 -0
- package/dist/esm/components/Icon/images/copy.png.js +1 -0
- package/dist/esm/components/Icon/images/create.png.js +1 -0
- package/dist/esm/components/Icon/images/cry.png.js +1 -0
- package/dist/esm/components/Icon/images/del.png.js +1 -0
- package/dist/esm/components/Icon/images/document.png.js +1 -0
- package/dist/esm/components/Icon/images/edit.png.js +1 -0
- package/dist/esm/components/Icon/images/effort.png.js +1 -0
- package/dist/esm/components/Icon/images/ellipse.png.js +1 -0
- package/dist/esm/components/Icon/images/emoji.png.js +1 -0
- package/dist/esm/components/Icon/images/file.png.js +1 -0
- package/dist/esm/components/Icon/images/forward.png.js +1 -0
- package/dist/esm/components/Icon/images/image.png.js +1 -0
- package/dist/esm/components/Icon/images/more.png.js +1 -0
- package/dist/esm/components/Icon/images/progress.png.js +1 -0
- package/dist/esm/components/Icon/images/quote.png.js +1 -0
- package/dist/esm/components/Icon/images/reply.png.js +1 -0
- package/dist/esm/components/Icon/images/revocation.png.js +1 -0
- package/dist/esm/components/Icon/images/right.png.js +1 -0
- package/dist/esm/components/Icon/images/search.png.js +1 -0
- package/dist/esm/components/Icon/images/star.png.js +1 -0
- package/dist/esm/components/Icon/images/video.png.js +1 -0
- package/dist/esm/components/Icon/type.js +1 -0
- package/dist/esm/components/InfiniteScrollPaginator/InfiniteScroll.d.ts +20 -0
- package/dist/esm/components/InfiniteScrollPaginator/InfiniteScroll.js +1 -0
- package/dist/esm/components/Input/Input.d.ts +16 -0
- package/dist/esm/components/Input/Input.js +1 -0
- package/dist/esm/components/Model/index.js +1 -0
- package/dist/esm/components/Plugins/hooks/usePluginsElement.js +1 -0
- package/dist/esm/components/Plugins/index.js +1 -0
- package/dist/esm/components/Popup/index.js +1 -0
- package/dist/esm/components/Profile/Profile.js +1 -0
- package/dist/esm/components/Switch/Switch.js +1 -0
- package/dist/esm/components/Switch/utils/newId.js +1 -0
- package/dist/esm/components/TUIChat/TUIChat.d.ts +27 -0
- package/dist/esm/components/TUIChat/TUIChat.js +1 -0
- package/dist/esm/components/TUIChat/TUIChatState.js +1 -0
- package/dist/esm/components/TUIChat/hooks/useCreateMessage.d.ts +31 -0
- package/dist/esm/components/TUIChat/hooks/useCreateMessage.js +1 -0
- package/dist/esm/components/TUIChat/hooks/useCreateTUIChatStateContext.js +1 -0
- package/dist/esm/components/TUIChat/hooks/useHandleMessage.d.ts +7 -0
- package/dist/esm/components/TUIChat/hooks/useHandleMessage.js +1 -0
- package/dist/esm/components/TUIChat/hooks/useHandleMessageList.js +1 -0
- package/dist/esm/components/TUIChat/hooks/useMessageReceviedListener.js +1 -0
- package/dist/esm/components/TUIChat/unitls.js +1 -0
- package/dist/esm/components/TUIChatHeader/TUIChatHeader.d.ts +13 -0
- package/dist/esm/components/TUIChatHeader/TUIChatHeader.js +1 -0
- package/dist/esm/components/TUIChatHeader/TUIChatHeaderDefault.d.ts +13 -0
- package/dist/esm/components/TUIChatHeader/TUIChatHeaderDefault.js +1 -0
- package/dist/esm/components/TUIConversation/TUIConversation.d.ts +10 -0
- package/dist/esm/components/TUIConversation/TUIConversation.js +1 -0
- package/dist/esm/components/TUIConversationList/TUIConversationList.d.ts +17 -0
- package/dist/esm/components/TUIConversationList/TUIConversationList.js +1 -0
- package/dist/esm/components/TUIConversationList/hooks/useConversationList.js +1 -0
- package/dist/esm/components/TUIConversationList/hooks/useConversationUpdate.js +1 -0
- package/dist/esm/components/TUIKit/TUIKit.d.ts +10 -0
- package/dist/esm/components/TUIKit/TUIKit.js +1 -0
- package/dist/esm/components/TUIKit/hooks/useCreateTUIKitContext.d.ts +17 -0
- package/dist/esm/components/TUIKit/hooks/useCreateTUIKitContext.js +1 -0
- package/dist/esm/components/TUIKit/hooks/useTUIKit.d.ts +17 -0
- package/dist/esm/components/TUIKit/hooks/useTUIKit.js +1 -0
- package/dist/esm/components/TUIManage/TUIManage.d.ts +3 -0
- package/dist/esm/components/TUIManage/TUIManage.js +1 -0
- package/dist/esm/components/TUIMessage/MessageAudio.js +1 -0
- package/dist/esm/components/TUIMessage/MessageBubble.js +1 -0
- package/dist/esm/components/TUIMessage/MessageContext.d.ts +7 -0
- package/dist/esm/components/TUIMessage/MessageContext.js +1 -0
- package/dist/esm/components/TUIMessage/MessageCustom.js +1 -0
- package/dist/esm/components/TUIMessage/MessageFace.js +1 -0
- package/dist/esm/components/TUIMessage/MessageFile.js +1 -0
- package/dist/esm/components/TUIMessage/MessageImage.js +1 -0
- package/dist/esm/components/TUIMessage/MessageLocation.js +1 -0
- package/dist/esm/components/TUIMessage/MessageMerger.js +1 -0
- package/dist/esm/components/TUIMessage/MessagePlugins.js +1 -0
- package/dist/esm/components/TUIMessage/MessageRevoke.js +1 -0
- package/dist/esm/components/TUIMessage/MessageStatus.js +1 -0
- package/dist/esm/components/TUIMessage/MessageSystem.js +1 -0
- package/dist/esm/components/TUIMessage/MessageText.js +1 -0
- package/dist/esm/components/TUIMessage/MessageTip.js +1 -0
- package/dist/esm/components/TUIMessage/MessageVideo.js +1 -0
- package/dist/esm/components/TUIMessage/TUIMessage.d.ts +41 -0
- package/dist/esm/components/TUIMessage/TUIMessage.js +1 -0
- package/dist/esm/components/TUIMessage/TUIMessageDefault.js +1 -0
- package/dist/esm/components/TUIMessage/hooks/useMessageContextHandler.js +1 -0
- package/dist/esm/components/TUIMessage/hooks/useMessageHandler.js +1 -0
- package/dist/esm/components/TUIMessage/hooks/useMessagePluginElement.js +1 -0
- package/dist/esm/components/TUIMessage/hooks/useMessageReply.js +1 -0
- package/dist/esm/components/TUIMessage/utils/decodeText.js +1 -0
- package/dist/esm/components/TUIMessage/utils/emojiMap.js +1 -0
- package/dist/esm/components/TUIMessage/utils/index.js +1 -0
- package/dist/esm/components/TUIMessageInput/EmojiPicker.js +1 -0
- package/dist/esm/components/TUIMessageInput/InputPluginsDefalut.d.ts +5 -0
- package/dist/esm/components/TUIMessageInput/InputPluginsDefalut.js +1 -0
- package/dist/esm/components/TUIMessageInput/InputQuoteDefalut.js +1 -0
- package/dist/esm/components/TUIMessageInput/TUIForward.js +1 -0
- package/dist/esm/components/TUIMessageInput/TUIMessageInput.d.ts +18 -0
- package/dist/esm/components/TUIMessageInput/TUIMessageInput.js +1 -0
- package/dist/esm/components/TUIMessageInput/TUIMessageInputDefault.d.ts +5 -0
- package/dist/esm/components/TUIMessageInput/TUIMessageInputDefault.js +1 -0
- package/dist/esm/components/TUIMessageInput/hooks/useCreateMessageInputContext.js +1 -0
- package/dist/esm/components/TUIMessageInput/hooks/useEmojiPicker.d.ts +6 -0
- package/dist/esm/components/TUIMessageInput/hooks/useEmojiPicker.js +1 -0
- package/dist/esm/components/TUIMessageInput/hooks/useHandleForwardMessage.js +1 -0
- package/dist/esm/components/TUIMessageInput/hooks/useHandleQuoteMessage.js +1 -0
- package/dist/esm/components/TUIMessageInput/hooks/useMessageInputState.d.ts +6 -0
- package/dist/esm/components/TUIMessageInput/hooks/useMessageInputState.js +1 -0
- package/dist/esm/components/TUIMessageInput/hooks/useMessageInputText.js +1 -0
- package/dist/esm/components/TUIMessageInput/hooks/useUploadElement.js +1 -0
- package/dist/esm/components/TUIMessageInput/hooks/useUploadPicker.d.ts +5 -0
- package/dist/esm/components/TUIMessageInput/hooks/useUploadPicker.js +1 -0
- package/dist/esm/components/TUIMessageList/TUIMessageList.d.ts +11 -0
- package/dist/esm/components/TUIMessageList/TUIMessageList.js +1 -0
- package/dist/esm/components/TUIMessageList/hooks/useEnrichedMessageList.js +1 -0
- package/dist/esm/components/TUIMessageList/hooks/useMessageListElement.js +1 -0
- package/dist/esm/components/TUIProfile/TUIProfile.d.ts +10 -0
- package/dist/esm/components/TUIProfile/TUIProfile.js +1 -0
- package/dist/esm/components/TUIProfile/TUIProfileDefault.d.ts +12 -0
- package/dist/esm/components/TUIProfile/TUIProfileDefault.js +1 -0
- package/dist/esm/components/TUIProfile/hooks/useMyProfile.d.ts +17 -0
- package/dist/esm/components/TUIProfile/hooks/useMyProfile.js +1 -0
- package/dist/esm/components/Toast/index.js +1 -0
- package/dist/esm/components/untils.js +1 -0
- package/dist/esm/constants.d.ts +11 -0
- package/dist/esm/constants.js +1 -0
- package/dist/esm/context/ComponentContext.d.ts +26 -0
- package/dist/esm/context/ComponentContext.js +1 -0
- package/dist/esm/context/TUIChatActionContext.d.ts +27 -0
- package/dist/esm/context/TUIChatActionContext.js +1 -0
- package/dist/esm/context/TUIChatStateContext.d.ts +25 -0
- package/dist/esm/context/TUIChatStateContext.js +1 -0
- package/dist/esm/context/TUIConversationContext.js +1 -0
- package/dist/esm/context/TUIKitContext.d.ts +21 -0
- package/dist/esm/context/TUIKitContext.js +1 -0
- package/dist/esm/context/TUIMessageContext.d.ts +41 -0
- package/dist/esm/context/TUIMessageContext.js +1 -0
- package/dist/esm/context/TUIMessageInputContext.d.ts +37 -0
- package/dist/esm/context/TUIMessageInputContext.js +1 -0
- package/dist/esm/hooks/useConversation.d.ts +25 -0
- package/dist/esm/hooks/useConversation.js +1 -0
- package/dist/esm/hooks/useProfile.d.ts +5 -0
- package/dist/esm/hooks/useProfile.js +1 -0
- package/dist/esm/index.css +1 -0
- package/dist/esm/index.d.css +1281 -0
- package/dist/esm/index.d.ts +29 -0
- package/dist/esm/index.js +1 -0
- package/package.json +70 -0
- package/rollup.config.js +66 -0
- package/src/@types/images.d.ts +7 -0
- package/src/@types/index.d.ts +1 -0
- package/src/@types/index.js +3 -0
- package/src/components/Avatar/Avatar.tsx +151 -0
- package/src/components/Avatar/default.ts +5 -0
- package/src/components/Avatar/index.ts +2 -0
- package/src/components/Avatar/styles/index.scss +55 -0
- package/src/components/Checkbox/index.tsx +53 -0
- package/src/components/Checkbox/styles/color.scss +11 -0
- package/src/components/Checkbox/styles/index.scss +2 -0
- package/src/components/Checkbox/styles/layout.scss +25 -0
- package/src/components/ConversationCreate/ConversationCreatGroupDetail.tsx +155 -0
- package/src/components/ConversationCreate/ConversationCreate.tsx +74 -0
- package/src/components/ConversationCreate/ConversationCreateSelectView.tsx +46 -0
- package/src/components/ConversationCreate/ConversationCreateUserSelectList.tsx +158 -0
- package/src/components/ConversationCreate/ConversationGroupTypeInfo.tsx +50 -0
- package/src/components/ConversationCreate/hooks/useConversationCreate.tsx +105 -0
- package/src/components/ConversationCreate/index.ts +6 -0
- package/src/components/ConversationCreate/static/word.ts +300 -0
- package/src/components/ConversationCreate/styles/ConversationCreatGroupDetail.scss +58 -0
- package/src/components/ConversationCreate/styles/conversationCreateSelectView.scss +32 -0
- package/src/components/ConversationCreate/styles/conversationGroupTypeInfo.scss +61 -0
- package/src/components/ConversationCreate/styles/index.scss +87 -0
- package/src/components/ConversationPreview/ConversationListContainer.tsx +20 -0
- package/src/components/ConversationPreview/ConversationPreview.tsx +75 -0
- package/src/components/ConversationPreview/ConversationPreviewContent.tsx +136 -0
- package/src/components/ConversationPreview/index.ts +2 -0
- package/src/components/ConversationPreview/styles/index.scss +140 -0
- package/src/components/ConversationPreview/utils.tsx +124 -0
- package/src/components/ConversationSearch/ConversationSearchInput.tsx +25 -0
- package/src/components/ConversationSearch/ConversationSearchResult.tsx +39 -0
- package/src/components/ConversationSearch/index.ts +2 -0
- package/src/components/ConversationSearch/styles/index.scss +19 -0
- package/src/components/DivWithEdit/DivWithEdit.tsx +90 -0
- package/src/components/DivWithEdit/WithSelect.tsx +29 -0
- package/src/components/DivWithEdit/WithText.tsx +42 -0
- package/src/components/DivWithEdit/index.ts +1 -0
- package/src/components/DivWithEdit/styles/index.scss +68 -0
- package/src/components/EmptyStateIndicator/EmptyStateIndicator.tsx +23 -0
- package/src/components/EmptyStateIndicator/index.ts +1 -0
- package/src/components/Icon/Icon.tsx +40 -0
- package/src/components/Icon/config.ts +164 -0
- package/src/components/Icon/images/add.png +0 -0
- package/src/components/Icon/images/arrow-down.png +0 -0
- package/src/components/Icon/images/arrow-right.png +0 -0
- package/src/components/Icon/images/back.png +0 -0
- package/src/components/Icon/images/camera.png +0 -0
- package/src/components/Icon/images/cancel.png +0 -0
- package/src/components/Icon/images/clear.png +0 -0
- package/src/components/Icon/images/close.png +0 -0
- package/src/components/Icon/images/confirm.png +0 -0
- package/src/components/Icon/images/copy.png +0 -0
- package/src/components/Icon/images/create.png +0 -0
- package/src/components/Icon/images/cry.png +0 -0
- package/src/components/Icon/images/del.png +0 -0
- package/src/components/Icon/images/document.png +0 -0
- package/src/components/Icon/images/edit.png +0 -0
- package/src/components/Icon/images/effort.png +0 -0
- package/src/components/Icon/images/ellipse.png +0 -0
- package/src/components/Icon/images/emoji.png +0 -0
- package/src/components/Icon/images/file.png +0 -0
- package/src/components/Icon/images/forward.png +0 -0
- package/src/components/Icon/images/image.png +0 -0
- package/src/components/Icon/images/more.png +0 -0
- package/src/components/Icon/images/progress.png +0 -0
- package/src/components/Icon/images/quote.png +0 -0
- package/src/components/Icon/images/reply.png +0 -0
- package/src/components/Icon/images/revocation.png +0 -0
- package/src/components/Icon/images/right.png +0 -0
- package/src/components/Icon/images/search.png +0 -0
- package/src/components/Icon/images/star.png +0 -0
- package/src/components/Icon/images/video.png +0 -0
- package/src/components/Icon/index.ts +2 -0
- package/src/components/Icon/styles/index.scss +31 -0
- package/src/components/Icon/type.ts +32 -0
- package/src/components/InfiniteScrollPaginator/InfiniteScroll.tsx +115 -0
- package/src/components/InfiniteScrollPaginator/index.ts +1 -0
- package/src/components/Input/Input.tsx +108 -0
- package/src/components/Input/index.ts +1 -0
- package/src/components/Input/styles/index.scss +44 -0
- package/src/components/Model/index.tsx +24 -0
- package/src/components/Model/styles/color.scss +0 -0
- package/src/components/Model/styles/index.scss +2 -0
- package/src/components/Model/styles/layout.scss +12 -0
- package/src/components/Plugins/hooks/index.ts +1 -0
- package/src/components/Plugins/hooks/usePluginsElement.tsx +16 -0
- package/src/components/Plugins/index.tsx +99 -0
- package/src/components/Plugins/styles/color.scss +7 -0
- package/src/components/Plugins/styles/index.scss +2 -0
- package/src/components/Plugins/styles/layout.scss +18 -0
- package/src/components/Popup/index.tsx +76 -0
- package/src/components/Popup/styles/color.scss +0 -0
- package/src/components/Popup/styles/index.scss +2 -0
- package/src/components/Popup/styles/layout.scss +6 -0
- package/src/components/Profile/Profile.tsx +25 -0
- package/src/components/Profile/hooks/useProfile.tsx +28 -0
- package/src/components/Profile/index.ts +2 -0
- package/src/components/Profile/styles/index.scss +17 -0
- package/src/components/Switch/Switch.scss +37 -0
- package/src/components/Switch/Switch.tsx +41 -0
- package/src/components/Switch/index.ts +1 -0
- package/src/components/Switch/utils/newId.tsx +6 -0
- package/src/components/TUIChat/TUIChat.tsx +276 -0
- package/src/components/TUIChat/TUIChatState.tsx +129 -0
- package/src/components/TUIChat/hooks/useCreateMessage.tsx +117 -0
- package/src/components/TUIChat/hooks/useCreateTUIChatStateContext.tsx +34 -0
- package/src/components/TUIChat/hooks/useHandleMessage.tsx +33 -0
- package/src/components/TUIChat/hooks/useHandleMessageList.tsx +70 -0
- package/src/components/TUIChat/hooks/useIsMounted.ts +14 -0
- package/src/components/TUIChat/hooks/useMessageReceviedListener.tsx +26 -0
- package/src/components/TUIChat/index.ts +2 -0
- package/src/components/TUIChat/styles/index.scss +1 -0
- package/src/components/TUIChat/styles/layout.scss +9 -0
- package/src/components/TUIChat/unitls.ts +55 -0
- package/src/components/TUIChatHeader/TUIChatHeader.tsx +41 -0
- package/src/components/TUIChatHeader/TUIChatHeaderDefault.tsx +97 -0
- package/src/components/TUIChatHeader/index.ts +2 -0
- package/src/components/TUIChatHeader/styles/color.scss +3 -0
- package/src/components/TUIChatHeader/styles/index.scss +2 -0
- package/src/components/TUIChatHeader/styles/layout.scss +32 -0
- package/src/components/TUIConversation/TUIConversation.tsx +44 -0
- package/src/components/TUIConversation/index.ts +1 -0
- package/src/components/TUIConversationList/TUIConversationList.tsx +142 -0
- package/src/components/TUIConversationList/hooks/useConversationList.tsx +41 -0
- package/src/components/TUIConversationList/hooks/useConversationUpdate.tsx +33 -0
- package/src/components/TUIConversationList/index.scss +36 -0
- package/src/components/TUIConversationList/index.ts +2 -0
- package/src/components/TUIKit/TUIKit.tsx +56 -0
- package/src/components/TUIKit/hooks/useCreateTUIKitContext.tsx +40 -0
- package/src/components/TUIKit/hooks/useTUIKit.tsx +40 -0
- package/src/components/TUIKit/index.ts +3 -0
- package/src/components/TUIKit/styles/index.scss +9 -0
- package/src/components/TUIKit/styles/reset.scss +43 -0
- package/src/components/TUIManage/TUIManage.tsx +86 -0
- package/src/components/TUIManage/index.ts +1 -0
- package/src/components/TUIManage/styles/index.scss +67 -0
- package/src/components/TUIMessage/MessageAudio.tsx +28 -0
- package/src/components/TUIMessage/MessageBubble.tsx +99 -0
- package/src/components/TUIMessage/MessageContext.tsx +81 -0
- package/src/components/TUIMessage/MessageCustom.tsx +40 -0
- package/src/components/TUIMessage/MessageFace.tsx +28 -0
- package/src/components/TUIMessage/MessageFile.tsx +35 -0
- package/src/components/TUIMessage/MessageImage.tsx +42 -0
- package/src/components/TUIMessage/MessageLocation.tsx +29 -0
- package/src/components/TUIMessage/MessageMerger.tsx +37 -0
- package/src/components/TUIMessage/MessagePlugins.tsx +149 -0
- package/src/components/TUIMessage/MessageRevoke.tsx +47 -0
- package/src/components/TUIMessage/MessageStatus.tsx +34 -0
- package/src/components/TUIMessage/MessageSystem.tsx +30 -0
- package/src/components/TUIMessage/MessageText.tsx +43 -0
- package/src/components/TUIMessage/MessageTip.tsx +28 -0
- package/src/components/TUIMessage/MessageVideo.tsx +42 -0
- package/src/components/TUIMessage/TUIMessage.tsx +98 -0
- package/src/components/TUIMessage/TUIMessageDefault.tsx +93 -0
- package/src/components/TUIMessage/hooks/index.ts +3 -0
- package/src/components/TUIMessage/hooks/useMessageContextHandler.ts +70 -0
- package/src/components/TUIMessage/hooks/useMessageHandler.ts +142 -0
- package/src/components/TUIMessage/hooks/useMessagePluginElement.tsx +17 -0
- package/src/components/TUIMessage/hooks/useMessageReply.ts +65 -0
- package/src/components/TUIMessage/index.ts +3 -0
- package/src/components/TUIMessage/styles/color.scss +32 -0
- package/src/components/TUIMessage/styles/index.scss +2 -0
- package/src/components/TUIMessage/styles/layout.scss +389 -0
- package/src/components/TUIMessage/utils/decodeText.ts +61 -0
- package/src/components/TUIMessage/utils/emojiMap.ts +311 -0
- package/src/components/TUIMessage/utils/index.ts +463 -0
- package/src/components/TUIMessageInput/EmojiPicker.tsx +71 -0
- package/src/components/TUIMessageInput/InputPluginsDefalut.tsx +69 -0
- package/src/components/TUIMessageInput/InputQuoteDefalut.tsx +41 -0
- package/src/components/TUIMessageInput/TUIForward.tsx +194 -0
- package/src/components/TUIMessageInput/TUIMessageInput.tsx +94 -0
- package/src/components/TUIMessageInput/TUIMessageInputDefault.tsx +75 -0
- package/src/components/TUIMessageInput/hooks/index.ts +6 -0
- package/src/components/TUIMessageInput/hooks/useCreateMessageInputContext.ts +51 -0
- package/src/components/TUIMessageInput/hooks/useEmojiPicker.tsx +42 -0
- package/src/components/TUIMessageInput/hooks/useHandleForwardMessage.tsx +41 -0
- package/src/components/TUIMessageInput/hooks/useHandleQuoteMessage.tsx +63 -0
- package/src/components/TUIMessageInput/hooks/useMessageInputState.tsx +101 -0
- package/src/components/TUIMessageInput/hooks/useMessageInputText.tsx +176 -0
- package/src/components/TUIMessageInput/hooks/usePluginsElement.tsx +24 -0
- package/src/components/TUIMessageInput/hooks/useUploadElement.tsx +35 -0
- package/src/components/TUIMessageInput/hooks/useUploadPicker.tsx +40 -0
- package/src/components/TUIMessageInput/index.ts +3 -0
- package/src/components/TUIMessageInput/styles/color.scss +17 -0
- package/src/components/TUIMessageInput/styles/index.scss +2 -0
- package/src/components/TUIMessageInput/styles/layout.scss +280 -0
- package/src/components/TUIMessageList/TUIMessageList.tsx +106 -0
- package/src/components/TUIMessageList/hooks/useEnrichedMessageList.tsx +16 -0
- package/src/components/TUIMessageList/hooks/useMessageListElement.tsx +24 -0
- package/src/components/TUIMessageList/index.ts +2 -0
- package/src/components/TUIMessageList/styles/color.scss +0 -0
- package/src/components/TUIMessageList/styles/index.scss +2 -0
- package/src/components/TUIMessageList/styles/layout.scss +28 -0
- package/src/components/TUIProfile/TUIProfile.tsx +37 -0
- package/src/components/TUIProfile/TUIProfileDefault.tsx +247 -0
- package/src/components/TUIProfile/hooks/index.ts +1 -0
- package/src/components/TUIProfile/hooks/useMyProfile.tsx +64 -0
- package/src/components/TUIProfile/index.ts +2 -0
- package/src/components/TUIProfile/styles/color.scss +6 -0
- package/src/components/TUIProfile/styles/index.scss +2 -0
- package/src/components/TUIProfile/styles/layout.scss +91 -0
- package/src/components/Toast/index.tsx +44 -0
- package/src/components/Toast/styles/color.scss +11 -0
- package/src/components/Toast/styles/index.scss +2 -0
- package/src/components/Toast/styles/layout.scss +11 -0
- package/src/components/index.ts +12 -0
- package/src/components/untils.ts +72 -0
- package/src/constants.ts +84 -0
- package/src/context/ComponentContext.tsx +46 -0
- package/src/context/TUIChatActionContext.tsx +57 -0
- package/src/context/TUIChatStateContext.tsx +40 -0
- package/src/context/TUIConversationContext.tsx +27 -0
- package/src/context/TUIKitContext.tsx +31 -0
- package/src/context/TUIMessageContext.tsx +36 -0
- package/src/context/TUIMessageInputContext.tsx +56 -0
- package/src/context/index.ts +6 -0
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useConversation.tsx +78 -0
- package/src/hooks/useProfile.tsx +8 -0
- package/src/index.ts +3 -0
- package/tsconfig.json +12 -0
|
@@ -0,0 +1,463 @@
|
|
|
1
|
+
import TIM, { Conversation, Group, Message } from 'tim-js-sdk';
|
|
2
|
+
import { decodeText } from './decodeText';
|
|
3
|
+
import constant, { MESSAGE_STATUS } from '../../../constants';
|
|
4
|
+
import { JSONStringToParse } from '../../untils';
|
|
5
|
+
|
|
6
|
+
function t(params:string) {
|
|
7
|
+
const str = params.split('.');
|
|
8
|
+
return str[str.length - 1];
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// Handling avatars
|
|
12
|
+
export function handleAvatar(item: any) {
|
|
13
|
+
let avatar = '';
|
|
14
|
+
switch (item.type) {
|
|
15
|
+
case TIM.TYPES.CONV_C2C:
|
|
16
|
+
avatar = isUrl(item?.userProfile?.avatar)
|
|
17
|
+
? item?.userProfile?.avatar
|
|
18
|
+
: 'https://web.sdk.qcloud.com/component/TUIKit/assets/avatar_21.png';
|
|
19
|
+
break;
|
|
20
|
+
case TIM.TYPES.CONV_GROUP:
|
|
21
|
+
avatar = isUrl(item?.groupProfile?.avatar)
|
|
22
|
+
? item?.groupProfile?.avatar
|
|
23
|
+
: 'https://sdk-web-1252463788.cos.ap-hongkong.myqcloud.com/im/demo/TUIkit/web/img/constomer.svg';
|
|
24
|
+
break;
|
|
25
|
+
default:
|
|
26
|
+
avatar = isUrl(item?.groupProfile?.avatar)
|
|
27
|
+
? item?.groupProfile?.avatar
|
|
28
|
+
: 'https://web.sdk.qcloud.com/component/TUIKit/assets/group_avatar.png';
|
|
29
|
+
break;
|
|
30
|
+
}
|
|
31
|
+
return avatar;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
// Handling names
|
|
35
|
+
export function handleName(item: Conversation) {
|
|
36
|
+
let name = '';
|
|
37
|
+
switch (item.type) {
|
|
38
|
+
case TIM.TYPES.CONV_C2C:
|
|
39
|
+
name = item?.userProfile.nick || item?.userProfile?.userID || '';
|
|
40
|
+
break;
|
|
41
|
+
case TIM.TYPES.CONV_GROUP:
|
|
42
|
+
name = item.groupProfile.name || item?.groupProfile?.groupID || '';
|
|
43
|
+
break;
|
|
44
|
+
default:
|
|
45
|
+
name = t('系统通知');
|
|
46
|
+
break;
|
|
47
|
+
}
|
|
48
|
+
return name;
|
|
49
|
+
}
|
|
50
|
+
// Handle whether there is someone@
|
|
51
|
+
export function handleAt(item: any) {
|
|
52
|
+
const List = [
|
|
53
|
+
`[${t('TUIConversation.有人@我')}]`,
|
|
54
|
+
`[${t('TUIConversation.@所有人')}]`,
|
|
55
|
+
`[${t('TUIConversation.@所有人')}][${t('TUIConversation.有人@我')}]`,
|
|
56
|
+
];
|
|
57
|
+
let showAtType = '';
|
|
58
|
+
for (let index = 0; index < item.groupAtInfoList.length; index += 1) {
|
|
59
|
+
if (item.groupAtInfoList[index].atTypeArray[0] && item.unreadCount > 0) {
|
|
60
|
+
showAtType = List[item.groupAtInfoList[index].atTypeArray[0] - 1];
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
return showAtType;
|
|
64
|
+
}
|
|
65
|
+
// Internal display of processing message box
|
|
66
|
+
export function handleShowLastMessage(item: Conversation) {
|
|
67
|
+
const { lastMessage } = item;
|
|
68
|
+
const conversation = item;
|
|
69
|
+
let showNick = '';
|
|
70
|
+
let lastMessagePayload = '';
|
|
71
|
+
// Judge the number of unread messages and display them only
|
|
72
|
+
// when the message is enabled without interruption.
|
|
73
|
+
const showUnreadCount = conversation.unreadCount > 0
|
|
74
|
+
&& conversation.messageRemindType === TIM.TYPES.MSG_REMIND_ACPT_NOT_NOTE
|
|
75
|
+
? t(`[${conversation.unreadCount > 99 ? '99+' : conversation.unreadCount}条]`)
|
|
76
|
+
: '';
|
|
77
|
+
// Determine the lastmessage sender of the group.
|
|
78
|
+
// Namecard / Nick / userid is displayed by priority
|
|
79
|
+
if (conversation.type === TIM.TYPES.CONV_GROUP) {
|
|
80
|
+
if (lastMessage.fromAccount === conversation.groupProfile.selfInfo.userID) {
|
|
81
|
+
showNick = t('TUIConversation.我');
|
|
82
|
+
} else {
|
|
83
|
+
showNick = lastMessage.nameCard || lastMessage.nick || lastMessage.fromAccount;
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// Display content of lastmessage message body
|
|
87
|
+
if (lastMessage.type === TIM.TYPES.MSG_TEXT) {
|
|
88
|
+
lastMessagePayload = lastMessage.payload.text;
|
|
89
|
+
} else {
|
|
90
|
+
lastMessagePayload = lastMessage.messageForShow;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
if (lastMessage.isRevoked) {
|
|
94
|
+
lastMessagePayload = t('TUIChat.撤回了一条消息');
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
if (conversation.type === TIM.TYPES.CONV_GROUP && lastMessage.type === TIM.TYPES.MSG_GRP_TIP) {
|
|
98
|
+
return lastMessagePayload;
|
|
99
|
+
}
|
|
100
|
+
// Specific display content of message box
|
|
101
|
+
return `${showUnreadCount}${showNick ? `${showNick}:` : ''}${lastMessagePayload}`;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// Handling system tip message display
|
|
105
|
+
export function handleTipMessageShowContext(message: Message) {
|
|
106
|
+
const options = {
|
|
107
|
+
message,
|
|
108
|
+
text: '',
|
|
109
|
+
};
|
|
110
|
+
let userName = message.nick || message?.payload?.userIDList.join(',');
|
|
111
|
+
if (message?.payload?.memberList?.length > 0) {
|
|
112
|
+
userName = '';
|
|
113
|
+
message?.payload?.memberList?.map((user: any) => {
|
|
114
|
+
userName += `${user?.nick || user?.userID},`;
|
|
115
|
+
return user;
|
|
116
|
+
});
|
|
117
|
+
userName = userName.slice(0, -1);
|
|
118
|
+
}
|
|
119
|
+
switch (message.payload.operationType) {
|
|
120
|
+
case TIM.TYPES.GRP_TIP_MBR_JOIN:
|
|
121
|
+
options.text = `${userName} ${t('message.tip.加入群组')}`;
|
|
122
|
+
break;
|
|
123
|
+
case TIM.TYPES.GRP_TIP_MBR_QUIT:
|
|
124
|
+
options.text = `${t('message.tip.群成员')}:${userName} ${t('message.tip.退出群组')}`;
|
|
125
|
+
break;
|
|
126
|
+
case TIM.TYPES.GRP_TIP_MBR_KICKED_OUT:
|
|
127
|
+
options.text = `${t('message.tip.群成员')}:${userName} ${t('message.tip.被')}${message.payload.operatorID}${t(
|
|
128
|
+
'message.tip.踢出群组',
|
|
129
|
+
)}`;
|
|
130
|
+
break;
|
|
131
|
+
case TIM.TYPES.GRP_TIP_MBR_SET_ADMIN:
|
|
132
|
+
options.text = `${t('message.tip.群成员')}:${userName} ${t('message.tip.成为管理员')}`;
|
|
133
|
+
break;
|
|
134
|
+
case TIM.TYPES.GRP_TIP_MBR_CANCELED_ADMIN:
|
|
135
|
+
options.text = `${t('message.tip.群成员')}:${userName} ${t('message.tip.被撤销管理员')}`;
|
|
136
|
+
break;
|
|
137
|
+
case TIM.TYPES.GRP_TIP_GRP_PROFILE_UPDATED:
|
|
138
|
+
// options.text = `${userName} 修改群组资料`;
|
|
139
|
+
options.text = handleTipGrpUpdated(message);
|
|
140
|
+
break;
|
|
141
|
+
case TIM.TYPES.GRP_TIP_MBR_PROFILE_UPDATED:
|
|
142
|
+
message.payload.memberList.map((member:any) => {
|
|
143
|
+
if (member.muteTime > 0) {
|
|
144
|
+
options.text = `${t('message.tip.群成员')}:${member.userID}${t('message.tip.被禁言')}`;
|
|
145
|
+
} else {
|
|
146
|
+
options.text = `${t('message.tip.群成员')}:${member.userID}${t('message.tip.被取消禁言')}`;
|
|
147
|
+
}
|
|
148
|
+
return member;
|
|
149
|
+
});
|
|
150
|
+
break;
|
|
151
|
+
default:
|
|
152
|
+
options.text = `[${t('message.tip.群提示消息')}]`;
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
return options;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
function handleTipGrpUpdated(message: Message) {
|
|
159
|
+
const { payload } = message;
|
|
160
|
+
const { newGroupProfile } = payload;
|
|
161
|
+
const { operatorID } = payload;
|
|
162
|
+
let text = '';
|
|
163
|
+
const name = Object.keys(newGroupProfile)[0];
|
|
164
|
+
switch (name) {
|
|
165
|
+
case 'muteAllMembers':
|
|
166
|
+
if (newGroupProfile[name]) {
|
|
167
|
+
text = `${t('message.tip.管理员')} ${operatorID} ${t('message.tip.开启全员禁言')}`;
|
|
168
|
+
} else {
|
|
169
|
+
text = `${t('message.tip.管理员')} ${operatorID} ${t('message.tip.取消全员禁言')}`;
|
|
170
|
+
}
|
|
171
|
+
break;
|
|
172
|
+
case 'ownerID':
|
|
173
|
+
text = `${newGroupProfile[name]} ${t('message.tip.成为新的群主')}`;
|
|
174
|
+
break;
|
|
175
|
+
case 'groupName':
|
|
176
|
+
text = `${operatorID} ${t('message.tip.修改群名为')} ${newGroupProfile[name]}`;
|
|
177
|
+
break;
|
|
178
|
+
case 'notification':
|
|
179
|
+
text = `${operatorID} ${t('message.tip.发布新公告')}`;
|
|
180
|
+
break;
|
|
181
|
+
default:
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
return text;
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
// Parsing and handling text message display
|
|
188
|
+
export function handleTextMessageShowContext(item: any) {
|
|
189
|
+
const options = {
|
|
190
|
+
text: decodeText(item.payload),
|
|
191
|
+
};
|
|
192
|
+
return options;
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
// Parsing and handling face message display
|
|
196
|
+
export function handleFaceMessageShowContext(item: any) {
|
|
197
|
+
const face = {
|
|
198
|
+
message: item,
|
|
199
|
+
name: '',
|
|
200
|
+
url: '',
|
|
201
|
+
};
|
|
202
|
+
face.name = item.payload.data;
|
|
203
|
+
if (item.payload.data.indexOf('@2x') < 0) {
|
|
204
|
+
face.name = `${face.name}@2x`;
|
|
205
|
+
}
|
|
206
|
+
face.url = `https://web.sdk.qcloud.com/im/assets/face-elem/${face.name}.png`;
|
|
207
|
+
return face;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
// Parsing and handling location message display
|
|
211
|
+
export function handleLocationMessageShowContext(item: any) {
|
|
212
|
+
const location: any = {
|
|
213
|
+
lon: '',
|
|
214
|
+
lat: '',
|
|
215
|
+
href: '',
|
|
216
|
+
url: '',
|
|
217
|
+
description: '',
|
|
218
|
+
message: item,
|
|
219
|
+
};
|
|
220
|
+
location.lon = item.payload.longitude.toFixed(6);
|
|
221
|
+
location.lat = item.payload.latitude.toFixed(6);
|
|
222
|
+
location.href = 'https://map.qq.com/?type=marker&isopeninfowin=1&markertype=1&'
|
|
223
|
+
+ `pointx=${location.lon}&pointy=${location.lat}&name=${item.payload.description}`;
|
|
224
|
+
location.url = 'https://apis.map.qq.com/ws/staticmap/v2/?'
|
|
225
|
+
+ `center=${location.lat},${location.lon}&zoom=10&size=300*150&maptype=roadmap&`
|
|
226
|
+
+ `markers=size:large|color:0xFFCCFF|label:k|${location.lat},${location.lon}&`
|
|
227
|
+
+ 'key=UBNBZ-PTP3P-TE7DB-LHRTI-Y4YLE-VWBBD';
|
|
228
|
+
location.description = item.payload.description;
|
|
229
|
+
return location;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
// Parsing and handling image message display
|
|
233
|
+
export function handleImageMessageShowContext(item: any) {
|
|
234
|
+
return {
|
|
235
|
+
progress: item?.status === MESSAGE_STATUS.UNSEND && item.progress,
|
|
236
|
+
url: item.payload.imageInfoArray[1].url,
|
|
237
|
+
message: item,
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
// Parsing and handling video message display
|
|
242
|
+
export function handleVideoMessageShowContext(item: any) {
|
|
243
|
+
return {
|
|
244
|
+
progress: item?.status === MESSAGE_STATUS.UNSEND && item?.progress,
|
|
245
|
+
url: item?.payload?.videoUrl,
|
|
246
|
+
snapshotUrl: item?.payload?.snapshotUrl,
|
|
247
|
+
message: item,
|
|
248
|
+
};
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
// Parsing and handling audio message display
|
|
252
|
+
export function handleAudioMessageShowContext(item: any) {
|
|
253
|
+
return {
|
|
254
|
+
progress: item?.status === MESSAGE_STATUS.UNSEND && item.progress,
|
|
255
|
+
url: item.payload.url,
|
|
256
|
+
message: item,
|
|
257
|
+
second: item.payload.second,
|
|
258
|
+
};
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
// Parsing and handling file message display
|
|
262
|
+
export function handleFileMessageShowContext(item: any) {
|
|
263
|
+
let size = '';
|
|
264
|
+
if (item.payload.fileSize >= 1024 * 1024) {
|
|
265
|
+
size = `${(item.payload.fileSize / (1024 * 1024)).toFixed(2)} Mb`;
|
|
266
|
+
} else if (item.payload.fileSize >= 1024) {
|
|
267
|
+
size = `${(item.payload.fileSize / 1024).toFixed(2)} Kb`;
|
|
268
|
+
} else {
|
|
269
|
+
size = `${item.payload.fileSize.toFixed(2)}B`;
|
|
270
|
+
}
|
|
271
|
+
return {
|
|
272
|
+
progress: item?.status === MESSAGE_STATUS.UNSEND && item.progress,
|
|
273
|
+
url: item.payload.fileUrl,
|
|
274
|
+
message: item,
|
|
275
|
+
name: item.payload.fileName,
|
|
276
|
+
size,
|
|
277
|
+
};
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
// Parsing and handling merger message display
|
|
281
|
+
export function handleMergerMessageShowContext(item: Message) {
|
|
282
|
+
return { message: item, ...item.payload };
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
// Parse audio and video call messages
|
|
286
|
+
export function extractCallingInfoFromMessage(message: Message) {
|
|
287
|
+
let callingmessage:any = {};
|
|
288
|
+
let objectData:any = {};
|
|
289
|
+
try {
|
|
290
|
+
callingmessage = JSONStringToParse(message.payload.data);
|
|
291
|
+
} catch (error) {
|
|
292
|
+
callingmessage = {};
|
|
293
|
+
}
|
|
294
|
+
if (callingmessage.businessID !== 1) {
|
|
295
|
+
return '';
|
|
296
|
+
}
|
|
297
|
+
try {
|
|
298
|
+
objectData = JSONStringToParse(callingmessage.data);
|
|
299
|
+
} catch (error) {
|
|
300
|
+
objectData = {};
|
|
301
|
+
}
|
|
302
|
+
switch (callingmessage.actionType) {
|
|
303
|
+
case 1: {
|
|
304
|
+
if (objectData.call_end >= 0 && !callingmessage.groupID) {
|
|
305
|
+
return `${t('message.custom.talkTime')}:${formatTime(objectData.call_end)}`;
|
|
306
|
+
}
|
|
307
|
+
if (callingmessage.groupID) {
|
|
308
|
+
return `${t('message.custom.groupCallEnd')}`;
|
|
309
|
+
}
|
|
310
|
+
if (objectData.data && objectData.data.cmd === 'switchToAudio') {
|
|
311
|
+
return `${t('message.custom.switchToAudioCall')}`;
|
|
312
|
+
}
|
|
313
|
+
if (objectData.data && objectData.data.cmd === 'switchToVideo') {
|
|
314
|
+
return `${t('message.custom.switchToVideoCall')}`;
|
|
315
|
+
}
|
|
316
|
+
return `${t('message.custom.all')}`;
|
|
317
|
+
}
|
|
318
|
+
case 2:
|
|
319
|
+
return `${t('message.custom.cancel')}`;
|
|
320
|
+
case 3:
|
|
321
|
+
if (objectData.data && objectData.data.cmd === 'switchToAudio') {
|
|
322
|
+
return `${t('message.custom.switchToAudioCall')}`;
|
|
323
|
+
}
|
|
324
|
+
if (objectData.data && objectData.data.cmd === 'switchToVideo') {
|
|
325
|
+
return `${t('message.custom.switchToVideoCall')}`;
|
|
326
|
+
}
|
|
327
|
+
return `${t('message.custom.accepted')}`;
|
|
328
|
+
case 4:
|
|
329
|
+
return `${t('message.custom.rejected')}`;
|
|
330
|
+
case 5:
|
|
331
|
+
if (objectData.data && objectData.data.cmd === 'switchToAudio') {
|
|
332
|
+
return `${t('message.custom.switchToAudioCall')}`;
|
|
333
|
+
}
|
|
334
|
+
if (objectData.data && objectData.data.cmd === 'switchToVideo') {
|
|
335
|
+
return `${t('message.custom.switchToVideoCall')}`;
|
|
336
|
+
}
|
|
337
|
+
return `${t('message.custom.noResp')}`;
|
|
338
|
+
default:
|
|
339
|
+
return '';
|
|
340
|
+
}
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
// Parsing and handling custom message display
|
|
344
|
+
export function handleCustomMessageShowContext(item: Message) {
|
|
345
|
+
return {
|
|
346
|
+
message: item,
|
|
347
|
+
custom: extractCallingInfoFromMessage(item) || item?.payload || `[${t('message.custom.custom')}]`,
|
|
348
|
+
};
|
|
349
|
+
}
|
|
350
|
+
|
|
351
|
+
// Parsing and handling system message display
|
|
352
|
+
export function translateGroupSystemNotice(message: Message) {
|
|
353
|
+
const groupName = message.payload.groupProfile.name || message.payload.groupProfile.groupID;
|
|
354
|
+
switch (message.payload.operationType) {
|
|
355
|
+
case 1:
|
|
356
|
+
return `${message.payload.operatorID} ${t('message.tip.申请加入群组')}:${groupName}`;
|
|
357
|
+
case 2:
|
|
358
|
+
return `${t('message.tip.成功加入群组')}:${groupName}`;
|
|
359
|
+
case 3:
|
|
360
|
+
return `${t('message.tip.申请加入群组')}:${groupName} ${t('message.tip.被拒绝')}`;
|
|
361
|
+
case 4:
|
|
362
|
+
return `${t('message.tip.你被管理员')}${message.payload.operatorID} ${t('message.tip.踢出群组')}:${groupName}`;
|
|
363
|
+
case 5:
|
|
364
|
+
return `${t('message.tip.群')}:${groupName} ${t('message.tip.被')} ${message.payload.operatorID} ${t(
|
|
365
|
+
'message.tip.解散',
|
|
366
|
+
)}`;
|
|
367
|
+
case 6:
|
|
368
|
+
return `${message.payload.operatorID} ${t('message.tip.创建群')}:${groupName}`;
|
|
369
|
+
case 7:
|
|
370
|
+
return `${message.payload.operatorID} ${t('message.tip.邀请你加群')}:${groupName}`;
|
|
371
|
+
case 8:
|
|
372
|
+
return `${t('message.tip.你退出群组')}:${groupName}`;
|
|
373
|
+
case 9:
|
|
374
|
+
return `${t('message.tip.你被')}${message.payload.operatorID} ${t('message.tip.设置为群')}:${groupName} ${t(
|
|
375
|
+
'message.tip.的管理员',
|
|
376
|
+
)}`;
|
|
377
|
+
case 10:
|
|
378
|
+
return `${t('message.tip.你被')}${message.payload.operatorID} ${t('message.tip.撤销群')}:${groupName} ${t(
|
|
379
|
+
'message.tip.的管理员身份',
|
|
380
|
+
)}`;
|
|
381
|
+
case 12:
|
|
382
|
+
return `${message.payload.operatorID} ${t('message.tip.邀请你加群')}:${groupName}`;
|
|
383
|
+
case 13:
|
|
384
|
+
return `${message.payload.operatorID} ${t('message.tip.同意加群')}:${groupName}`;
|
|
385
|
+
case 14:
|
|
386
|
+
return `${message.payload.operatorID} ${t('message.tip.拒接加群')}:${groupName}`;
|
|
387
|
+
case 255:
|
|
388
|
+
return `${t('message.tip.自定义群系统通知')}: ${message.payload.userDefinedField}`;
|
|
389
|
+
default:
|
|
390
|
+
return '';
|
|
391
|
+
}
|
|
392
|
+
}
|
|
393
|
+
|
|
394
|
+
// Image loading complete
|
|
395
|
+
export function getImgLoad(container: Document, className: string, callback: () => void) {
|
|
396
|
+
const images = container?.querySelectorAll(`.${className}`) || [];
|
|
397
|
+
const promiseList = Array.prototype.slice.call(images).map(
|
|
398
|
+
(node: HTMLImageElement) => new Promise((resolve, reject) => {
|
|
399
|
+
const loadImg = new Image();
|
|
400
|
+
loadImg.src = node.src;
|
|
401
|
+
loadImg.onload = () => {
|
|
402
|
+
resolve(node);
|
|
403
|
+
};
|
|
404
|
+
}),
|
|
405
|
+
);
|
|
406
|
+
|
|
407
|
+
Promise.all(promiseList)
|
|
408
|
+
.then(() => {
|
|
409
|
+
callback();
|
|
410
|
+
})
|
|
411
|
+
.catch((e) => {
|
|
412
|
+
console.error('网络异常', e);
|
|
413
|
+
});
|
|
414
|
+
}
|
|
415
|
+
|
|
416
|
+
// Determine whether it is url
|
|
417
|
+
export function isUrl(url: string) {
|
|
418
|
+
return /^(https?:\/\/(([a-zA-Z0-9]+-?)+[a-zA-Z0-9]+\.)+[a-zA-Z]+)(:\d+)?(\/.*)?(\?.*)?(#.*)?$/.test(url);
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
// Handling custom message options
|
|
422
|
+
export function handleOptions(businessID: string, version: number, other: Message) {
|
|
423
|
+
return {
|
|
424
|
+
businessID,
|
|
425
|
+
version,
|
|
426
|
+
...other,
|
|
427
|
+
};
|
|
428
|
+
}
|
|
429
|
+
|
|
430
|
+
// Determine if it is a typing message
|
|
431
|
+
export function isTypingMessage(item: Message) {
|
|
432
|
+
if (!item) return false;
|
|
433
|
+
try {
|
|
434
|
+
const { businessID } = JSONStringToParse(item?.payload?.data);
|
|
435
|
+
if (businessID === constant.TYPE_TYPING) return true;
|
|
436
|
+
} catch {
|
|
437
|
+
return false;
|
|
438
|
+
}
|
|
439
|
+
return false;
|
|
440
|
+
}
|
|
441
|
+
|
|
442
|
+
export function formatTime(secondTime:number) {
|
|
443
|
+
const time:number = secondTime;
|
|
444
|
+
let newTime; let hour; let minite; let seconds;
|
|
445
|
+
if (time >= 3600) {
|
|
446
|
+
hour = parseInt(`${time / 3600}`, 10) < 10 ? `0${parseInt(`${time / 3600}`, 10)}` : parseInt(`${time / 3600}`, 10);
|
|
447
|
+
minite = parseInt(`${(time % 60) / 60}`, 10) < 10 ? `0${parseInt(`${(time % 60) / 60}`, 10)}` : parseInt(`${(time % 60) / 60}`, 10);
|
|
448
|
+
seconds = time % 3600 < 10 ? `0${time % 3600}` : time % 3600;
|
|
449
|
+
if (seconds > 60) {
|
|
450
|
+
minite = parseInt(`${seconds / 60}`, 10) < 10 ? `0${parseInt(`${seconds / 60}`, 10)}` : parseInt(`${seconds / 60}`, 10);
|
|
451
|
+
seconds = seconds % 60 < 10 ? `0${seconds % 60}` : seconds % 60;
|
|
452
|
+
}
|
|
453
|
+
newTime = `${hour}:${minite}:${seconds}`;
|
|
454
|
+
} else if (time >= 60 && time < 3600) {
|
|
455
|
+
minite = parseInt(`${time / 60}`, 10) < 10 ? `0${parseInt(`${time / 60}`, 10)}` : parseInt(`${time / 60}`, 10);
|
|
456
|
+
seconds = time % 60 < 10 ? `0${time % 60}` : time % 60;
|
|
457
|
+
newTime = `00:${minite}:${seconds}`;
|
|
458
|
+
} else if (time < 60) {
|
|
459
|
+
seconds = time < 10 ? `0${time}` : time;
|
|
460
|
+
newTime = `00:00:${seconds}`;
|
|
461
|
+
}
|
|
462
|
+
return newTime;
|
|
463
|
+
}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { useTUIMessageInputContext } from '../../context/TUIMessageInputContext';
|
|
3
|
+
import { Icon, IconTypes } from '../Icon';
|
|
4
|
+
import { Popup } from '../Popup';
|
|
5
|
+
import {
|
|
6
|
+
emojiUrl, emojiName, emojiMap, bigEmojiList, faceUrl, IBigEmojiListItem,
|
|
7
|
+
} from '../TUIMessage/utils/emojiMap';
|
|
8
|
+
|
|
9
|
+
import type { EmojiData } from './hooks';
|
|
10
|
+
|
|
11
|
+
export function EmojiPicker():React.ReactElement {
|
|
12
|
+
const [show, setShow] = useState(false);
|
|
13
|
+
const [index, setIndex] = useState(0);
|
|
14
|
+
|
|
15
|
+
const handleShow = () => {
|
|
16
|
+
setShow(!show);
|
|
17
|
+
};
|
|
18
|
+
const {
|
|
19
|
+
onSelectEmoji,
|
|
20
|
+
sendFaceMessage,
|
|
21
|
+
} = useTUIMessageInputContext('TUIMessageInputDefault');
|
|
22
|
+
|
|
23
|
+
const handleSelectEmoji = (e) => {
|
|
24
|
+
const emoji: EmojiData = {
|
|
25
|
+
index,
|
|
26
|
+
data: e.target.dataset.data,
|
|
27
|
+
};
|
|
28
|
+
if (!emoji.data) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
if (index === 0) {
|
|
32
|
+
onSelectEmoji(emoji);
|
|
33
|
+
} else {
|
|
34
|
+
sendFaceMessage(emoji);
|
|
35
|
+
handleShow();
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
return (
|
|
40
|
+
<div className="emoji-picker input-plugin-popup">
|
|
41
|
+
<Icon width={20} height={20} type={IconTypes.EMOJI} onClick={handleShow} />
|
|
42
|
+
<Popup
|
|
43
|
+
className="input-plugin-popup-box"
|
|
44
|
+
show={show}
|
|
45
|
+
close={handleShow}
|
|
46
|
+
>
|
|
47
|
+
<ul className="face-list">
|
|
48
|
+
{
|
|
49
|
+
index === 0 && emojiName.map((item:string, emojiIndex:number) => {
|
|
50
|
+
const key = item + emojiIndex;
|
|
51
|
+
return (
|
|
52
|
+
<li
|
|
53
|
+
role="menuitem"
|
|
54
|
+
className="face-list-item"
|
|
55
|
+
key={key}
|
|
56
|
+
onClick={handleSelectEmoji}
|
|
57
|
+
>
|
|
58
|
+
<img
|
|
59
|
+
src={`${emojiUrl + emojiMap[item]}`}
|
|
60
|
+
alt=""
|
|
61
|
+
data-data={item}
|
|
62
|
+
/>
|
|
63
|
+
</li>
|
|
64
|
+
);
|
|
65
|
+
})
|
|
66
|
+
}
|
|
67
|
+
</ul>
|
|
68
|
+
</Popup>
|
|
69
|
+
</div>
|
|
70
|
+
);
|
|
71
|
+
}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import React, { useRef } from 'react';
|
|
2
|
+
import './styles/index.scss';
|
|
3
|
+
|
|
4
|
+
import { EmojiPicker } from './EmojiPicker';
|
|
5
|
+
import { Plugins } from '../Plugins';
|
|
6
|
+
import { useUploadElement } from './hooks/useUploadElement';
|
|
7
|
+
import { MESSAGE_TYPE_NAME } from '../../constants';
|
|
8
|
+
import { useTUIMessageInputContext } from '../../context/TUIMessageInputContext';
|
|
9
|
+
import { Icon, IconTypes } from '../Icon';
|
|
10
|
+
|
|
11
|
+
export function InputPluginsDefalut():React.ReactElement {
|
|
12
|
+
const {
|
|
13
|
+
sendUploadMessage,
|
|
14
|
+
plugins: propPlugins,
|
|
15
|
+
showNumber,
|
|
16
|
+
MoreIcon,
|
|
17
|
+
} = useTUIMessageInputContext('TUIMessageInputDefault');
|
|
18
|
+
|
|
19
|
+
const pluginsRef = useRef(null);
|
|
20
|
+
|
|
21
|
+
const ImagePicker = useUploadElement({
|
|
22
|
+
children: (
|
|
23
|
+
<div className="input-plugin-item">
|
|
24
|
+
<Icon width={20} height={20} type={IconTypes.IMAGE} />
|
|
25
|
+
<span>Image</span>
|
|
26
|
+
</div>
|
|
27
|
+
),
|
|
28
|
+
type: 'image',
|
|
29
|
+
accept: 'image/*',
|
|
30
|
+
onChange: (file:HTMLInputElement | File) => {
|
|
31
|
+
pluginsRef.current.closeMore();
|
|
32
|
+
sendUploadMessage({ file }, MESSAGE_TYPE_NAME.IMAGE);
|
|
33
|
+
},
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
const VideoPicker = useUploadElement({
|
|
37
|
+
children: (
|
|
38
|
+
<div className="input-plugin-item">
|
|
39
|
+
<Icon width={20} height={20} type={IconTypes.VIDEO} />
|
|
40
|
+
<span>Video</span>
|
|
41
|
+
</div>
|
|
42
|
+
),
|
|
43
|
+
type: 'video',
|
|
44
|
+
accept: 'video/*',
|
|
45
|
+
onChange: (file:HTMLInputElement | File) => {
|
|
46
|
+
pluginsRef.current.closeMore();
|
|
47
|
+
sendUploadMessage({ file }, MESSAGE_TYPE_NAME.VIDEO);
|
|
48
|
+
},
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
const FilePicker = useUploadElement({
|
|
52
|
+
children: (
|
|
53
|
+
<div className="input-plugin-item">
|
|
54
|
+
<Icon width={20} height={20} type={IconTypes.DOCUMENT} />
|
|
55
|
+
<span>Document</span>
|
|
56
|
+
</div>
|
|
57
|
+
),
|
|
58
|
+
type: 'file',
|
|
59
|
+
accept: 'file/*',
|
|
60
|
+
onChange: (file:HTMLInputElement | File) => {
|
|
61
|
+
pluginsRef.current.closeMore();
|
|
62
|
+
sendUploadMessage({ file }, MESSAGE_TYPE_NAME.FILE);
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
const plugins = propPlugins
|
|
66
|
+
|| [<EmojiPicker />, ImagePicker, VideoPicker, FilePicker];
|
|
67
|
+
|
|
68
|
+
return <Plugins ref={pluginsRef} plugins={plugins} showNumber={showNumber} MoreIcon={MoreIcon} />;
|
|
69
|
+
}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import React, { PropsWithChildren, useCallback } from 'react';
|
|
2
|
+
import './styles/index.scss';
|
|
3
|
+
|
|
4
|
+
import { Message } from 'tim-js-sdk';
|
|
5
|
+
import { useTUIChatActionContext } from '../../context';
|
|
6
|
+
import { Icon, IconTypes } from '../Icon';
|
|
7
|
+
import { MESSAGE_OPERATE } from '../../constants';
|
|
8
|
+
import { useHandleQuoteMessage } from './hooks/useHandleQuoteMessage';
|
|
9
|
+
|
|
10
|
+
interface InputQuoteProps {
|
|
11
|
+
message?: Message
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
export function InputQuoteDefalut <T extends InputQuoteProps>(
|
|
15
|
+
props:PropsWithChildren<T>,
|
|
16
|
+
):React.ReactElement {
|
|
17
|
+
const {
|
|
18
|
+
message,
|
|
19
|
+
} = props;
|
|
20
|
+
|
|
21
|
+
const { operateMessage } = useTUIChatActionContext('MessageRevokeWithContext');
|
|
22
|
+
const { cloudCustomData } = useHandleQuoteMessage(message);
|
|
23
|
+
|
|
24
|
+
const handleClose = useCallback(() => {
|
|
25
|
+
operateMessage({
|
|
26
|
+
[MESSAGE_OPERATE.QUOTE]: null,
|
|
27
|
+
});
|
|
28
|
+
}, [operateMessage]);
|
|
29
|
+
|
|
30
|
+
const context = cloudCustomData?.messageReply;
|
|
31
|
+
|
|
32
|
+
return context && (
|
|
33
|
+
<div className="input-quote">
|
|
34
|
+
<div className="input-quote-content">
|
|
35
|
+
<label htmlFor="input-quote-content">{message?.nick || message?.from}</label>
|
|
36
|
+
<span>{context?.messageAbstract}</span>
|
|
37
|
+
</div>
|
|
38
|
+
<Icon className="icon" width={12} height={12} type={IconTypes.CLOSE} onClick={handleClose} />
|
|
39
|
+
</div>
|
|
40
|
+
);
|
|
41
|
+
}
|