@droppii-org/chat-sdk 0.3.8 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/canned-response/CannedResponseBody.js +1 -1
- package/dist/components/canned-response/CannedResponseFooter.js +1 -1
- package/dist/components/canned-response/CannedResponseHeader.js +1 -1
- package/dist/components/canned-response/index.js +1 -1
- package/dist/components/canned-response/team/TeamItem.js +1 -1
- package/dist/components/common/ConfirmModal.d.ts.map +1 -1
- package/dist/components/common/ConfirmModal.js +1 -1
- package/dist/components/common/InfoModal.d.ts.map +1 -1
- package/dist/components/common/InfoModal.js +1 -1
- package/dist/components/compose/ComposeNewMessageModal.d.ts.map +1 -1
- package/dist/components/compose/ComposeNewMessageModal.js +1 -1
- package/dist/components/conversation/ConversationByGroupItem.d.ts.map +1 -1
- package/dist/components/conversation/ConversationByGroupItem.js +2 -1
- package/dist/components/conversation/ConversationBySessionItem.d.ts.map +1 -1
- package/dist/components/conversation/ConversationBySessionItem.js +2 -1
- package/dist/components/conversation/DeskConversationList.d.ts.map +1 -1
- package/dist/components/conversation/DeskConversationList.js +1 -1
- package/dist/components/conversation/MentionIndicatorIcon.d.ts +7 -0
- package/dist/components/conversation/MentionIndicatorIcon.d.ts.map +1 -0
- package/dist/components/conversation/MentionIndicatorIcon.js +17 -0
- package/dist/components/conversation/SwipeActionButton.d.ts.map +1 -1
- package/dist/components/conversation/SwipeActionButton.js +1 -1
- package/dist/components/conversation/SwipeableRow.d.ts.map +1 -1
- package/dist/components/conversation/SwipeableRow.js +1 -1
- package/dist/components/conversation/ThreadCard.d.ts +2 -1
- package/dist/components/conversation/ThreadCard.d.ts.map +1 -1
- package/dist/components/conversation/ThreadCard.js +4 -4
- package/dist/components/conversation-detail/ConversationDetailHeader.d.ts.map +1 -1
- package/dist/components/conversation-detail/ConversationDetailHeader.js +2 -2
- package/dist/components/conversation-detail/ConversationDetailInput.d.ts.map +1 -1
- package/dist/components/conversation-detail/ConversationDetailInput.js +5 -1
- package/dist/components/conversation-detail/ConversationMessageList.d.ts.map +1 -1
- package/dist/components/conversation-detail/ConversationMessageList.js +1 -1
- package/dist/components/conversation-detail/ConversationMoreOptionItem.d.ts.map +1 -1
- package/dist/components/conversation-detail/ConversationMoreOptionItem.js +1 -1
- package/dist/components/conversation-detail/ConversationMoreOptionPanel.d.ts.map +1 -1
- package/dist/components/conversation-detail/ConversationMoreOptionPanel.js +1 -1
- package/dist/components/conversation-detail/PinLimitModal.d.ts.map +1 -1
- package/dist/components/conversation-detail/PinLimitModal.js +1 -1
- package/dist/components/conversation-detail/PinnedMessageBar.d.ts.map +1 -1
- package/dist/components/conversation-detail/PinnedMessageBar.js +8 -4
- package/dist/components/conversation-detail/PinnedMessageItem.d.ts.map +1 -1
- package/dist/components/conversation-detail/PinnedMessageItem.js +1 -1
- package/dist/components/conversation-detail/PinnedMessagesPanel.d.ts.map +1 -1
- package/dist/components/conversation-detail/PinnedMessagesPanel.js +1 -1
- package/dist/components/conversation-detail/ThreadProfilePanel.d.ts.map +1 -1
- package/dist/components/conversation-detail/ThreadProfilePanel.js +1 -1
- package/dist/components/conversation-detail/bot/BotButtonMessage.d.ts.map +1 -1
- package/dist/components/conversation-detail/bot/BotButtonMessage.js +1 -1
- package/dist/components/conversation-detail/bot/BotInactiveNotice.d.ts.map +1 -1
- package/dist/components/conversation-detail/bot/BotInactiveNotice.js +1 -1
- package/dist/components/conversation-detail/bot/BotMenuSheet.d.ts.map +1 -1
- package/dist/components/conversation-detail/bot/BotMenuSheet.js +1 -1
- package/dist/components/conversation-detail/bot/BotStartButton.d.ts.map +1 -1
- package/dist/components/conversation-detail/bot/BotStartButton.js +1 -1
- package/dist/components/conversation-detail/bot/BotSuggest.d.ts.map +1 -1
- package/dist/components/conversation-detail/bot/BotSuggest.js +2 -2
- package/dist/components/conversation-detail/bot/CsSessionConfirmModal.d.ts.map +1 -1
- package/dist/components/conversation-detail/bot/CsSessionConfirmModal.js +1 -1
- package/dist/components/conversation-inbox/ConversationInboxHeader.d.ts.map +1 -1
- package/dist/components/conversation-inbox/ConversationInboxHeader.js +1 -1
- package/dist/components/conversation-inbox/ConversationInboxItem.d.ts.map +1 -1
- package/dist/components/conversation-inbox/ConversationInboxItem.js +2 -1
- package/dist/components/conversation-inbox/ConversationInboxList.d.ts.map +1 -1
- package/dist/components/conversation-inbox/ConversationInboxList.js +1 -1
- package/dist/components/conversation-inbox/ConversationInboxTitle.d.ts.map +1 -1
- package/dist/components/conversation-inbox/ConversationInboxTitle.js +1 -1
- package/dist/components/conversation-inbox/ConversationPeerAvatar.d.ts.map +1 -1
- package/dist/components/conversation-inbox/ConversationPeerAvatar.js +1 -1
- package/dist/components/conversation-inbox/MuteConversationConfirmModal.d.ts.map +1 -1
- package/dist/components/conversation-inbox/MuteConversationConfirmModal.js +1 -1
- package/dist/components/group/AddMemberModal.d.ts.map +1 -1
- package/dist/components/group/AddMemberModal.js +1 -1
- package/dist/components/group/CreateGroupForm.d.ts.map +1 -1
- package/dist/components/group/CreateGroupForm.js +1 -3
- package/dist/components/group/GroupMemberPicker.js +1 -1
- package/dist/components/group/MemberPermissionPanel.js +1 -1
- package/dist/components/icon/index.d.ts.map +1 -1
- package/dist/components/icon/index.js +1 -1
- package/dist/components/media-collection/FileCollection.d.ts.map +1 -1
- package/dist/components/media-collection/FileCollection.js +1 -1
- package/dist/components/media-collection/ImageCollection.d.ts.map +1 -1
- package/dist/components/media-collection/ImageCollection.js +1 -1
- package/dist/components/media-collection/LinkCollection.d.ts.map +1 -1
- package/dist/components/media-collection/LinkCollection.js +2 -2
- package/dist/components/media-collection/VideoCollection.d.ts.map +1 -1
- package/dist/components/media-collection/VideoCollection.js +1 -1
- package/dist/components/media-collection/index.js +1 -1
- package/dist/components/media-resources/FileResourceList.d.ts.map +1 -1
- package/dist/components/media-resources/FileResourceList.js +1 -1
- package/dist/components/media-resources/ImageResourceGrid.d.ts.map +1 -1
- package/dist/components/media-resources/ImageResourceGrid.js +1 -1
- package/dist/components/media-resources/LinkResourceItem.d.ts.map +1 -1
- package/dist/components/media-resources/LinkResourceItem.js +1 -1
- package/dist/components/media-resources/LinkResourceList.d.ts.map +1 -1
- package/dist/components/media-resources/LinkResourceList.js +1 -1
- package/dist/components/media-resources/MediaEntryCard.d.ts.map +1 -1
- package/dist/components/media-resources/MediaEntryCard.js +1 -1
- package/dist/components/media-resources/MediaResourcePanel.d.ts.map +1 -1
- package/dist/components/media-resources/MediaResourcePanel.js +1 -1
- package/dist/components/media-resources/MediaResourceTabBar.d.ts.map +1 -1
- package/dist/components/media-resources/MediaResourceTabBar.js +1 -1
- package/dist/components/media-resources/MediaResourceTabs.js +1 -1
- package/dist/components/media-resources/ResourceEmptyState.d.ts.map +1 -1
- package/dist/components/media-resources/ResourceEmptyState.js +1 -1
- package/dist/components/media-resources/ResourceScrollContainer.d.ts.map +1 -1
- package/dist/components/media-resources/ResourceScrollContainer.js +1 -1
- package/dist/components/media-resources/VideoResourceGrid.d.ts.map +1 -1
- package/dist/components/media-resources/VideoResourceGrid.js +1 -1
- package/dist/components/message/GroupMembersDrawer.js +1 -1
- package/dist/components/message/MessageHeader.d.ts.map +1 -1
- package/dist/components/message/MessageHeader.js +3 -2
- package/dist/components/message/MessageInfiniteScroll.d.ts.map +1 -1
- package/dist/components/message/MessageInfiniteScroll.js +1 -1
- package/dist/components/message/MessageList.d.ts.map +1 -1
- package/dist/components/message/MessageList.js +22 -12
- package/dist/components/message/SelectSession.js +1 -1
- package/dist/components/message/UnassignedSessionFooter.d.ts.map +1 -1
- package/dist/components/message/UnassignedSessionFooter.js +1 -1
- package/dist/components/message/footer/ActionBar.d.ts.map +1 -1
- package/dist/components/message/footer/ActionBar.js +4 -1
- package/dist/components/message/footer/ComposerEditor.js +1 -1
- package/dist/components/message/footer/ComposerTabs.d.ts.map +1 -1
- package/dist/components/message/footer/ComposerTabs.js +1 -1
- package/dist/components/message/footer/EmojiPicker.js +1 -1
- package/dist/components/message/footer/EnterHandler.d.ts.map +1 -1
- package/dist/components/message/footer/EnterHandler.js +10 -1
- package/dist/components/message/footer/FilePreview.d.ts.map +1 -1
- package/dist/components/message/footer/FilePreview.js +4 -4
- package/dist/components/message/footer/LinkInputPreview.d.ts.map +1 -1
- package/dist/components/message/footer/LinkInputPreview.js +1 -1
- package/dist/components/message/footer/MediaActions.js +1 -1
- package/dist/components/message/footer/SessionClosedModal.d.ts.map +1 -1
- package/dist/components/message/footer/SessionClosedModal.js +1 -1
- package/dist/components/message/footer/ToolbarPlugin.js +1 -1
- package/dist/components/message/footer/editorConfig.d.ts +2 -1
- package/dist/components/message/footer/editorConfig.d.ts.map +1 -1
- package/dist/components/message/footer/editorConfig.js +2 -0
- package/dist/components/message/footer/index.d.ts.map +1 -1
- package/dist/components/message/footer/index.js +16 -2
- package/dist/components/message/footer/mention/MentionMenu.d.ts +6 -0
- package/dist/components/message/footer/mention/MentionMenu.d.ts.map +1 -0
- package/dist/components/message/footer/mention/MentionMenu.js +51 -0
- package/dist/components/message/footer/mention/MentionNode.d.ts +20 -0
- package/dist/components/message/footer/mention/MentionNode.d.ts.map +1 -0
- package/dist/components/message/footer/mention/MentionNode.js +39 -0
- package/dist/components/message/footer/mention/extractMentions.d.ts +6 -0
- package/dist/components/message/footer/mention/extractMentions.d.ts.map +1 -0
- package/dist/components/message/footer/mention/extractMentions.js +66 -0
- package/dist/components/message/footer/mention/useMentionOptions.d.ts +8 -0
- package/dist/components/message/footer/mention/useMentionOptions.d.ts.map +1 -0
- package/dist/components/message/footer/mention/useMentionOptions.js +45 -0
- package/dist/components/message/item/AtTextMessage.d.ts +16 -0
- package/dist/components/message/item/AtTextMessage.d.ts.map +1 -0
- package/dist/components/message/item/AtTextMessage.js +112 -0
- package/dist/components/message/item/FileMessage.js +1 -1
- package/dist/components/message/item/GroupNotificationMessage.d.ts.map +1 -1
- package/dist/components/message/item/GroupNotificationMessage.js +2 -2
- package/dist/components/message/item/ImageMessage.js +1 -1
- package/dist/components/message/item/LinkCard.d.ts.map +1 -1
- package/dist/components/message/item/LinkCard.js +1 -1
- package/dist/components/message/item/LinkText.d.ts.map +1 -1
- package/dist/components/message/item/LinkText.js +1 -1
- package/dist/components/message/item/MergeImageMessage.js +1 -1
- package/dist/components/message/item/MessageBubble.d.ts.map +1 -1
- package/dist/components/message/item/MessageBubble.js +2 -2
- package/dist/components/message/item/QuoteMessage.d.ts.map +1 -1
- package/dist/components/message/item/QuoteMessage.js +1 -1
- package/dist/components/message/item/RevokeMessage.d.ts.map +1 -1
- package/dist/components/message/item/RevokeMessage.js +1 -1
- package/dist/components/message/item/VideoMessage.js +1 -1
- package/dist/components/message/item/index.d.ts.map +1 -1
- package/dist/components/message/item/index.js +3 -3
- package/dist/components/message/item/renderMessageContent.d.ts.map +1 -1
- package/dist/components/message/item/renderMessageContent.js +3 -0
- package/dist/components/message/reply/ReplyPreviewBar.d.ts.map +1 -1
- package/dist/components/message/reply/ReplyPreviewBar.js +1 -1
- package/dist/components/message/reply/ReplyQuoteContent.d.ts.map +1 -1
- package/dist/components/message/reply/ReplyQuoteContent.js +7 -5
- package/dist/components/message/toolbox/MessageToolboxMenu.js +1 -1
- package/dist/components/message/toolbox/getCopyableMessageText.d.ts.map +1 -1
- package/dist/components/message/toolbox/getCopyableMessageText.js +5 -3
- package/dist/components/message/toolbox/isPinnableMessageType.d.ts.map +1 -1
- package/dist/components/message/toolbox/isPinnableMessageType.js +1 -0
- package/dist/components/search-conversation/SearchAll.d.ts.map +1 -1
- package/dist/components/search-conversation/SearchAll.js +1 -1
- package/dist/components/search-conversation/SearchConversationAsMessages.d.ts.map +1 -1
- package/dist/components/search-conversation/SearchConversationAsMessages.js +1 -1
- package/dist/components/search-conversation/SearchConversationAsUsers.d.ts.map +1 -1
- package/dist/components/search-conversation/SearchConversationAsUsers.js +1 -1
- package/dist/components/search-conversation/SearchConversationMyInbox.js +1 -1
- package/dist/components/search-conversation/SearchDrawer.js +1 -1
- package/dist/components/search-conversation/SearchMessageOnCurrentConversation.d.ts.map +1 -1
- package/dist/components/search-conversation/SearchMessageOnCurrentConversation.js +1 -1
- package/dist/components/search-conversation/index.js +1 -1
- package/dist/components/search-conversation/item/SearchItemAsMessage.d.ts.map +1 -1
- package/dist/components/search-conversation/item/SearchItemAsMessage.js +1 -1
- package/dist/components/search-conversation/item/SearchItemAsUser.d.ts.map +1 -1
- package/dist/components/search-conversation/item/SearchItemAsUser.js +1 -1
- package/dist/components/session/DeskTeamInbox.d.ts.map +1 -1
- package/dist/components/session/DeskTeamInbox.js +3 -2
- package/dist/components/session/SessionFilterMenu.d.ts.map +1 -1
- package/dist/components/session/SessionFilterMenu.js +1 -1
- package/dist/components/thread/AssignConfirmModal.d.ts.map +1 -1
- package/dist/components/thread/AssignConfirmModal.js +1 -1
- package/dist/components/thread/GroupThreadInfo.d.ts.map +1 -1
- package/dist/components/thread/GroupThreadInfo.js +7 -4
- package/dist/components/thread/ManualAssignPopover.d.ts.map +1 -1
- package/dist/components/thread/ManualAssignPopover.js +1 -1
- package/dist/components/thread/SessionSection.d.ts.map +1 -1
- package/dist/components/thread/SessionSection.js +2 -2
- package/dist/components/thread/SingleThreadInfo.d.ts.map +1 -1
- package/dist/components/thread/SingleThreadInfo.js +1 -1
- package/dist/components/thread/ThreadInfo.js +1 -1
- package/dist/components/thread/UserSection.d.ts.map +1 -1
- package/dist/components/thread/UserSection.js +1 -1
- package/dist/components/video-player/VideoPlayerModal.d.ts.map +1 -1
- package/dist/components/video-player/VideoPlayerModal.js +1 -1
- package/dist/context/ChatContext.d.ts +1 -1
- package/dist/context/ChatContext.d.ts.map +1 -1
- package/dist/context/ChatContext.js +2 -1
- package/dist/hooks/global/useGlobalEvent.d.ts.map +1 -1
- package/dist/hooks/global/useGlobalEvent.js +115 -25
- package/dist/hooks/group/useGroupPermission.d.ts +1 -1
- package/dist/hooks/group/useGroupPermission.d.ts.map +1 -1
- package/dist/hooks/group/useGroupPermission.js +2 -2
- package/dist/hooks/message/useMessage.d.ts +4 -1
- package/dist/hooks/message/useMessage.d.ts.map +1 -1
- package/dist/hooks/message/useMessage.js +9 -2
- package/dist/hooks/message/useSendMessage.d.ts +8 -4
- package/dist/hooks/message/useSendMessage.d.ts.map +1 -1
- package/dist/hooks/message/useSendMessage.js +46 -12
- package/dist/hooks/session/useConversationSessionState.d.ts +2 -1
- package/dist/hooks/session/useConversationSessionState.d.ts.map +1 -1
- package/dist/hooks/session/useConversationSessionState.js +5 -5
- package/dist/layout/index.d.ts.map +1 -1
- package/dist/layout/index.js +10 -1
- package/dist/locales/vi/common.json +9 -0
- package/dist/locales/vi/conversation-inbox.json +4 -0
- package/dist/store/auth.js +1 -1
- package/dist/store/conversation.d.ts.map +1 -1
- package/dist/store/conversation.js +93 -51
- package/dist/store/type.d.ts +6 -2
- package/dist/store/type.d.ts.map +1 -1
- package/dist/styles/global.css +1 -1
- package/dist/types/chat.d.ts +28 -2
- package/dist/types/chat.d.ts.map +1 -1
- package/dist/utils/common.d.ts.map +1 -1
- package/dist/utils/common.js +19 -9
- package/dist/utils/messageLog.d.ts +2 -2
- package/dist/utils/messageLog.d.ts.map +1 -1
- package/dist/utils/messageLog.js +33 -3
- package/package.json +17 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/utils/common.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAEhB,WAAW,EACZ,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAqB,eAAe,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAOhD,eAAO,MAAM,iBAAiB,GAC5B,aAAa,MAAM,EACnB,WAAW,MAAM,KAChB,MAAmE,CAAC;AAEvE,eAAO,MAAM,mBAAmB,GAAI,CAAC,EAAE,UAAU,MAAM,KAAG,OAAO,CAAC,CAAC,CAQlE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,KAAG,eAAe,GAAG,SAQhE,CAAC;AAmCF,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAItD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAapD;AAED,UAAU,sBAAsB;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,eAAe,GAC1B,OAAO,MAAM,EACb,UAAS,sBAA2B,WAoBrC,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAC5C,aAAa,WAAW,EACxB,YAAY,MAAM,EAClB,IAAI,SAAS,EACb,YAAY;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EACpD,aAAa;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"common.d.ts","sourceRoot":"","sources":["../../src/utils/common.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,gBAAgB,EAEhB,WAAW,EACZ,MAAM,8BAA8B,CAAC;AAGtC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAqB,eAAe,EAAE,MAAM,cAAc,CAAC;AAClE,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAOhD,eAAO,MAAM,iBAAiB,GAC5B,aAAa,MAAM,EACnB,WAAW,MAAM,KAChB,MAAmE,CAAC;AAEvE,eAAO,MAAM,mBAAmB,GAAI,CAAC,EAAE,UAAU,MAAM,KAAG,OAAO,CAAC,CAAC,CAQlE,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,MAAM,KAAG,eAAe,GAAG,SAQhE,CAAC;AAmCF,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAItD;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAapD;AAED,UAAU,sBAAsB;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,eAAO,MAAM,eAAe,GAC1B,OAAO,MAAM,EACb,UAAS,sBAA2B,WAoBrC,CAAC;AAEF,eAAO,MAAM,iCAAiC,GAC5C,aAAa,WAAW,EACxB,YAAY,MAAM,EAClB,IAAI,SAAS,EACb,YAAY;IAAE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EACpD,aAAa;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,WAyC1D,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,YAAY,MAAM,KAAG,OAS5D,CAAC;AAEF,eAAO,MAAM,2BAA2B,GACtC,eAAe,gBAAgB,EAAE,EACjC,OAAO,OAAO,KACb,gBAAgB,EAMlB,CAAC;AAEF,eAAO,MAAM,kBAAkB,GAC7B,WAAW,MAAM,EACjB,gBAAgB,MAAM,EACtB,IAAI,SAAS,EACb,eAAe;IAAE,QAAQ,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,EAClE,UAAU;IAAE,mBAAmB,CAAC,EAAE,OAAO,CAAA;CAAE,WA6G5C,CAAC;AAEF,eAAO,MAAM,eAAe,GAC1B,MAAM,MAAM,EACZ,SAAS,MAAM,EACf,kBAAc,WA2Cf,CAAC;AAEF,UAAU,aAAa;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,wBAAgB,eAAe,CAC7B,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,aAAa,GACtB,MAAM,CAqBR;AAMD,wBAAgB,sBAAsB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAiBhE;AAED,eAAO,MAAM,QAAQ,QAAiD,CAAC;AAEvE,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAqC3D;AAED,eAAO,MAAM,cAAc,GAAI,KAAK,MAAM,KAAG,MAAM,GAAG,IAOrD,CAAC;AAKF,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,KAAG,OACf,CAAC;AAEnC,eAAO,MAAM,SAAS,GAAI,MAAM,MAAM,KAAG,MAO9B,CAAC;AAEZ;;;;;;;;;;;GAWG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAoEjD"}
|
package/dist/utils/common.js
CHANGED
|
@@ -89,6 +89,7 @@ export const generateContentBasedOnMessageType = (contentType, plainText, t, med
|
|
|
89
89
|
case MessageType.QuoteMessage:
|
|
90
90
|
case MessageType.UrlTextMessage:
|
|
91
91
|
case MessageType.LogTextMessage:
|
|
92
|
+
case MessageType.AtTextMessage:
|
|
92
93
|
return plainText || "";
|
|
93
94
|
case MessageType.PictureMessage:
|
|
94
95
|
case MessageType.MergeMessage:
|
|
@@ -140,7 +141,7 @@ export const ignoreInternalLatestMessage = (conversations, isCrm) => {
|
|
|
140
141
|
return conversations.filter((conversation) => !isInternalLatestMessage(conversation.latestMsg));
|
|
141
142
|
};
|
|
142
143
|
export const parseLatestMessage = (latestMsg, currentUserId, t, conversation, options) => {
|
|
143
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
|
|
144
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
|
|
144
145
|
if (!latestMsg)
|
|
145
146
|
return "";
|
|
146
147
|
const includeSenderPrefix = (_a = options === null || options === void 0 ? void 0 : options.includeSenderPrefix) !== null && _a !== void 0 ? _a : true;
|
|
@@ -156,9 +157,11 @@ export const parseLatestMessage = (latestMsg, currentUserId, t, conversation, op
|
|
|
156
157
|
case MessageType.TextMessage:
|
|
157
158
|
case MessageType.QuoteMessage:
|
|
158
159
|
case MessageType.UrlTextMessage:
|
|
160
|
+
case MessageType.AtTextMessage:
|
|
159
161
|
return formatWithSender(sender, generateContentBasedOnMessageType(contentType, ((_b = msgData === null || msgData === void 0 ? void 0 : msgData.textElem) === null || _b === void 0 ? void 0 : _b.content) ||
|
|
160
162
|
((_c = msgData === null || msgData === void 0 ? void 0 : msgData.quoteElem) === null || _c === void 0 ? void 0 : _c.text) ||
|
|
161
163
|
((_d = msgData === null || msgData === void 0 ? void 0 : msgData.urlTextElem) === null || _d === void 0 ? void 0 : _d.content) ||
|
|
164
|
+
((_e = msgData === null || msgData === void 0 ? void 0 : msgData.atTextElem) === null || _e === void 0 ? void 0 : _e.text) ||
|
|
162
165
|
""));
|
|
163
166
|
case MessageType.PictureMessage:
|
|
164
167
|
case MessageType.MergeMessage:
|
|
@@ -167,23 +170,23 @@ export const parseLatestMessage = (latestMsg, currentUserId, t, conversation, op
|
|
|
167
170
|
case MessageType.FileMessage:
|
|
168
171
|
case MessageType.StickerMessage:
|
|
169
172
|
return formatWithSender(sender, generateContentBasedOnMessageType(contentType, undefined, t, {
|
|
170
|
-
duration: (
|
|
171
|
-
fileName: (
|
|
173
|
+
duration: (_f = msgData === null || msgData === void 0 ? void 0 : msgData.videoElem) === null || _f === void 0 ? void 0 : _f.duration,
|
|
174
|
+
fileName: (_g = msgData === null || msgData === void 0 ? void 0 : msgData.fileElem) === null || _g === void 0 ? void 0 : _g.fileName,
|
|
172
175
|
}));
|
|
173
176
|
case MessageType.RevokeMessage:
|
|
174
177
|
return sender
|
|
175
178
|
? translateOrFallback(t, "revoked_with_sender", "Tin nhắn đã bị thu hồi", { name: sender })
|
|
176
179
|
: translateOrFallback(t, "revoked", "Tin nhắn đã bị thu hồi");
|
|
177
180
|
case MessageType.CustomMessage: {
|
|
178
|
-
const customData = (
|
|
181
|
+
const customData = (_h = msgData.customElem) === null || _h === void 0 ? void 0 : _h.data;
|
|
179
182
|
if (customData === "#SESSION - START") {
|
|
180
183
|
return translateOrFallback(t, "session_started", "Phiên chat đã được bắt đầu");
|
|
181
184
|
}
|
|
182
185
|
if (customData === "#SESSION - END") {
|
|
183
186
|
return translateOrFallback(t, "session_ended", "Phiên chat đã kết thúc");
|
|
184
187
|
}
|
|
185
|
-
if (((
|
|
186
|
-
const orderCode = ((
|
|
188
|
+
if (((_j = msgData.customElem) === null || _j === void 0 ? void 0 : _j.extension) === CustomMessageType.Order) {
|
|
189
|
+
const orderCode = ((_k = msgData.customElem) === null || _k === void 0 ? void 0 : _k.description) || "";
|
|
187
190
|
return formatWithSender(sender, translateOrFallback(t, "msg_type_order", `[Đơn hàng] ${orderCode}`, { orderCode }));
|
|
188
191
|
}
|
|
189
192
|
return "";
|
|
@@ -202,10 +205,12 @@ export const parseLatestMessage = (latestMsg, currentUserId, t, conversation, op
|
|
|
202
205
|
case MessageType.GroupCancelMuted:
|
|
203
206
|
case MessageType.GroupAnnouncementUpdated:
|
|
204
207
|
case MessageType.GroupNameUpdated:
|
|
208
|
+
case MessageType.MemberSetToAdmin:
|
|
209
|
+
case MessageType.MessagePinned:
|
|
205
210
|
// notificationElem.detail is raw OpenIM *Tips protocol JSON, not a
|
|
206
211
|
// ready sentence — parse per-type (opUser/group/kickedUserList/...)
|
|
207
212
|
// and build the sentence ourselves.
|
|
208
|
-
return getGroupNotificationText(contentType, (
|
|
213
|
+
return getGroupNotificationText(contentType, (_l = msgData === null || msgData === void 0 ? void 0 : msgData.notificationElem) === null || _l === void 0 ? void 0 : _l.detail, t, msgData === null || msgData === void 0 ? void 0 : msgData.senderNickname);
|
|
209
214
|
default:
|
|
210
215
|
return translateOrFallback(t, "msg_type_unsupported", "Loại tin nhắn không được hỗ trợ");
|
|
211
216
|
}
|
|
@@ -285,7 +290,7 @@ export function formatDividerTimestamp(timestamp) {
|
|
|
285
290
|
}
|
|
286
291
|
return date.format("HH:mm DD/MM/YYYY");
|
|
287
292
|
}
|
|
288
|
-
export const urlRegex = /\bhttps?:\/\/[^\s<>"']*[^\s<>"',.!?()
|
|
293
|
+
export const urlRegex = /\bhttps?:\/\/[^\s<>"']*[^\s<>"',.!?()[\]{}]/g;
|
|
289
294
|
export function wrapLinksInHtml(htmlContent) {
|
|
290
295
|
var _a;
|
|
291
296
|
// Regex để kiểm tra xem link có nằm trong thẻ <a> không
|
|
@@ -400,7 +405,12 @@ export function sanitizeHtml(html) {
|
|
|
400
405
|
"style", // Allow style for basic formatting
|
|
401
406
|
],
|
|
402
407
|
ALLOW_DATA_ATTR: false, // Prevent data-* attributes
|
|
403
|
-
|
|
408
|
+
// `-` in [^a-z+.-:] below is NOT safely droppable: unescaped, it becomes
|
|
409
|
+
// a range operator (. to :), silently widening this security-sensitive
|
|
410
|
+
// URI allowlist regex — verified via direct match-behavior testing.
|
|
411
|
+
ALLOWED_URI_REGEXP:
|
|
412
|
+
// eslint-disable-next-line no-useless-escape
|
|
413
|
+
/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,
|
|
404
414
|
});
|
|
405
415
|
// Remove hooks after sanitization
|
|
406
416
|
DOMPurify.removeHook("afterSanitizeAttributes");
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { MessageItem, MessageType } from "@droppii-org/wasm-client-sdk";
|
|
2
2
|
import { TFunction } from "i18next";
|
|
3
3
|
export declare const SYSTEM_LOG_MESSAGE_TYPES: readonly [MessageType.LogTextMessage];
|
|
4
|
-
export declare const GROUP_NOTIFICATION_MESSAGE_TYPES: readonly [MessageType.GroupCreated, MessageType.GroupInfoUpdated, MessageType.MemberQuit, MessageType.GroupOwnerTransferred, MessageType.MemberKicked, MessageType.MemberInvited, MessageType.MemberEnter, MessageType.GroupDismissed, MessageType.GroupMemberMuted, MessageType.GroupMemberCancelMuted, MessageType.GroupMuted, MessageType.GroupCancelMuted, MessageType.GroupAnnouncementUpdated, MessageType.GroupNameUpdated];
|
|
4
|
+
export declare const GROUP_NOTIFICATION_MESSAGE_TYPES: readonly [MessageType.GroupCreated, MessageType.GroupInfoUpdated, MessageType.MemberQuit, MessageType.GroupOwnerTransferred, MessageType.MemberKicked, MessageType.MemberInvited, MessageType.MemberEnter, MessageType.GroupDismissed, MessageType.GroupMemberMuted, MessageType.GroupMemberCancelMuted, MessageType.GroupMuted, MessageType.GroupCancelMuted, MessageType.GroupAnnouncementUpdated, MessageType.GroupNameUpdated, MessageType.MemberSetToAdmin, MessageType.MessagePinned];
|
|
5
5
|
export declare const isGroupNotificationMessageType: (contentType?: number) => boolean;
|
|
6
|
-
export declare const getGroupNotificationText: (contentType: number | undefined, detailJson: string | undefined, t?: TFunction) => string;
|
|
6
|
+
export declare const getGroupNotificationText: (contentType: number | undefined, detailJson: string | undefined, t?: TFunction, senderNickname?: string) => string;
|
|
7
7
|
export declare const isSystemLogMessageType: (contentType?: number) => contentType is MessageType.LogTextMessage;
|
|
8
8
|
export declare const getSystemLogMessageText: (message: Partial<MessageItem>) => string;
|
|
9
9
|
export declare const getSystemLogMessageHtml: (message: Partial<MessageItem>) => string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"messageLog.d.ts","sourceRoot":"","sources":["../../src/utils/messageLog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,eAAO,MAAM,wBAAwB,uCAAwC,CAAC;AAE9E,eAAO,MAAM,gCAAgC,
|
|
1
|
+
{"version":3,"file":"messageLog.d.ts","sourceRoot":"","sources":["../../src/utils/messageLog.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEpC,eAAO,MAAM,wBAAwB,uCAAwC,CAAC;AAE9E,eAAO,MAAM,gCAAgC,6dAmBnC,CAAC;AAEX,eAAO,MAAM,8BAA8B,GAAI,cAAc,MAAM,YAGhE,CAAC;AAsCJ,eAAO,MAAM,wBAAwB,GACnC,aAAa,MAAM,GAAG,SAAS,EAC/B,YAAY,MAAM,GAAG,SAAS,EAC9B,IAAI,SAAS,EACb,iBAAiB,MAAM,KACtB,MA4IF,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAAI,cAAc,MAAM,8CACf,CAAC;AAE7C,eAAO,MAAM,uBAAuB,GAAI,SAAS,OAAO,CAAC,WAAW,CAAC,WAyBpE,CAAC;AAEF,eAAO,MAAM,uBAAuB,GAAI,SAAS,OAAO,CAAC,WAAW,CAAC,WA2BpE,CAAC"}
|
package/dist/utils/messageLog.js
CHANGED
|
@@ -15,18 +15,41 @@ export const GROUP_NOTIFICATION_MESSAGE_TYPES = [
|
|
|
15
15
|
MessageType.GroupCancelMuted,
|
|
16
16
|
MessageType.GroupAnnouncementUpdated,
|
|
17
17
|
MessageType.GroupNameUpdated,
|
|
18
|
+
MessageType.MemberSetToAdmin,
|
|
19
|
+
// MessagePinned and MessageUnpinned share contentType 2103 — the actual
|
|
20
|
+
// action is read from message.isPinned, not distinguishable by type alone.
|
|
21
|
+
MessageType.MessagePinned,
|
|
18
22
|
];
|
|
19
23
|
export const isGroupNotificationMessageType = (contentType) => GROUP_NOTIFICATION_MESSAGE_TYPES.includes(contentType);
|
|
20
24
|
const joinNicknames = (users) => (users || []).map((user) => user.nickname || user.userID || "").join(", ");
|
|
21
|
-
export const getGroupNotificationText = (contentType, detailJson, t) => {
|
|
22
|
-
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
|
|
25
|
+
export const getGroupNotificationText = (contentType, detailJson, t, senderNickname) => {
|
|
26
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
|
|
23
27
|
if (!detailJson)
|
|
24
28
|
return "";
|
|
29
|
+
// Operator name comes from the caller's senderNickname (the notification
|
|
30
|
+
// message is sent by the operator), since the payload has none.
|
|
31
|
+
if (contentType === MessageType.MessagePinned) {
|
|
32
|
+
let pinDetail;
|
|
33
|
+
try {
|
|
34
|
+
pinDetail = JSON.parse(detailJson);
|
|
35
|
+
}
|
|
36
|
+
catch (_t) {
|
|
37
|
+
return "";
|
|
38
|
+
}
|
|
39
|
+
const operatorName = senderNickname || "";
|
|
40
|
+
return pinDetail.isPinned
|
|
41
|
+
? t
|
|
42
|
+
? String(t("group_notification_message_pinned", { name: operatorName }))
|
|
43
|
+
: `${operatorName} đã ghim một tin nhắn`
|
|
44
|
+
: t
|
|
45
|
+
? String(t("group_notification_message_unpinned", { name: operatorName }))
|
|
46
|
+
: `${operatorName} đã bỏ ghim một tin nhắn`;
|
|
47
|
+
}
|
|
25
48
|
let detail;
|
|
26
49
|
try {
|
|
27
50
|
detail = JSON.parse(detailJson);
|
|
28
51
|
}
|
|
29
|
-
catch (
|
|
52
|
+
catch (_u) {
|
|
30
53
|
return "";
|
|
31
54
|
}
|
|
32
55
|
const opUserName = ((_a = detail.opUser) === null || _a === void 0 ? void 0 : _a.nickname) || "";
|
|
@@ -109,6 +132,13 @@ export const getGroupNotificationText = (contentType, detailJson, t) => {
|
|
|
109
132
|
return t
|
|
110
133
|
? String(t("group_notification_cancel_muted", { name: opUserName }))
|
|
111
134
|
: `${opUserName} đã bật lại quyền gửi tin nhắn của cả nhóm`;
|
|
135
|
+
case MessageType.MemberSetToAdmin:
|
|
136
|
+
return t
|
|
137
|
+
? String(t("group_notification_member_set_admin", {
|
|
138
|
+
name: opUserName,
|
|
139
|
+
target: ((_r = detail.changedUser) === null || _r === void 0 ? void 0 : _r.nickname) || "",
|
|
140
|
+
}))
|
|
141
|
+
: `${opUserName} đã chỉ định ${((_s = detail.changedUser) === null || _s === void 0 ? void 0 : _s.nickname) || ""} làm quản trị viên`;
|
|
112
142
|
default:
|
|
113
143
|
return "";
|
|
114
144
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@droppii-org/chat-sdk",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Droppii React Chat SDK",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -66,6 +66,8 @@
|
|
|
66
66
|
"dev": "tsc --noEmit --watch",
|
|
67
67
|
"lint": "eslint src/",
|
|
68
68
|
"type-check": "tsc --noEmit",
|
|
69
|
+
"test": "vitest run",
|
|
70
|
+
"test:watch": "vitest",
|
|
69
71
|
"prepublishOnly": "pnpm build",
|
|
70
72
|
"copy-assets": "shx cp -r src/assets dist && shx cp -r src/locales dist"
|
|
71
73
|
},
|
|
@@ -82,7 +84,7 @@
|
|
|
82
84
|
},
|
|
83
85
|
"dependencies": {
|
|
84
86
|
"@ant-design/icons": "^6.0.0",
|
|
85
|
-
"@droppii-org/wasm-client-sdk": "0.
|
|
87
|
+
"@droppii-org/wasm-client-sdk": "0.4.0",
|
|
86
88
|
"@lexical/code": "^0.34.0",
|
|
87
89
|
"@lexical/html": "^0.34.0",
|
|
88
90
|
"@lexical/link": "^0.34.0",
|
|
@@ -121,13 +123,25 @@
|
|
|
121
123
|
"react-dom": "^18.0.0"
|
|
122
124
|
},
|
|
123
125
|
"devDependencies": {
|
|
126
|
+
"@testing-library/jest-dom": "^7.0.1",
|
|
127
|
+
"@testing-library/react": "^16.3.2",
|
|
128
|
+
"@testing-library/user-event": "^14.6.6",
|
|
124
129
|
"@types/dompurify": "^3.2.0",
|
|
125
130
|
"@types/lodash": "^4.17.20",
|
|
126
131
|
"@types/node": "^20.0.0",
|
|
127
132
|
"@types/react": "^18.2.37",
|
|
128
133
|
"@types/react-dom": "^18.2.15",
|
|
134
|
+
"@typescript-eslint/eslint-plugin": "^6.21.0",
|
|
135
|
+
"@typescript-eslint/parser": "^6.21.0",
|
|
136
|
+
"@vitejs/plugin-react": "^6.1.0",
|
|
137
|
+
"@vitest/ui": "^4.1.11",
|
|
138
|
+
"eslint": "^8.57.1",
|
|
139
|
+
"eslint-plugin-react": "^7.37.5",
|
|
140
|
+
"eslint-plugin-react-hooks": "^5.0.0",
|
|
141
|
+
"jsdom": "^30.0.1",
|
|
129
142
|
"shx": "^0.4.0",
|
|
130
143
|
"tsc-alias": "^1.8.17",
|
|
131
|
-
"typescript": "^5.2.2"
|
|
144
|
+
"typescript": "^5.2.2",
|
|
145
|
+
"vitest": "^4.1.11"
|
|
132
146
|
}
|
|
133
147
|
}
|