@tencentcloud/chat-uikit-react 2.3.0 → 2.3.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/CHANGELOG.md +5 -0
- package/dist/cjs/components/Chat/Chat.js +1 -1
- package/dist/cjs/components/Chat/index.js +1 -1
- package/dist/cjs/components/ChatHeader/ChatHeader.js +1 -1
- package/dist/cjs/components/ChatHeader/ChatHeaderDefault.js +1 -1
- package/dist/cjs/components/ChatSetting/ChatSetting.js +1 -1
- package/dist/cjs/components/Contact/Contact.js +1 -1
- package/dist/cjs/components/Contact/ContactInfo/ContactInfo.js +1 -1
- package/dist/cjs/components/Contact/ContactInfo/addFriendInfo.js +1 -1
- package/dist/cjs/components/Contact/ContactInfo/basicInfo.js +1 -1
- package/dist/cjs/components/Contact/ContactInfo/blockInfo.js +1 -1
- package/dist/cjs/components/Contact/ContactInfo/friendApplication.js +1 -1
- package/dist/cjs/components/Contact/ContactInfo/friendInfo.js +1 -1
- package/dist/cjs/components/Contact/ContactInfo/groupInfo.js +1 -1
- package/dist/cjs/components/Contact/ContactInfo/hooks/useContactInfo.js +1 -1
- package/dist/cjs/components/Contact/ContactList/ContactList.js +1 -1
- package/dist/cjs/components/Contact/hooks/useTUIContact.js +1 -1
- package/dist/cjs/components/ContactSearch/ContactSearch.js +1 -1
- package/dist/cjs/components/ContactSearch/hooks/useContactSearch.js +1 -1
- package/dist/cjs/components/ConversationActions/ConversationActions.js +1 -1
- package/dist/cjs/components/ConversationCreate/ConversationCreate.js +1 -1
- package/dist/cjs/components/ConversationCreate/ConversationCreateGroupDetail.js +1 -1
- package/dist/cjs/components/ConversationCreate/ConversationCreateUserSelectList.js +1 -1
- package/dist/cjs/components/ConversationCreate/ConversationGroupTypeInfo.js +1 -1
- package/dist/cjs/components/ConversationList/ConversationList.js +1 -1
- package/dist/cjs/components/ConversationPreview/ConversationPreview.js +1 -1
- package/dist/cjs/components/ConversationPreview/utils.js +1 -1
- package/dist/cjs/components/ConversationSearch/ConversationSearchInput/ConversationSearchInput.js +1 -1
- package/dist/cjs/components/MessageElement/Message.js +1 -1
- package/dist/cjs/components/MessageElement/MessageAudio.js +1 -1
- package/dist/cjs/components/MessageElement/MessageAvatar.js +1 -1
- package/dist/cjs/components/MessageElement/MessageBubble.js +1 -1
- package/dist/cjs/components/MessageElement/MessageContext.js +1 -1
- package/dist/cjs/components/MessageElement/MessageCustom.js +1 -1
- package/dist/cjs/components/MessageElement/MessageDefault.js +1 -1
- package/dist/cjs/components/MessageElement/MessageName.js +1 -1
- package/dist/cjs/components/MessageElement/MessagePlugins.js +1 -1
- package/dist/cjs/components/MessageElement/MessageProgress.js +1 -1
- package/dist/cjs/components/MessageElement/MessageRevoke.js +1 -1
- package/dist/cjs/components/MessageElement/MessageStatus.js +1 -1
- package/dist/cjs/components/MessageElement/MessageSystem.js +1 -1
- package/dist/cjs/components/MessageElement/MessageText.js +1 -1
- package/dist/cjs/components/MessageElement/MessageTip.js +1 -1
- package/dist/cjs/components/MessageElement/hooks/useMessageHandler.js +1 -1
- package/dist/cjs/components/MessageElement/hooks/useMessageReply.js +1 -1
- package/dist/cjs/components/MessageElement/utils/decodeText.js +1 -1
- package/dist/cjs/components/MessageElement/utils/emojiMap.js +1 -1
- package/dist/cjs/components/MessageElement/utils/index.js +1 -1
- package/dist/cjs/components/MessageInput/EmojiPicker.js +1 -1
- package/dist/cjs/components/MessageInput/Forward.js +1 -1
- package/dist/cjs/components/MessageInput/InputPluginsDefalut.js +1 -1
- package/dist/cjs/components/MessageInput/InputQuoteDefalut.js +1 -1
- package/dist/cjs/components/MessageInput/MessageInput.js +1 -1
- package/dist/cjs/components/MessageInput/MessageInputDefault.js +1 -1
- package/dist/cjs/components/MessageInput/hooks/useEmojiPicker.js +1 -1
- package/dist/cjs/components/MessageInput/hooks/useHandleForwardMessage.js +1 -1
- package/dist/cjs/components/MessageInput/hooks/useHandleQuoteMessage.js +1 -1
- package/dist/cjs/components/MessageInput/hooks/useMessageInputText.js +1 -1
- package/dist/cjs/components/MessageList/MessageList.js +1 -1
- package/dist/cjs/components/MessageList/hooks/useMessageListElement.js +1 -1
- package/dist/cjs/components/Profile/Profile.js +1 -1
- package/dist/cjs/components/Profile/ProfileDefault.js +1 -1
- package/dist/cjs/context/UIKitContext.js +1 -1
- package/dist/cjs/index.css +2 -2
- package/dist/cjs/index.d.css +213 -207
- package/dist/cjs/index.d.ts +0 -3
- package/dist/cjs/index.js +1 -1
- package/dist/cjs/locales/en-US/emoji.js +1 -0
- package/dist/cjs/locales/en-US/index.js +1 -1
- package/dist/cjs/locales/index.js +1 -1
- package/dist/cjs/locales/ja-JP/emoji.js +1 -0
- package/dist/cjs/locales/ja-JP/index.js +1 -1
- package/dist/cjs/locales/ko-KR/emoji.js +1 -0
- package/dist/cjs/locales/ko-KR/index.js +1 -1
- package/dist/cjs/locales/zh-CN/emoji.js +1 -0
- package/dist/cjs/locales/zh-CN/index.js +1 -1
- package/dist/cjs/locales/zh-TW/emoji.js +1 -0
- package/dist/cjs/locales/zh-TW/index.js +1 -1
- package/dist/cjs/node_modules/zustand/esm/react.mjs.js +1 -0
- package/dist/cjs/node_modules/zustand/esm/vanilla.mjs.js +1 -0
- package/dist/cjs/store/UIManagerStore.js +1 -0
- package/dist/esm/components/Chat/Chat.js +1 -1
- package/dist/esm/components/Chat/index.js +1 -1
- package/dist/esm/components/ChatHeader/ChatHeader.js +1 -1
- package/dist/esm/components/ChatHeader/ChatHeaderDefault.js +1 -1
- package/dist/esm/components/ChatSetting/ChatSetting.js +1 -1
- package/dist/esm/components/Contact/Contact.js +1 -1
- package/dist/esm/components/Contact/ContactInfo/ContactInfo.js +1 -1
- package/dist/esm/components/Contact/ContactInfo/addFriendInfo.js +1 -1
- package/dist/esm/components/Contact/ContactInfo/basicInfo.js +1 -1
- package/dist/esm/components/Contact/ContactInfo/blockInfo.js +1 -1
- package/dist/esm/components/Contact/ContactInfo/friendApplication.js +1 -1
- package/dist/esm/components/Contact/ContactInfo/friendInfo.js +1 -1
- package/dist/esm/components/Contact/ContactInfo/groupInfo.js +1 -1
- package/dist/esm/components/Contact/ContactInfo/hooks/useContactInfo.js +1 -1
- package/dist/esm/components/Contact/ContactList/ContactList.js +1 -1
- package/dist/esm/components/Contact/hooks/useTUIContact.js +1 -1
- package/dist/esm/components/ContactSearch/ContactSearch.js +1 -1
- package/dist/esm/components/ContactSearch/hooks/useContactSearch.js +1 -1
- package/dist/esm/components/ConversationActions/ConversationActions.js +1 -1
- package/dist/esm/components/ConversationCreate/ConversationCreate.js +1 -1
- package/dist/esm/components/ConversationCreate/ConversationCreateGroupDetail.js +1 -1
- package/dist/esm/components/ConversationCreate/ConversationCreateUserSelectList.js +1 -1
- package/dist/esm/components/ConversationCreate/ConversationGroupTypeInfo.js +1 -1
- package/dist/esm/components/ConversationList/ConversationList.js +1 -1
- package/dist/esm/components/ConversationPreview/ConversationPreview.js +1 -1
- package/dist/esm/components/ConversationPreview/utils.js +1 -1
- package/dist/esm/components/ConversationSearch/ConversationSearchInput/ConversationSearchInput.js +1 -1
- package/dist/esm/components/MessageElement/Message.js +1 -1
- package/dist/esm/components/MessageElement/MessageAudio.js +1 -1
- package/dist/esm/components/MessageElement/MessageAvatar.js +1 -1
- package/dist/esm/components/MessageElement/MessageBubble.js +1 -1
- package/dist/esm/components/MessageElement/MessageContext.js +1 -1
- package/dist/esm/components/MessageElement/MessageCustom.js +1 -1
- package/dist/esm/components/MessageElement/MessageDefault.js +1 -1
- package/dist/esm/components/MessageElement/MessageName.js +1 -1
- package/dist/esm/components/MessageElement/MessagePlugins.js +1 -1
- package/dist/esm/components/MessageElement/MessageProgress.js +1 -1
- package/dist/esm/components/MessageElement/MessageRevoke.js +1 -1
- package/dist/esm/components/MessageElement/MessageStatus.js +1 -1
- package/dist/esm/components/MessageElement/MessageSystem.js +1 -1
- package/dist/esm/components/MessageElement/MessageText.js +1 -1
- package/dist/esm/components/MessageElement/MessageTip.js +1 -1
- package/dist/esm/components/MessageElement/hooks/useMessageHandler.js +1 -1
- package/dist/esm/components/MessageElement/hooks/useMessageReply.js +1 -1
- package/dist/esm/components/MessageElement/utils/decodeText.js +1 -1
- package/dist/esm/components/MessageElement/utils/emojiMap.js +1 -1
- package/dist/esm/components/MessageElement/utils/index.js +1 -1
- package/dist/esm/components/MessageInput/EmojiPicker.js +1 -1
- package/dist/esm/components/MessageInput/Forward.js +1 -1
- package/dist/esm/components/MessageInput/InputPluginsDefalut.js +1 -1
- package/dist/esm/components/MessageInput/InputQuoteDefalut.js +1 -1
- package/dist/esm/components/MessageInput/MessageInput.js +1 -1
- package/dist/esm/components/MessageInput/MessageInputDefault.js +1 -1
- package/dist/esm/components/MessageInput/hooks/useEmojiPicker.js +1 -1
- package/dist/esm/components/MessageInput/hooks/useHandleForwardMessage.js +1 -1
- package/dist/esm/components/MessageInput/hooks/useHandleQuoteMessage.js +1 -1
- package/dist/esm/components/MessageInput/hooks/useMessageInputText.js +1 -1
- package/dist/esm/components/MessageList/MessageList.js +1 -1
- package/dist/esm/components/MessageList/hooks/useMessageListElement.js +1 -1
- package/dist/esm/components/Profile/Profile.js +1 -1
- package/dist/esm/components/Profile/ProfileDefault.js +1 -1
- package/dist/esm/context/UIKitContext.js +1 -1
- package/dist/esm/index.css +2 -2
- package/dist/esm/index.d.css +213 -207
- package/dist/esm/index.d.ts +0 -3
- package/dist/esm/index.js +1 -1
- package/dist/esm/locales/en-US/emoji.js +1 -0
- package/dist/esm/locales/en-US/index.js +1 -1
- package/dist/esm/locales/index.js +1 -1
- package/dist/esm/locales/ja-JP/emoji.js +1 -0
- package/dist/esm/locales/ja-JP/index.js +1 -1
- package/dist/esm/locales/ko-KR/emoji.js +1 -0
- package/dist/esm/locales/ko-KR/index.js +1 -1
- package/dist/esm/locales/zh-CN/emoji.js +1 -0
- package/dist/esm/locales/zh-CN/index.js +1 -1
- package/dist/esm/locales/zh-TW/emoji.js +1 -0
- package/dist/esm/locales/zh-TW/index.js +1 -1
- package/dist/esm/node_modules/zustand/esm/react.mjs.js +1 -0
- package/dist/esm/node_modules/zustand/esm/vanilla.mjs.js +1 -0
- package/dist/esm/store/UIManagerStore.js +1 -0
- package/package.json +5 -3
- package/src/components/Chat/Chat.tsx +3 -3
- package/src/components/Chat/styles/layout.scss +1 -1
- package/src/components/ChatHeader/ChatHeaderDefault.tsx +4 -3
- package/src/components/ChatHeader/styles/layout.scss +1 -1
- package/src/components/ChatSetting/ChatSetting.tsx +8 -7
- package/src/components/ChatSetting/styles/index.scss +2 -1
- package/src/components/Checkbox/styles/color.scss +1 -1
- package/src/components/Contact/Contact.tsx +4 -4
- package/src/components/Contact/ContactInfo/ContactInfo.tsx +2 -2
- package/src/components/Contact/ContactInfo/addFriendInfo.tsx +38 -36
- package/src/components/Contact/ContactInfo/basicInfo.tsx +10 -10
- package/src/components/Contact/ContactInfo/blockInfo.tsx +4 -4
- package/src/components/Contact/ContactInfo/friendApplication.tsx +4 -4
- package/src/components/Contact/ContactInfo/friendInfo.tsx +7 -7
- package/src/components/Contact/ContactInfo/groupInfo.tsx +23 -23
- package/src/components/Contact/ContactInfo/hooks/useContactInfo.tsx +2 -2
- package/src/components/Contact/ContactInfo/index.scss +1 -1
- package/src/components/Contact/ContactList/ContactList.tsx +5 -4
- package/src/components/Contact/ContactList/index.scss +1 -1
- package/src/components/Contact/hooks/useTUIContact.tsx +2 -2
- package/src/components/Contact/index.scss +1 -1
- package/src/components/ContactSearch/ContactSearch.tsx +5 -4
- package/src/components/ContactSearch/hooks/useContactSearch.tsx +4 -3
- package/src/components/ContactSearch/index.scss +1 -1
- package/src/components/ConversationActions/ConversationActions.scss +1 -1
- package/src/components/ConversationActions/ConversationActions.tsx +2 -2
- package/src/components/ConversationCreate/ConversationCreate.tsx +2 -2
- package/src/components/ConversationCreate/ConversationCreateGroupDetail.tsx +4 -4
- package/src/components/ConversationCreate/ConversationCreateUserSelectList.tsx +4 -4
- package/src/components/ConversationCreate/ConversationGroupTypeInfo.tsx +2 -2
- package/src/components/ConversationCreate/styles/ConversationCreateGroupDetail.scss +1 -1
- package/src/components/ConversationCreate/styles/conversationCreateSelectView.scss +1 -1
- package/src/components/ConversationCreate/styles/conversationGroupTypeInfo.scss +1 -1
- package/src/components/ConversationCreate/styles/index.scss +1 -1
- package/src/components/ConversationList/ConversationList.scss +1 -1
- package/src/components/ConversationList/ConversationListContent/ConversationListContent.scss +1 -1
- package/src/components/ConversationList/ConversationListHeader/ConversationListHeader.scss +1 -1
- package/src/components/ConversationPreview/ConversationPreview.scss +1 -1
- package/src/components/ConversationPreview/ConversationPreview.tsx +3 -3
- package/src/components/ConversationPreview/utils.tsx +2 -2
- package/src/components/ConversationSearch/ConversationSearch.scss +1 -1
- package/src/components/ConversationSearch/ConversationSearchInput/ConversationSearchInput.scss +1 -1
- package/src/components/ConversationSearch/ConversationSearchInput/ConversationSearchInput.tsx +2 -2
- package/src/components/ConversationSearch/ConversationSearchResult/ConversationSearchResult.scss +1 -1
- package/src/components/DivWithEdit/styles/index.scss +1 -1
- package/src/components/Icon/styles/index.scss +1 -1
- package/src/components/Input/styles/index.scss +2 -2
- package/src/components/MessageElement/MessageCustom.tsx +4 -4
- package/src/components/MessageElement/MessagePlugins.tsx +3 -3
- package/src/components/MessageElement/MessageRevoke.tsx +5 -5
- package/src/components/MessageElement/MessageStatus.tsx +2 -1
- package/src/components/MessageElement/hooks/useMessageHandler.ts +9 -6
- package/src/components/MessageElement/hooks/useMessageReply.ts +3 -2
- package/src/components/MessageElement/styles/color.scss +1 -1
- package/src/components/MessageElement/styles/layout.scss +2 -2
- package/src/components/MessageElement/utils/decodeText.ts +59 -9
- package/src/components/MessageElement/utils/emojiMap.ts +73 -474
- package/src/components/MessageElement/utils/index.ts +1 -5
- package/src/components/MessageInput/EmojiPicker.tsx +10 -8
- package/src/components/MessageInput/Forward.tsx +2 -2
- package/src/components/MessageInput/InputPluginsDefalut.tsx +2 -2
- package/src/components/MessageInput/InputQuoteDefalut.tsx +6 -6
- package/src/components/MessageInput/MessageInput.tsx +0 -1
- package/src/components/MessageInput/MessageInputDefault.tsx +5 -5
- package/src/components/MessageInput/hooks/useEmojiPicker.tsx +11 -16
- package/src/components/MessageInput/hooks/useHandleForwardMessage.tsx +3 -4
- package/src/components/MessageInput/hooks/useMessageInputText.tsx +17 -11
- package/src/components/MessageInput/styles/color.scss +1 -1
- package/src/components/MessageInput/styles/layout.scss +2 -2
- package/src/components/MessageList/MessageList.tsx +2 -2
- package/src/components/MessageList/hooks/useMessageListElement.tsx +3 -2
- package/src/components/MessageList/styles/layout.scss +1 -1
- package/src/components/Plugins/styles/color.scss +1 -1
- package/src/components/Profile/Profile.tsx +2 -2
- package/src/components/Profile/ProfileDefault.tsx +4 -4
- package/src/components/Profile/myProfile/styles/index.scss +1 -1
- package/src/components/Profile/styles/color.scss +1 -1
- package/src/components/Profile/styles/layout.scss +1 -1
- package/src/context/UIKitContext.tsx +2 -8
- package/src/context/UIManagerContext.tsx +5 -5
- package/src/context/index.ts +0 -1
- package/src/locales/en-US/emoji.ts +66 -0
- package/src/locales/en-US/index.ts +2 -0
- package/src/locales/index.ts +4 -22
- package/src/locales/ja-JP/emoji.ts +66 -0
- package/src/locales/ja-JP/index.ts +2 -0
- package/src/locales/ko-KR/emoji.ts +66 -0
- package/src/locales/ko-KR/index.ts +2 -0
- package/src/locales/zh-CN/emoji.ts +66 -0
- package/src/locales/zh-CN/index.ts +2 -0
- package/src/locales/zh-TW/emoji.ts +65 -0
- package/src/locales/zh-TW/index.ts +2 -0
- package/src/store/UIManagerStore.ts +108 -0
- package/src/store/index.ts +5 -0
- package/.babelrc +0 -7
- package/.editorconfig +0 -16
- package/.husky/pre-commit +0 -4
- package/.lintstagedrc.json +0 -6
- package/.stylelintrc.js +0 -40
- package/dist/cjs/context/UIManagerContext.d.ts +0 -46
- package/dist/cjs/context/UIManagerContext.js +0 -1
- package/dist/cjs/locales/index.d.ts +0 -6
- package/dist/esm/context/UIManagerContext.d.ts +0 -46
- package/dist/esm/context/UIManagerContext.js +0 -1
- package/dist/esm/locales/index.d.ts +0 -6
- package/rollup.config.js +0 -81
- package/scripts/publish-npm.js +0 -22
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { useLayoutEffect, useState } from 'react';
|
|
2
2
|
import TencentCloudChat, { Message } from '@tencentcloud/chat';
|
|
3
|
-
import { useTUIChatStateContext
|
|
3
|
+
import { useTUIChatStateContext } from '../../../context';
|
|
4
|
+
import { useUIManagerStore } from '../../../store';
|
|
4
5
|
import { JSONStringToParse } from '../../utils';
|
|
5
6
|
|
|
6
7
|
interface messageContextParams {
|
|
@@ -26,7 +27,7 @@ export const useMessageReply = <T extends messageContextParams>(params: T) => {
|
|
|
26
27
|
const [replyMessage, setReplyMessage] = useState(null);
|
|
27
28
|
const [messageID, setMessageID] = useState('');
|
|
28
29
|
|
|
29
|
-
const { chat } =
|
|
30
|
+
const { chat } = useUIManagerStore();
|
|
30
31
|
const { messageList } = useTUIChatStateContext('useMessageReply');
|
|
31
32
|
|
|
32
33
|
useLayoutEffect(() => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
@use "
|
|
1
|
+
@use "~@tencentcloud/uikit-base-component-react/dist/styles/theme/util" as *;
|
|
2
2
|
|
|
3
3
|
.message-default {
|
|
4
4
|
width: 100%;
|
|
@@ -479,7 +479,7 @@
|
|
|
479
479
|
&:hover {
|
|
480
480
|
@include theme() {
|
|
481
481
|
background: get(dropdown-color-hover);
|
|
482
|
-
color: get(text-color-
|
|
482
|
+
color: get(text-color-primary);
|
|
483
483
|
}
|
|
484
484
|
}
|
|
485
485
|
|
|
@@ -1,13 +1,15 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { emojiUrlMap, emojiBaseUrl } from './emojiMap';
|
|
2
|
+
import { i18next } from '@tencentcloud/uikit-base-component-react';
|
|
2
3
|
/** Pass in messageBody (group system message SystemMessage, except group prompt message GroupTip)
|
|
3
4
|
* payload = {
|
|
4
|
-
*
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*}
|
|
5
|
+
* msgType: 'TIMTextElem',
|
|
6
|
+
* msgContent: {
|
|
7
|
+
* text: 'AAA[smile]AAA[smile]AAA[smile]'
|
|
8
|
+
* }
|
|
9
|
+
* }
|
|
10
|
+
* ! decodeText function has been deprecated
|
|
9
11
|
* */
|
|
10
|
-
export function decodeText(payload:any) {
|
|
12
|
+
export function decodeText(payload: any) {
|
|
11
13
|
const renderDom = [];
|
|
12
14
|
let temp = payload.text;
|
|
13
15
|
let left = -1;
|
|
@@ -25,10 +27,10 @@ export function decodeText(payload:any) {
|
|
|
25
27
|
temp = '';
|
|
26
28
|
} else {
|
|
27
29
|
const emojiKey = temp.slice(0, right + 1);
|
|
28
|
-
if (
|
|
30
|
+
if (emojiUrlMap[emojiKey]) {
|
|
29
31
|
renderDom.push({
|
|
30
32
|
name: 'img',
|
|
31
|
-
src:
|
|
33
|
+
src: emojiBaseUrl + emojiUrlMap[emojiKey],
|
|
32
34
|
});
|
|
33
35
|
temp = temp.substring(right + 1);
|
|
34
36
|
} else {
|
|
@@ -58,3 +60,51 @@ export function decodeText(payload:any) {
|
|
|
58
60
|
}
|
|
59
61
|
return renderDom;
|
|
60
62
|
}
|
|
63
|
+
|
|
64
|
+
/**
|
|
65
|
+
* Transforms a text containing emoji keys to a emoji names with i18n
|
|
66
|
+
* Example:
|
|
67
|
+
* 'hello[TUIEmoji_Smile]!' => 'hello[Smile]!''
|
|
68
|
+
* @param {string} text - The text containing emoji keys.
|
|
69
|
+
* @return {string} The transformed text with emoji keys replaced by emoji names.
|
|
70
|
+
*/
|
|
71
|
+
export function transformTextWithEmojiKeyToName(text: string) {
|
|
72
|
+
if (!text) {
|
|
73
|
+
return '';
|
|
74
|
+
}
|
|
75
|
+
const reg = /(\[.+?\])/g;
|
|
76
|
+
let transformResult: string = text;
|
|
77
|
+
if (reg.test(text)) {
|
|
78
|
+
transformResult = text.replace(reg, match => emojiUrlMap[match] ? i18next.t(`Emoji.${match}`) : match);
|
|
79
|
+
}
|
|
80
|
+
return transformResult;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const emojiTranslationMap: Record<string, any> = {};
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Transforms a text containing emoji names to emoji keys with i18n
|
|
87
|
+
* Example:
|
|
88
|
+
* 'hello[Smile]!' => 'hello[TUIEmoji_Smile]!'
|
|
89
|
+
* @param {string} text - The text containing emoji names.
|
|
90
|
+
* @return {string} The transformed text with emoji names replaced by emoji keys.
|
|
91
|
+
*/
|
|
92
|
+
export function transformTextWithEmojiNameToKey(text: string) {
|
|
93
|
+
if (!text) {
|
|
94
|
+
return '';
|
|
95
|
+
}
|
|
96
|
+
const reg = /(\[.+?\])/g;
|
|
97
|
+
let transformResult: string = text;
|
|
98
|
+
if (reg.test(text)) {
|
|
99
|
+
const currentLanguage = i18next.language;
|
|
100
|
+
if (!emojiTranslationMap[currentLanguage]) {
|
|
101
|
+
const lngResource = i18next.getDataByLanguage(currentLanguage);
|
|
102
|
+
if (lngResource?.translation?.Emoji) {
|
|
103
|
+
emojiTranslationMap[currentLanguage]
|
|
104
|
+
= Object.fromEntries(Object.entries(lngResource.translation.Emoji).map(([key, value]) => [value, key]));
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
transformResult = text.replace(reg, match => emojiTranslationMap[currentLanguage][match] ?? match);
|
|
108
|
+
}
|
|
109
|
+
return transformResult;
|
|
110
|
+
}
|