tuikit-atomicx-vue3 3.3.0-beta.3 → 3.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.
Files changed (245) hide show
  1. package/dist/AttachmentPicker.module-BesmtGyl.js +11 -0
  2. package/dist/FilePicker.vue_vue_type_script_setup_true_lang-CdJ4DUzE.js +76 -0
  3. package/dist/ImagePicker.vue_vue_type_script_setup_true_lang-CbNUofpK.js +76 -0
  4. package/dist/{MessageInput.vue_vue_type_script_setup_true_lang-XRL7A5Gj.js → MessageInput.vue_vue_type_script_setup_true_lang-wUJPjWbx.js} +23 -18
  5. package/dist/VideoPicker.vue_vue_type_script_setup_true_lang-CmxjbNDJ.js +76 -0
  6. package/dist/chat/index.d.ts +3747 -2386
  7. package/dist/chat/index.js +12 -11
  8. package/dist/components/BarrageInput/BarrageInputH5.js +32 -8
  9. package/dist/components/BarrageInput/EmojiPicker/EmojiPicker.js +9 -5
  10. package/dist/components/BarrageInput/TextEditor/index.js +14 -6
  11. package/dist/components/BarrageList/Message/GroupTipMessage/GroupTipMessage.vue.d.ts +4 -4
  12. package/dist/components/BarrageList/Message/TextMessage/TextMessage.js +12 -4
  13. package/dist/components/BarrageList/i18n/en-US/index.d.ts +1 -0
  14. package/dist/components/BarrageList/i18n/en-US/index.js +2 -1
  15. package/dist/components/BarrageList/i18n/zh-CN/index.d.ts +1 -0
  16. package/dist/components/BarrageList/i18n/zh-CN/index.js +2 -1
  17. package/dist/components/ChatSetting/GroupChatSetting/GroupActions/GroupActions.js +5 -3
  18. package/dist/components/ChatSetting/GroupChatSetting/GroupChatSetting.js +3 -3
  19. package/dist/components/ChatSetting/GroupChatSetting/GroupInfo/GroupInfo.js +3 -3
  20. package/dist/components/ChatSetting/GroupChatSetting/GroupManagement/GroupManagement.js +3 -3
  21. package/dist/components/ChatSetting/GroupChatSetting/GroupMembers/GroupMembers.js +3 -3
  22. package/dist/components/ChatSetting/SettingItem/SettingItem.js +21 -21
  23. package/dist/components/ChatSetting/i18n/en-US.js +3 -3
  24. package/dist/components/ChatSetting/i18n/zh-CN.js +3 -3
  25. package/dist/components/ChatSetting/index.d.ts +1 -4
  26. package/dist/components/ChatSetting/index.js +3 -6
  27. package/dist/components/CoGuestPanel/CoGuestPanel.js +1 -1
  28. package/dist/components/ContactList/ContactInfo/ContactInfo.js +17 -17
  29. package/dist/components/ContactList/ContactInfo/ContactInfo.vue.d.ts +26 -2
  30. package/dist/components/ContactList/ContactInfo/GroupInfo/GroupInfo.js +2 -1
  31. package/dist/components/ContactList/ContactList.js +19 -10
  32. package/dist/components/ContactList/ContactList.vue.d.ts +109 -1
  33. package/dist/components/ContactList/index.d.ts +158 -26
  34. package/dist/components/ConversationList/ConversationActions/ConversationActions.js +8 -9
  35. package/dist/components/ConversationList/ConversationCreate/ConversationCreate.js +2 -1
  36. package/dist/components/ConversationList/ConversationCreate/ConversationCreateGroupDetail/ConversationCreateGroupDetail.js +8 -8
  37. package/dist/components/ConversationList/ConversationCreate/ConversationCreateUserSelectList/ConversationCreateUserSelectList.js +1 -2
  38. package/dist/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/ConversationGroupTypeInfo.js +8 -8
  39. package/dist/components/ConversationList/ConversationList.js +18 -44
  40. package/dist/components/ConversationList/ConversationList.vue.d.ts +197 -1535
  41. package/dist/components/ConversationList/ConversationListContent/ConversationListContent.js +8 -11
  42. package/dist/components/ConversationList/ConversationListContent/ConversationListContent.vue.d.ts +22 -340
  43. package/dist/components/ConversationList/ConversationPreview/ConversationPreview.vue.d.ts +80 -134
  44. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewAbstract.js +14 -14
  45. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewTimestamp.js +14 -14
  46. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewTitle.js +19 -30
  47. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewTitle.vue.d.ts +0 -2
  48. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUI.js +14 -15
  49. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUI.vue.d.ts +12 -24
  50. package/dist/components/ConversationList/ConversationPreview/ConversationPreviewUnread.js +14 -14
  51. package/dist/components/ConversationList/ConversationPreview/index.d.ts +1 -1
  52. package/dist/components/ConversationList/ConversationPreview/index.js +17 -21
  53. package/dist/components/ConversationList/ConversationSearch/ConversationSearch.js +1 -0
  54. package/dist/components/ConversationList/index.d.ts +468 -2400
  55. package/dist/components/ConversationList/index.js +1 -1
  56. package/dist/components/LiveAudienceList/LiveAudienceListH5.js +1 -1
  57. package/dist/components/LiveCoreView/index.js +113 -58
  58. package/dist/components/LiveCoreView/index.vue.d.ts +9 -0
  59. package/dist/components/LiveList/LiveList.js +7 -5
  60. package/dist/components/LiveList/LiveListH5.js +77 -71
  61. package/dist/components/LiveList/i18n/en-US/index.d.ts +5 -0
  62. package/dist/components/LiveList/i18n/en-US/index.js +6 -1
  63. package/dist/components/LiveList/i18n/zh-CN/index.d.ts +5 -0
  64. package/dist/components/LiveList/i18n/zh-CN/index.js +6 -1
  65. package/dist/components/LiveList/pullToRefresh.js +204 -0
  66. package/dist/components/LiveList/pullToRefresh.vue.d.ts +86 -0
  67. package/dist/components/LiveScenePanel/CameraSettingDialog.js +6 -5
  68. package/dist/components/LiveScenePanel/index.js +3 -3
  69. package/dist/components/MessageInput/AttachmentPicker/AttachmentPicker.vue.d.ts +0 -4
  70. package/dist/components/MessageInput/AttachmentPicker/FilePicker.js +1 -1
  71. package/dist/components/MessageInput/AttachmentPicker/ImagePicker.js +1 -1
  72. package/dist/components/MessageInput/AttachmentPicker/VideoPicker.js +1 -1
  73. package/dist/components/MessageInput/AttachmentPicker/index.js +14 -19
  74. package/dist/components/MessageInput/EmojiPicker/EmojiPicker.js +3 -3
  75. package/dist/components/MessageInput/MessageInput.js +1 -1
  76. package/dist/components/MessageInput/MessageInput.vue.d.ts +6 -9
  77. package/dist/components/MessageInput/TextEditor/TextEditor.vue.d.ts +2 -2
  78. package/dist/components/MessageInput/TextEditor/index.js +18 -9
  79. package/dist/components/MessageInput/index.d.ts +5 -41
  80. package/dist/components/MessageInput/index.js +4 -4
  81. package/dist/components/MessageList/Message/CustomMessage/index.js +2 -2
  82. package/dist/components/MessageList/Message/FaceMessage/FaceMessage.js +7 -5
  83. package/dist/components/MessageList/Message/FaceMessage/FaceMessage.vue.d.ts +8 -8
  84. package/dist/components/MessageList/Message/LocationMessage/LocationMessage.js +2 -1
  85. package/dist/components/MessageList/Message/MergerMessage/MergerMessage.js +2 -1
  86. package/dist/components/MessageList/Message/MessageLayout/MessageActionDropdown/MessageActionDropdown.js +12 -4
  87. package/dist/components/MessageList/Message/MessageLayout/MessageActionDropdown/MessageActionDropdown.vue.d.ts +3 -3
  88. package/dist/components/MessageList/MessageForward/MessageForward.js +2 -3
  89. package/dist/components/MessageList/MessageList.js +14 -7
  90. package/dist/components/MessageList/MessageList.vue.d.ts +1 -1
  91. package/dist/components/MessageList/MessageTimeDivider/MessageTimeDivider.js +5 -5
  92. package/dist/components/MessageList/MessageTimeDivider/MessageTimeDivider.vue.d.ts +10 -10
  93. package/dist/components/MessageList/index.d.ts +143 -5
  94. package/dist/components/MessageList/index.js +5 -5
  95. package/dist/components/Search/Search.js +1 -3
  96. package/dist/components/Search/SearchResults/EmptyResult/EmptyResult.js +4 -6
  97. package/dist/components/Search/SearchResults/Loading/Loading.js +2 -4
  98. package/dist/components/Search/SearchResults/SearchResults.js +20 -22
  99. package/dist/components/Search/SearchResults/SearchResultsItem/Conversation/Conversation.js +6 -8
  100. package/dist/components/Search/SearchResults/SearchResultsItem/Group/Group.js +5 -7
  101. package/dist/components/Search/SearchResults/SearchResultsItem/Message/Message.js +19 -21
  102. package/dist/components/Search/SearchResults/SearchResultsItem/SearchResultsItem.js +1 -3
  103. package/dist/components/Search/SearchResults/SearchResultsItem/User/User.js +5 -7
  104. package/dist/components/StreamMixer/LocalMixer/index.js +11 -5
  105. package/dist/components/StreamView/manager/mediaManager.js +1 -1
  106. package/dist/components/UserPicker/UserPicker.js +2 -2
  107. package/dist/components/UserPicker/UserPicker.vue.d.ts +7 -8
  108. package/dist/components/UserPicker/components/ListMode/ListMode.js +14 -17
  109. package/dist/components/UserPicker/components/ListMode/ListMode.vue.d.ts +2 -2
  110. package/dist/components/UserPicker/components/SelectedPanel/SelectedPanel.vue.d.ts +2 -2
  111. package/dist/components/UserPicker/components/TreeMode/TreeMode.vue.d.ts +3 -3
  112. package/dist/components/UserPicker/components/TreeMode/TreeNode.vue.d.ts +4 -4
  113. package/dist/components/UserPicker/hooks/useSearchFilter.d.ts +3 -3
  114. package/dist/components/UserPicker/hooks/useSelection.d.ts +8 -8
  115. package/dist/components/UserPicker/hooks/useTreeState.d.ts +3 -3
  116. package/dist/components/UserPicker/index.d.ts +134 -3
  117. package/dist/components/UserPicker/index.js +3 -2
  118. package/dist/components/UserPicker/type.d.ts +18 -18
  119. package/dist/index.js +6 -3
  120. package/dist/rtc/index.d.ts +9 -0
  121. package/dist/states/GroupSettingState/GroupSettingState.js +3 -3
  122. package/dist/states/LiveSeatState/usePlayStream/MixStreamPlayer.js +3 -0
  123. package/dist/states/LoginState.js +1 -0
  124. package/dist/states/MessageInputState/MessageInputState.js +25 -5
  125. package/dist/styles/index.css +1294 -3578
  126. package/dist/types/contact.d.ts +13 -12
  127. package/dist/types/conversation.d.ts +12 -14
  128. package/dist/types/engine.d.ts +12 -0
  129. package/dist/types/engine.js +15 -0
  130. package/dist/types/index.js +2 -1
  131. package/dist/utils/json.js +0 -1
  132. package/package.json +7 -3
  133. package/src/chat/index.ts +12 -4
  134. package/src/components/BarrageInput/BarrageInputH5.vue +50 -4
  135. package/src/components/BarrageInput/EmojiPicker/EmojiPicker.module.scss +1 -0
  136. package/src/components/BarrageInput/EmojiPicker/EmojiPicker.vue +1 -1
  137. package/src/components/BarrageInput/TextEditor/Editor.scss +1 -1
  138. package/src/components/BarrageInput/TextEditor/TextEditor.module.scss +2 -0
  139. package/src/components/BarrageInput/TextEditor/TextEditor.vue +6 -0
  140. package/src/components/BarrageList/Message/GroupTipMessage/GroupTipMessage.vue +8 -8
  141. package/src/components/BarrageList/Message/TextMessage/TextMessage.vue +10 -0
  142. package/src/components/BarrageList/i18n/en-US/index.ts +1 -0
  143. package/src/components/BarrageList/i18n/zh-CN/index.ts +1 -0
  144. package/src/components/ChatSetting/GroupChatSetting/GroupActions/GroupActions.vue +5 -2
  145. package/src/components/ChatSetting/GroupChatSetting/GroupChatSetting.vue +5 -4
  146. package/src/components/ChatSetting/GroupChatSetting/GroupInfo/GroupInfo.vue +2 -2
  147. package/src/components/ChatSetting/GroupChatSetting/GroupManagement/GroupManagement.vue +3 -2
  148. package/src/components/ChatSetting/GroupChatSetting/GroupMembers/GroupMembers.vue +3 -3
  149. package/src/components/ChatSetting/SettingItem/SettingItem.vue +10 -7
  150. package/src/components/ChatSetting/i18n/en-US.ts +3 -3
  151. package/src/components/ChatSetting/i18n/zh-CN.ts +3 -3
  152. package/src/components/ChatSetting/index.ts +3 -3
  153. package/src/components/CoGuestPanel/CoGuestPanel.vue +9 -0
  154. package/src/components/ContactList/ContactInfo/BlacklistInfo/BlacklistInfo.scss +2 -0
  155. package/src/components/ContactList/ContactInfo/ContactInfo.vue +17 -9
  156. package/src/components/ContactList/ContactInfo/FriendApplicationInfo/FriendApplicationInfo.scss +2 -0
  157. package/src/components/ContactList/ContactInfo/FriendInfo/FriendInfo.scss +4 -3
  158. package/src/components/ContactList/ContactInfo/GroupApplicationInfo/GroupApplicationInfo.scss +2 -0
  159. package/src/components/ContactList/ContactInfo/GroupInfo/GroupInfo.scss +2 -0
  160. package/src/components/ContactList/ContactInfo/GroupInfo/GroupInfo.vue +1 -0
  161. package/src/components/ContactList/ContactInfo/SearchGroupInfo/SearchGroupInfo.scss +2 -2
  162. package/src/components/ContactList/ContactInfo/SearchUserInfo/SearchUserInfo.scss +3 -2
  163. package/src/components/ContactList/ContactList.scss +2 -1
  164. package/src/components/ContactList/ContactList.vue +18 -3
  165. package/src/components/ContactList/ContactListItem/BlacklistItem/BlacklistItem.scss +3 -3
  166. package/src/components/ContactList/ContactListItem/FriendApplicationItem/FriendApplicationItem.scss +5 -6
  167. package/src/components/ContactList/ContactListItem/FriendItem/FriendItem.scss +3 -3
  168. package/src/components/ContactList/ContactListItem/GroupApplicationItem/GroupApplicationItem.scss +5 -6
  169. package/src/components/ContactList/ContactListItem/GroupItem/GroupItem.scss +3 -3
  170. package/src/components/ConversationList/ConversationActions/ConversationActions.scss +2 -12
  171. package/src/components/ConversationList/ConversationActions/ConversationActions.vue +2 -2
  172. package/src/components/ConversationList/ConversationCreate/ConversationCreate.vue +1 -0
  173. package/src/components/ConversationList/ConversationCreate/ConversationCreateGroupDetail/ConversationCreateGroupDetail.scss +2 -1
  174. package/src/components/ConversationList/ConversationCreate/ConversationCreateUserSelectList/ConversationCreateUserSelectList.vue +2 -2
  175. package/src/components/ConversationList/ConversationCreate/ConversationGroupTypeInfo/ConversationGroupTypeInfo.scss +2 -1
  176. package/src/components/ConversationList/ConversationList.scss +0 -5
  177. package/src/components/ConversationList/ConversationList.vue +15 -41
  178. package/src/components/ConversationList/ConversationListContent/ConversationListContent.scss +1 -0
  179. package/src/components/ConversationList/ConversationListContent/ConversationListContent.vue +13 -18
  180. package/src/components/ConversationList/ConversationPreview/ConversationPreview.scss +11 -9
  181. package/src/components/ConversationList/ConversationPreview/ConversationPreview.vue +14 -16
  182. package/src/components/ConversationList/ConversationPreview/ConversationPreviewTitle.vue +2 -14
  183. package/src/components/ConversationList/ConversationPreview/index.ts +1 -1
  184. package/src/components/ConversationList/ConversationSearch/ConversationSearch.vue +1 -0
  185. package/src/components/LiveAudienceList/LiveAudienceListH5.vue +2 -2
  186. package/src/components/LiveCoreView/index.vue +145 -79
  187. package/src/components/LiveList/LiveList.vue +3 -0
  188. package/src/components/LiveList/LiveListH5.vue +60 -85
  189. package/src/components/LiveList/i18n/en-US/index.ts +5 -0
  190. package/src/components/LiveList/i18n/zh-CN/index.ts +5 -0
  191. package/src/components/LiveList/pullToRefresh.vue +364 -0
  192. package/src/components/LiveScenePanel/CameraSettingDialog.vue +6 -5
  193. package/src/components/LiveScenePanel/index.vue +2 -2
  194. package/src/components/MessageInput/AttachmentPicker/AttachmentPicker.module.scss +4 -0
  195. package/src/components/MessageInput/AttachmentPicker/AttachmentPicker.vue +12 -17
  196. package/src/components/MessageInput/AttachmentPicker/FilePicker.vue +3 -2
  197. package/src/components/MessageInput/AttachmentPicker/ImagePicker.vue +3 -2
  198. package/src/components/MessageInput/AttachmentPicker/VideoPicker.vue +3 -2
  199. package/src/components/MessageInput/EmojiPicker/EmojiPicker.module.scss +1 -0
  200. package/src/components/MessageInput/MessageInput.vue +21 -15
  201. package/src/components/MessageInput/TextEditor/Editor.scss +1 -0
  202. package/src/components/MessageInput/TextEditor/TextEditor.vue +16 -6
  203. package/src/components/MessageInput/types.d.ts +3 -4
  204. package/src/components/MessageList/Message/CustomMessage/CustomMessage.vue +1 -1
  205. package/src/components/MessageList/Message/FaceMessage/FaceMessage.vue +10 -7
  206. package/src/components/MessageList/Message/LocationMessage/LocationMessage.vue +3 -1
  207. package/src/components/MessageList/Message/MergerMessage/MergerMessage.vue +1 -1
  208. package/src/components/MessageList/Message/MessageLayout/MessageActionDropdown/MessageActionDropdown.vue +2 -2
  209. package/src/components/MessageList/MessageForward/MessageForward.vue +3 -3
  210. package/src/components/MessageList/MessageList.vue +17 -5
  211. package/src/components/MessageList/MessageTimeDivider/MessageTimeDivider.vue +9 -9
  212. package/src/components/MessageList/index.ts +5 -4
  213. package/src/components/Search/Search.scss +0 -3
  214. package/src/components/Search/SearchResults/EmptyResult/EmptyResult.scss +0 -3
  215. package/src/components/Search/SearchResults/Loading/Loading.scss +0 -3
  216. package/src/components/Search/SearchResults/SearchResults.scss +7 -16
  217. package/src/components/Search/SearchResults/SearchResultsItem/Conversation/Conversation.scss +5 -11
  218. package/src/components/Search/SearchResults/SearchResultsItem/Group/Group.scss +5 -11
  219. package/src/components/Search/SearchResults/SearchResultsItem/Message/Message.scss +5 -11
  220. package/src/components/Search/SearchResults/SearchResultsItem/SearchResultsItem.scss +0 -3
  221. package/src/components/Search/SearchResults/SearchResultsItem/User/User.scss +5 -6
  222. package/src/components/StreamMixer/LocalMixer/index.vue +9 -4
  223. package/src/components/StreamView/manager/mediaManager.ts +1 -1
  224. package/src/components/UserPicker/UserPicker.vue +6 -9
  225. package/src/components/UserPicker/components/ListMode/ListMode.vue +3 -7
  226. package/src/components/UserPicker/components/SelectedPanel/SelectedPanel.vue +2 -2
  227. package/src/components/UserPicker/components/TreeMode/TreeMode.vue +3 -3
  228. package/src/components/UserPicker/components/TreeMode/TreeNode.vue +3 -3
  229. package/src/components/UserPicker/hooks/useSearchFilter.ts +15 -14
  230. package/src/components/UserPicker/hooks/useSelection.ts +32 -32
  231. package/src/components/UserPicker/hooks/useTreeState.ts +4 -4
  232. package/src/components/UserPicker/index.ts +16 -14
  233. package/src/components/UserPicker/type.ts +18 -18
  234. package/src/types/contact.ts +13 -12
  235. package/src/types/conversation.ts +12 -14
  236. package/src/types/engine.ts +15 -0
  237. package/src/utils/json.ts +0 -4
  238. package/dist/AttachmentPicker.module-0_DWsAtr.js +0 -11
  239. package/dist/FilePicker.vue_vue_type_script_setup_true_lang-CaSj3Gh_.js +0 -72
  240. package/dist/ImagePicker.vue_vue_type_script_setup_true_lang-CrzGMmrh.js +0 -72
  241. package/dist/VideoPicker.vue_vue_type_script_setup_true_lang-DTv6TJKr.js +0 -72
  242. package/dist/states/UIOpenControlState/UIOpenControlState.d.ts +0 -15
  243. package/dist/states/UIOpenControlState/UIOpenControlState.js +0 -28
  244. package/dist/states/UIOpenControlState/index.d.ts +0 -1
  245. package/dist/states/UIOpenControlState/index.js +0 -4
@@ -1,3 +1,4 @@
1
+ import { Component } from 'vue';
1
2
  import { GroupModel } from './engine';
2
3
  import { default as TUIChatEngine } from '@tencentcloud/chat-uikit-engine';
3
4
 
@@ -135,10 +136,10 @@ export interface ContactListProps {
135
136
  groupConfig?: Partial<Record<ContactItemType, CustomGroupConfig>>;
136
137
  searchPlaceholder?: string;
137
138
  emptyText?: string;
138
- ContactItem?: any;
139
- ContactSearchComponent?: any;
140
- GroupHeader?: any;
141
- PlaceholderEmptyList?: any;
139
+ ContactItem?: Component;
140
+ ContactSearchComponent?: Component;
141
+ GroupHeader?: Component;
142
+ PlaceholderEmptyList?: Component;
142
143
  onContactItemClick?: (item: ContactGroupItem) => void;
143
144
  onFriendApplicationAction?: (action: 'accept' | 'refuse', application: FriendApplication) => void;
144
145
  onGroupApplicationAction?: (action: 'accept' | 'refuse', application: GroupApplication) => void;
@@ -149,14 +150,14 @@ export interface ContactInfoBaseProps {
149
150
  }
150
151
  export interface ContactInfoProps extends ContactInfoBaseProps {
151
152
  contactItem?: ContactGroupItem | undefined;
152
- PlaceholderEmpty?: any;
153
- FriendInfoComponent?: any;
154
- GroupInfoComponent?: any;
155
- BlacklistInfoComponent?: any;
156
- FriendApplicationInfoComponent?: any;
157
- GroupApplicationInfoComponent?: any;
158
- SearchGroupInfoComponent?: any;
159
- SearchUserInfoComponent?: any;
153
+ PlaceholderEmpty?: Component;
154
+ FriendInfoComponent?: Component;
155
+ GroupInfoComponent?: Component;
156
+ BlacklistInfoComponent?: Component;
157
+ FriendApplicationInfoComponent?: Component;
158
+ GroupApplicationInfoComponent?: Component;
159
+ SearchGroupInfoComponent?: Component;
160
+ SearchUserInfoComponent?: Component;
160
161
  onSendMessage?: (friend: Friend) => void;
161
162
  onDeleteFriend?: (friend: Friend) => void;
162
163
  onUpdateFriendRemark?: (friend: Friend, remark: string) => void;
@@ -26,11 +26,11 @@ export interface ConversationListProps {
26
26
  /** Specifies a vue component to customize the conversation actions in conversation preview. */
27
27
  ConversationActions?: Component<ConversationActionsProps>;
28
28
  /** Specifies a vue component to display when the chat list is empty. */
29
- PlaceholderEmptyList?: any;
29
+ PlaceholderEmptyList?: Component;
30
30
  /** Specifies a vue component to display while the chat list is loading. */
31
- PlaceholderLoading?: any;
31
+ PlaceholderLoading?: Component;
32
32
  /** Specifies a vue component to display when there is an error loading the chat list. */
33
- PlaceholderLoadError?: any;
33
+ PlaceholderLoadError?: Component;
34
34
  /** Specifies a vue component to customize the avatar in list. */
35
35
  Avatar?: Component<AvatarProps>;
36
36
  /** Specifies a function to filter conversations in the conversation list. */
@@ -70,11 +70,11 @@ export interface ConversationListContentProps {
70
70
  /** Indicates whether there was an error loading the chat list */
71
71
  error?: boolean;
72
72
  /** A custom component to display when the chat list is empty */
73
- PlaceholderEmptyList?: any;
73
+ PlaceholderEmptyList?: Component;
74
74
  /** A custom component to display while the chat list is loading */
75
- PlaceholderLoading?: any;
75
+ PlaceholderLoading?: Component;
76
76
  /** A custom component to display when there is an error loading the chat list */
77
- PlaceholderLoadError?: any;
77
+ PlaceholderLoadError?: Component;
78
78
  /** The custom class name */
79
79
  className?: string;
80
80
  /** The custom class style */
@@ -87,18 +87,16 @@ export interface ConversationPreviewUIProps {
87
87
  isSelected?: boolean;
88
88
  /** Whether to show the ConversationActions */
89
89
  enableActions?: boolean;
90
- /** The string to be highlighted in the title */
91
- highlightMatchString?: string;
92
90
  /** The custom Avatar component */
93
91
  Avatar?: Component<AvatarProps>;
94
92
  /** The custom Title component */
95
- Title?: string | any;
93
+ Title?: string | Component;
96
94
  /** The custom last message abstract component */
97
- LastMessageAbstract?: string | any;
95
+ LastMessageAbstract?: string | Component;
98
96
  /** The custom last message abstract component */
99
- LastMessageTimestamp?: string | any;
97
+ LastMessageTimestamp?: string | Component;
100
98
  /** The custom Unread component */
101
- Unread?: string | any;
99
+ Unread?: string | Component;
102
100
  /** The custom ConversationActions component */
103
101
  ConversationActions?: Component<ConversationActionsProps>;
104
102
  /** Callback when the user click a conversation from conversation list */
@@ -153,9 +151,9 @@ export interface ConversationActionsConfig extends ConversationActionsBaseConfig
153
151
  */
154
152
  customConversationActions?: Record<string, ConversationActionItem>;
155
153
  /** The icon vue element to be displayed in the action popup. */
156
- PopupIcon?: any;
154
+ PopupIcon?: Component;
157
155
  /** An array of vue elements to be displayed in the action popup. */
158
- PopupElements?: any[];
156
+ PopupElements?: Component[];
159
157
  /** The function to be called when the action popup is clicked. */
160
158
  onClick?: (e: Event, key?: string, conversation?: ConversationModel) => void;
161
159
  /** Function to be called when the actions modal is closed (H5 only). */
@@ -5,3 +5,15 @@ export declare enum SearchType {
5
5
  USER = "user",
6
6
  GROUP = "group"
7
7
  }
8
+ export declare enum MessageType {
9
+ TEXT,
10
+ IMAGE,
11
+ AUDIO,
12
+ VIDEO,
13
+ FILE,
14
+ FACE,
15
+ LOCATION,
16
+ GRP_TIP,
17
+ CUSTOM,
18
+ MERGER
19
+ }
@@ -1,3 +1,4 @@
1
+ import TUIChatEngine from "@tencentcloud/chat-uikit-engine";
1
2
  var SearchType = /* @__PURE__ */ ((SearchType2) => {
2
3
  SearchType2["MESSAGE"] = "message";
3
4
  SearchType2["CHAT_MESSAGE"] = "chat_message";
@@ -5,6 +6,20 @@ var SearchType = /* @__PURE__ */ ((SearchType2) => {
5
6
  SearchType2["GROUP"] = "group";
6
7
  return SearchType2;
7
8
  })(SearchType || {});
9
+ var MessageType = ((MessageType2) => {
10
+ MessageType2[MessageType2["TEXT"] = TUIChatEngine.TYPES.MSG_TEXT] = "TEXT";
11
+ MessageType2[MessageType2["IMAGE"] = TUIChatEngine.TYPES.MSG_IMAGE] = "IMAGE";
12
+ MessageType2[MessageType2["AUDIO"] = TUIChatEngine.TYPES.MSG_AUDIO] = "AUDIO";
13
+ MessageType2[MessageType2["VIDEO"] = TUIChatEngine.TYPES.MSG_VIDEO] = "VIDEO";
14
+ MessageType2[MessageType2["FILE"] = TUIChatEngine.TYPES.MSG_FILE] = "FILE";
15
+ MessageType2[MessageType2["FACE"] = TUIChatEngine.TYPES.MSG_FACE] = "FACE";
16
+ MessageType2[MessageType2["LOCATION"] = TUIChatEngine.TYPES.MSG_LOCATION] = "LOCATION";
17
+ MessageType2[MessageType2["GRP_TIP"] = TUIChatEngine.TYPES.MSG_GRP_TIP] = "GRP_TIP";
18
+ MessageType2[MessageType2["CUSTOM"] = TUIChatEngine.TYPES.MSG_CUSTOM] = "CUSTOM";
19
+ MessageType2[MessageType2["MERGER"] = TUIChatEngine.TYPES.MSG_MERGER] = "MERGER";
20
+ return MessageType2;
21
+ })(MessageType || {});
8
22
  export {
23
+ MessageType,
9
24
  SearchType
10
25
  };
@@ -8,7 +8,7 @@ import { LocalRoomStatus, RoomAction } from "./room.js";
8
8
  import { MonitorDeviceStatus } from "./monitor.js";
9
9
  import { CoGuestStatus } from "./coGuest.js";
10
10
  import { VariantType, defaultTypeLabels } from "./search.js";
11
- import { SearchType } from "./engine.js";
11
+ import { MessageType, SearchType } from "./engine.js";
12
12
  import { CreateConvTypes, GroupLabelTypes, GroupType, PageStateTypes, PlaceHolderTypes } from "./conversation.js";
13
13
  import { ContactItemType, GroupApplicationType } from "./contact.js";
14
14
  export {
@@ -30,6 +30,7 @@ export {
30
30
  LiveType,
31
31
  LocalRoomStatus,
32
32
  MediaSettingDisplayMode,
33
+ MessageType,
33
34
  MonitorDeviceStatus,
34
35
  PageStateTypes,
35
36
  PlaceHolderTypes,
@@ -39,7 +39,6 @@ function safeJSONParse(text, defaultValue, reviver) {
39
39
  }
40
40
  return parsed;
41
41
  } catch (error) {
42
- console.warn("JSON parse failed:", error);
43
42
  return defaultValue;
44
43
  }
45
44
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tuikit-atomicx-vue3",
3
- "version": "3.3.0-beta.3",
3
+ "version": "3.3.1",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "module": "./dist/index.js",
@@ -22,6 +22,10 @@
22
22
  "./rtc": {
23
23
  "types": "./dist/rtc/index.d.ts",
24
24
  "import": "./dist/rtc/index.js"
25
+ },
26
+ "./types": {
27
+ "types": "./dist/types/index.d.ts",
28
+ "import": "./dist/types/index.js"
25
29
  }
26
30
  },
27
31
  "scripts": {
@@ -47,8 +51,8 @@
47
51
  "@tencentcloud/chat": "^3.5.4",
48
52
  "@tencentcloud/chat-uikit-engine": "~2.5.1",
49
53
  "@tencentcloud/tui-core": "latest",
50
- "@tencentcloud/tuiroom-engine-js": "~3.3.0-beta.3",
51
- "@tencentcloud/uikit-base-component-vue3": "0.3.7",
54
+ "@tencentcloud/tuiroom-engine-js": "~3.3.1",
55
+ "@tencentcloud/uikit-base-component-vue3": "1.0.1",
52
56
  "vue": "^3.4.21"
53
57
  },
54
58
  "dependencies": {
package/src/chat/index.ts CHANGED
@@ -12,12 +12,17 @@ import {
12
12
  ConversationListHeader as ConversationListHeaderComponent,
13
13
  ConversationListContent as ConversationListContentComponent,
14
14
  ConversationPreview as ConversationPreviewComponent,
15
+ ConversationPreviewUI as ConversationPreviewUIComponent,
16
+ ConversationSearch as ConversationSearchComponent,
15
17
  } from '../components/ConversationList';
16
18
  import {
17
19
  MessageInput as MessageInputComponent,
18
20
  EmojiPicker as EmojiPickerComponent,
19
21
  } from '../components/MessageInput';
20
- import { MessageList as MessageListComponent } from '../components/MessageList';
22
+ import {
23
+ MessageList as MessageListComponent,
24
+ Message as MessageComponent,
25
+ } from '../components/MessageList';
21
26
  import {
22
27
  Search as SearchComponent,
23
28
  SearchAdvanced as SearchAdvancedComponent,
@@ -33,7 +38,6 @@ import { useMessageActionState as messageActionState } from '../states/MessageAc
33
38
  import { useMessageInputState as messageInputState } from '../states/MessageInputState';
34
39
  import { useMessageListState as messageListState } from '../states/MessageListState';
35
40
  import { useSearchState as searchState } from '../states/SearchState';
36
- import { useUIOpenControlState as uiOpenControlState } from '../states/UIOpenControlState';
37
41
 
38
42
  import ChatLoginServer from './server';
39
43
 
@@ -52,11 +56,14 @@ const ConversationActions = ConversationActionsComponent;
52
56
  const ConversationListHeader = ConversationListHeaderComponent;
53
57
  const ConversationListContent = ConversationListContentComponent;
54
58
  const ConversationPreview = ConversationPreviewComponent;
59
+ const ConversationPreviewUI = ConversationPreviewUIComponent;
60
+ const ConversationSearch = ConversationSearchComponent;
55
61
  const ContactList = ContactListComponent;
56
62
  const ContactListItem = ContactListItemComponent;
57
63
  const ContactInfo = ContactInfoComponent;
58
64
 
59
65
  const MessageList = MessageListComponent;
66
+ const Message = MessageComponent;
60
67
  const MessageInput = MessageInputComponent;
61
68
  const EmojiPicker = EmojiPickerComponent;
62
69
  const ChatSetting = ChatSettingComponent;
@@ -71,7 +78,6 @@ const useMessageActionState = messageActionState;
71
78
  const useMessageInputState = messageInputState;
72
79
  const useMessageListState = messageListState;
73
80
  const useSearchState = searchState;
74
- const useUIOpenControlState = uiOpenControlState;
75
81
 
76
82
  export {
77
83
  // component
@@ -87,7 +93,10 @@ export {
87
93
  ConversationListHeader,
88
94
  ConversationListContent,
89
95
  ConversationPreview,
96
+ ConversationPreviewUI,
97
+ ConversationSearch,
90
98
  MessageList,
99
+ Message,
91
100
  MessageInput,
92
101
  EmojiPicker,
93
102
  ChatSetting,
@@ -105,5 +114,4 @@ export {
105
114
  useMessageActionState,
106
115
  useConversationListState,
107
116
  useSearchState,
108
- useUIOpenControlState,
109
117
  };
@@ -1,6 +1,14 @@
1
1
  <template>
2
2
  <div class="live-message-input-h5">
3
+ <div v-if="!editorShow" class="placeholder-container" :style="{width: props.width}" @click="handleShowEditor">
4
+ <div class="input-actions">
5
+ <EmojiPicker :disabled="disabled" :trigger-style="{ display: 'flex' }" />
6
+ </div>
7
+ <span>{{ placeholderText }}</span>
8
+ </div>
9
+
3
10
  <BarrageInput
11
+ v-if="editorShow"
4
12
  :autoFocus="props.autoFocus"
5
13
  :containerClass="inputClass"
6
14
  :containerStyle="props.containerStyle"
@@ -8,7 +16,7 @@
8
16
  :height="props.height"
9
17
  :minHeight="props.minHeight"
10
18
  :maxHeight="props.maxHeight"
11
- :placeholder="props.placeholder"
19
+ :placeholder="placeholderText"
12
20
  :disabled="disabled"
13
21
  :maxLength="props.maxLength"
14
22
  @focus="handleFocus"
@@ -26,12 +34,13 @@
26
34
  </template>
27
35
 
28
36
  <script setup lang="ts">
29
- import { ref, withDefaults, defineProps, defineEmits, computed } from 'vue';
37
+ import { ref, withDefaults, defineProps, defineEmits, computed, nextTick } from 'vue';
30
38
  import { useUIKit, TUIButton, TUIToast } from '@tencentcloud/uikit-base-component-vue3';
31
39
  import { useLiveAudienceState } from '../../states/LiveAudienceState';
32
40
  import { useLoginState } from '../../states/LoginState';
33
41
  import { useMessageInputState } from '../../states/MessageInputState';
34
42
  import BarrageInput from './BarrageInput.vue';
43
+ import EmojiPicker from './EmojiPicker/EmojiPicker.vue';
35
44
  import { ERROR_MESSAGE } from './constants';
36
45
 
37
46
  const emit = defineEmits<{
@@ -52,6 +61,8 @@ interface Props {
52
61
  maxLength?: number;
53
62
  }
54
63
 
64
+ const { t } = useUIKit();
65
+
55
66
  const props = withDefaults(defineProps<Props>(), {
56
67
  containerClass: '',
57
68
  containerStyle: () => ({}),
@@ -63,6 +74,7 @@ const props = withDefaults(defineProps<Props>(), {
63
74
  maxLength: 80,
64
75
  });
65
76
 
77
+ const placeholderText = computed(() => props.placeholder || t('Say something'));
66
78
  const { loginUserInfo } = useLoginState();
67
79
  const { audienceList } = useLiveAudienceState();
68
80
 
@@ -72,9 +84,9 @@ const disabled = computed(() => {
72
84
  return props.disabled || localUser?.isMessageDisabled;
73
85
  });
74
86
 
75
- const { t } = useUIKit();
76
- const { inputRawValue, setContent, sendMessage, blurEditor } = useMessageInputState();
87
+ const { inputRawValue, setContent, sendMessage, blurEditor, focusEditor } = useMessageInputState();
77
88
  const isFocus = ref(false);
89
+ const editorShow = ref(false);
78
90
  const isTouching = ref(false);
79
91
 
80
92
  const handleTouchStart = () => {
@@ -113,6 +125,12 @@ const handleBlur = () => {
113
125
  isFocus.value = false;
114
126
  emit('blur');
115
127
  };
128
+
129
+ const handleShowEditor = async () => {
130
+ editorShow.value = true;
131
+ await nextTick();
132
+ focusEditor();
133
+ }
116
134
  </script>
117
135
 
118
136
  <style lang="scss" scoped>
@@ -129,5 +147,33 @@ const handleBlur = () => {
129
147
  border-radius: 100px;
130
148
  border: 1px solid var(--stroke-color-primary)
131
149
  }
150
+
151
+ .placeholder-container {
152
+ position: relative;
153
+ display: flex;
154
+ align-items: center;
155
+ background-color: var(--bg-color-operate);
156
+ overflow: auto;
157
+ box-sizing: border-box;
158
+ height: 36px;
159
+ max-height: 140px;
160
+ min-height: 36px;
161
+ padding: 2px 12px;
162
+ border-radius: 100px;
163
+ border: 1px solid var(--stroke-color-primary);
164
+ color: var(--text-color-secondary);
165
+ text-align: center;
166
+ line-height: 1.5;
167
+ font-size: 14px;
168
+ user-select: none;
169
+
170
+ .input-actions {
171
+ display: flex;
172
+ align-items: center;
173
+ gap: 12px;
174
+ margin-right: 12px;
175
+ flex-shrink: 0;
176
+ }
177
+ }
132
178
  }
133
179
  </style>
@@ -13,6 +13,7 @@
13
13
  margin-bottom: 10px;
14
14
  background-color: var(--dropdown-color-default);
15
15
  box-shadow: 0 0 10px 0 var(--shadow-color);
16
+ user-select: none;
16
17
 
17
18
  &-item {
18
19
  display: flex;
@@ -6,7 +6,7 @@
6
6
  </PopoverTrigger>
7
7
  <PopoverPortal>
8
8
  <PopoverContent side="top" align="center" :side-offset="8" style="box-sizing: border-box; z-index: 1000">
9
- <div class="flex flex-col gap-2.5">
9
+ <div class="flex flex-col gap-2.5" tabindex="-1" style="outline: none;">
10
10
  <div :class="styles['emoji-picker__list']">
11
11
  <div
12
12
  v-for="emojiKey in Object.keys(emojiUrlMap)"
@@ -1,6 +1,5 @@
1
1
  .tiptap.ProseMirror {
2
2
  height: 100%;
3
- flex: 1 0 auto;
4
3
  word-wrap: break-word;
5
4
  word-break: break-word;
6
5
  white-space: pre-wrap;
@@ -12,6 +11,7 @@
12
11
  display: flex;
13
12
  flex-direction: column;
14
13
  justify-content: center;
14
+ flex: auto;
15
15
 
16
16
  &::-webkit-scrollbar {
17
17
  width: 6px;
@@ -33,6 +33,8 @@
33
33
  min-width: 0;
34
34
  overflow: auto;
35
35
  height: 100%;
36
+ display: flex;
37
+ align-items: center;
36
38
  }
37
39
 
38
40
  .disabled-editor {
@@ -86,10 +86,16 @@ const createEditorInstance = (p: ITextEditorProps) => {
86
86
  },
87
87
  onFocus: () => {
88
88
  isFocused.value = true;
89
+ if (navigator && "virtualKeyboard" in navigator) {
90
+ (navigator?.virtualKeyboard as any)?.show()
91
+ }
89
92
  emit('focus');
90
93
  },
91
94
  onBlur: () => {
92
95
  isFocused.value = false;
96
+ if (navigator && "virtualKeyboard" in navigator) {
97
+ (navigator?.virtualKeyboard as any)?.hide()
98
+ }
93
99
  emit('blur');
94
100
  },
95
101
  });
@@ -2,19 +2,19 @@
2
2
  import { defineProps } from 'vue';
3
3
  import { useUIKit } from '@tencentcloud/uikit-base-component-vue3';
4
4
  import cs from 'classnames';
5
- import type { IMessageModel } from '@tencentcloud/chat-uikit-engine';
5
+ import type { IMessageModel as MessageModel } from '@tencentcloud/chat-uikit-engine';
6
6
 
7
- interface IGroupTipMessageProps {
8
- message: IMessageModel;
7
+ interface GroupTipMessageProps {
8
+ message: MessageModel;
9
9
  }
10
10
 
11
- interface IGroupTipMessageContent {
11
+ interface GroupTipMessageContent {
12
12
  text: string;
13
13
  businessID?: string;
14
14
  showName?: string;
15
15
  }
16
16
 
17
- interface ICustomMessageContent {
17
+ interface CustomMessageContent {
18
18
  businessID?: string;
19
19
  showName?: string;
20
20
  custom?: string;
@@ -24,11 +24,11 @@ enum CustomMessageAsGroupTipEnum {
24
24
  GROUP_CREATE = 'group_create',
25
25
  }
26
26
 
27
- const props = defineProps<IGroupTipMessageProps>();
27
+ const props = defineProps<GroupTipMessageProps>();
28
28
 
29
29
  const { t } = useUIKit();
30
30
 
31
- const messageContent = props.message.getMessageContent() as IGroupTipMessageContent & ICustomMessageContent;
31
+ const messageContent = props.message.getMessageContent() as GroupTipMessageContent & CustomMessageContent;
32
32
 
33
33
  const renderText = () => {
34
34
  switch (messageContent.businessID) {
@@ -50,6 +50,6 @@ const renderText = () => {
50
50
  .group-tip-message {
51
51
  color: var(--text-color-secondary);
52
52
  text-align: center;
53
- font-size: 14px;
53
+ font-size: 12px;
54
54
  }
55
55
  </style>
@@ -26,6 +26,7 @@
26
26
  :is="context.slots['user-badge']"
27
27
  :message="message"
28
28
  />
29
+ <span class="user-badge" v-if="message.from === currentLive?.liveOwner.userId && !context.slots['user-badge']">{{ t('Anchor') }}</span>
29
30
  <span
30
31
  class="text-message__content__nick"
31
32
  @click="handleNickClick"
@@ -62,11 +63,13 @@ import { useUIKit, TUIToast } from '@tencentcloud/uikit-base-component-vue3';
62
63
  import cs from 'classnames';
63
64
  import { useScroll } from '../../../../hooks/useScroll';
64
65
  import { useBarrageListState } from '../../../../states/BarrageListState';
66
+ import { useLiveState } from '../../../../states/LiveState';
65
67
  import { safeJSONParse } from '../../../../utils/json';
66
68
  import { useMessageListContext } from '../../MessageListContext';
67
69
  import type { ICloudCustomData } from '../../../../types/message';
68
70
  import type { IMessageModel } from '@tencentcloud/chat-uikit-engine';
69
71
 
72
+ const { currentLive } = useLiveState();
70
73
  const context: {
71
74
  slots: Record<string, () => VueElement>;
72
75
  nickClick: (payload: { message: IMessageModel; event: MouseEvent }) => void;
@@ -217,6 +220,13 @@ const handleNickClick = (event: MouseEvent) => {
217
220
  word-spacing: 0.2em;
218
221
  letter-spacing: 0.1em;
219
222
 
223
+ .user-badge {
224
+ background-color: var(--uikit-color-theme-6);
225
+ border-radius: 12px;
226
+ padding: 0px 8px;
227
+ margin-right: 6px;
228
+ }
229
+
220
230
  &__nick {
221
231
  color: var(--uikit-color-theme-8);
222
232
  cursor: pointer;
@@ -7,4 +7,5 @@ export const resource = {
7
7
  'Operation Successful': 'Operation successful',
8
8
  'Operation Failed': 'Operation failed',
9
9
  'This message contains risky content': 'This message contains risky content',
10
+ 'Anchor': 'ANCHOR'
10
11
  };
@@ -9,4 +9,5 @@ export const resource = {
9
9
  'Mute Success': '禁言成功',
10
10
  'Unmute Success': '解除禁言成功',
11
11
  'This message contains risky content': '该消息包含风险内容',
12
+ 'Anchor': '主播',
12
13
  };
@@ -39,6 +39,7 @@
39
39
 
40
40
  <!-- Transfer Group Owner Dialog -->
41
41
  <TUIDialog
42
+ appendTo="body"
42
43
  :visible="isShowTransferDialog"
43
44
  :title="t('ChatSetting.transfer_group_owner')"
44
45
  :custom-classes="['user-picker-dialog']"
@@ -62,6 +63,7 @@
62
63
 
63
64
  <!-- Dismiss Group Dialog -->
64
65
  <TUIDialog
66
+ appendTo="body"
65
67
  :visible="isShowDismissDialog"
66
68
  :title="t('ChatSetting.dismiss_group')"
67
69
  @close="() => isShowDismissDialog = false"
@@ -71,6 +73,7 @@
71
73
 
72
74
  <!-- Quit Group Dialog -->
73
75
  <TUIDialog
76
+ appendTo="body"
74
77
  :visible="isShowQuitDialog"
75
78
  :title="t('ChatSetting.quit_group')"
76
79
  @close="() => isShowQuitDialog = false"
@@ -89,7 +92,7 @@ import { ref, computed } from 'vue';
89
92
  import { TUIButton, TUIDialog, TUIToast, useUIKit } from '@tencentcloud/uikit-base-component-vue3';
90
93
  import { useGroupSettingState, GroupPermission } from '../../../../states/GroupSettingState';
91
94
  import { UserPicker } from '../../../UserPicker';
92
- import type { IUserPickerRef } from '../../../UserPicker';
95
+ import type { UserPickerRef } from '../../../UserPicker';
93
96
 
94
97
  const { t } = useUIKit();
95
98
 
@@ -107,7 +110,7 @@ const isShowDismissDialog = ref(false);
107
110
  const isShowQuitDialog = ref(false);
108
111
  const loading = ref(false);
109
112
 
110
- const userPickerRef = ref<IUserPickerRef>();
113
+ const userPickerRef = ref<UserPickerRef>();
111
114
 
112
115
  // Check permissions for different actions
113
116
  const canDismissGroup = computed(() => hasPermission(GroupPermission.DISMISS_GROUP));
@@ -11,7 +11,7 @@ import { GroupManagement } from './GroupManagement';
11
11
  import { GroupManagementEntry } from './GroupManagementEntry';
12
12
  import { GroupMembers } from './GroupMembers';
13
13
  import { PersonalSettings } from './PersonalSettings';
14
- import type { IUserPickerRow, IUserPickerRef } from '../../UserPicker';
14
+ import type { UserPickerRow, UserPickerRef } from '../../UserPicker';
15
15
 
16
16
  enum ViewMode {
17
17
  MAIN = 'main',
@@ -42,11 +42,11 @@ const loading = ref(false);
42
42
  const hasMore = ref(true);
43
43
  const currentView = ref<ViewMode>(ViewMode.MAIN);
44
44
  const isShowUserPickerDialog = ref(false);
45
- const memberDataSource = ref<IUserPickerRow[]>([]);
46
- const userPickerLockedItems = ref<IUserPickerRow[]>([]);
45
+ const memberDataSource = ref<UserPickerRow[]>([]);
46
+ const userPickerLockedItems = ref<UserPickerRow[]>([]);
47
47
  const memberActionType = ref<'remove' | 'add' | null>(null);
48
48
 
49
- const userPickerRef = ref<IUserPickerRef>();
49
+ const userPickerRef = ref<UserPickerRef>();
50
50
 
51
51
  // Initialize member list when component mounts
52
52
  onMounted(() => {
@@ -260,6 +260,7 @@ const userPickerDialogTitle = computed(() => {
260
260
  <PersonalSettings />
261
261
  <GroupActions />
262
262
  <TUIDialog
263
+ appendTo="body"
263
264
  :visible="isShowUserPickerDialog"
264
265
  :title="userPickerDialogTitle"
265
266
  :custom-classes="['user-picker-dialog']"
@@ -51,7 +51,7 @@ const validateGroupName = (value: string, originalValue?: string) => {
51
51
  if (value.length === 0) {
52
52
  return t('ChatSetting.group_name_required');
53
53
  }
54
- if (value.length > 25) {
54
+ if (value.length > 30) {
55
55
  return t('ChatSetting.group_name_max_length');
56
56
  }
57
57
  if (value === (originalValue || '')) {
@@ -65,7 +65,7 @@ const validateNotification = (value: string, originalValue?: string) => {
65
65
  if (typeof value !== 'string') {
66
66
  return t('ChatSetting.group_notification_required_string');
67
67
  }
68
- if (value.length > 100) {
68
+ if (value.length > 130) {
69
69
  return t('ChatSetting.group_notification_max_length');
70
70
  }
71
71
  if (value === (originalValue || '')) {
@@ -63,6 +63,7 @@
63
63
 
64
64
  <!-- User Picker Dialog -->
65
65
  <TUIDialog
66
+ appendTo="body"
66
67
  :custom-classes="['user-picker-dialog']"
67
68
  :visible="isShowUserPickerDialog"
68
69
  :title="userPickerTitle"
@@ -92,7 +93,7 @@ import {
92
93
  import { UserPicker } from '../../../UserPicker';
93
94
  import { SettingItem } from '../../SettingItem';
94
95
  import { GroupMembers } from '../GroupMembers';
95
- import type { IUserPickerRow, IUserPickerRef } from '../../../UserPicker';
96
+ import type { UserPickerRow, UserPickerRef } from '../../../UserPicker';
96
97
 
97
98
  const emit = defineEmits<{
98
99
  back: [];
@@ -119,7 +120,7 @@ const isShowUserPickerDialog = ref(false);
119
120
  const userPickerTitle = ref('');
120
121
  const userPickerLockedItems = ref<any[]>([]);
121
122
 
122
- const userPickerRef = ref<IUserPickerRef>();
123
+ const userPickerRef = ref<UserPickerRef>();
123
124
  const memberActionRef = ref<'promote_admin' | 'demote_admin' | 'mute' | 'unmute' | null>(null);
124
125
 
125
126
  // Filter muted members