@tencent-rtc/mcp 1.3.3 → 1.3.5

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 (105) hide show
  1. package/package.json +1 -1
  2. package/resource/doc/chatuikit/android/features/theme.md +363 -0
  3. package/resource/doc/chatuikit/{android/client_api_Android.md → faq/android_sdk/client-api.md} +0 -2
  4. package/resource/doc/chatuikit/faq/common/product.md +8 -0
  5. package/resource/doc/chatuikit/faq/flutter_sdk/faq.md +53 -0
  6. package/resource/doc/chatuikit/{iOS/client_api_iOS.md → faq/ios_sdk/client-api.md} +0 -2
  7. package/resource/doc/chatuikit/flutter/features/theme.md +379 -0
  8. package/resource/doc/chatuikit/flutter/integration.md +413 -0
  9. package/resource/doc/chatuikit/flutter/workflow.md +941 -0
  10. package/resource/doc/chatuikit/iOS/features/theme.md +416 -0
  11. package/resource/doc/chatuikit/iOS/workflow.md +0 -0
  12. package/resource/doc/chatuikit/react/components/chat-setting.md +86 -0
  13. package/resource/doc/chatuikit/react/components/contact-list.md +1093 -0
  14. package/resource/doc/chatuikit/react/components/search.md +745 -0
  15. package/resource/doc/chatuikit/vue/components/chat-setting.md +64 -0
  16. package/resource/doc/chatuikit/vue/components/contact-list.md +679 -0
  17. package/resource/doc/chatuikit/vue/components/search.md +1384 -0
  18. package/resource/doc/livekit/live/android/workflow.md +137 -6
  19. package/resource/doc/livekit/live/ios/live-audience-list.md +339 -0
  20. package/resource/doc/livekit/live/ios/live-audio-effect.md +370 -0
  21. package/resource/doc/livekit/live/ios/live-barrage.md +517 -0
  22. package/resource/doc/livekit/live/ios/live-base-beauty.md +247 -0
  23. package/resource/doc/livekit/live/ios/live-co-guest-interaction.md +518 -0
  24. package/resource/doc/livekit/live/ios/live-gift.md +783 -0
  25. package/resource/doc/livekit/live/ios/live-host-interaction.md +815 -0
  26. package/resource/doc/livekit/live/ios/live-integration.md +931 -0
  27. package/resource/doc/livekit/live/ios/live-live-list.md +485 -0
  28. package/resource/doc/livekit/live/ios/workflow.md +454 -0
  29. package/resource/doc/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +87 -0
  30. package/resource/doc/rtcengine/web/plugin/21-advanced-auto-play-policy.md +87 -0
  31. package/resource/doc/rtcengine/web/plugin/22-advanced-audio-mixer.md +175 -0
  32. package/resource/doc/rtcengine/web/plugin/23-advanced-support-detection.md +221 -0
  33. package/resource/doc/rtcengine/web/plugin/24-advanced-network-quality.md +140 -0
  34. package/resource/doc/rtcengine/web/plugin/25-advanced-device-change.md +99 -0
  35. package/resource/doc/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +451 -0
  36. package/resource/doc/rtcengine/web/plugin/27-advanced-small-stream.md +151 -0
  37. package/resource/doc/rtcengine/web/plugin/28-advanced-beauty.md +322 -0
  38. package/resource/doc/rtcengine/web/plugin/29-advanced-water-mark.md +149 -0
  39. package/resource/doc/rtcengine/web/plugin/30-advanced-cross-room-link.md +96 -0
  40. package/resource/doc/rtcengine/web/plugin/31-advanced-plugins-overview.md +330 -0
  41. package/resource/doc/rtcengine/web/plugin/34-advanced-proxy.md +248 -0
  42. package/resource/doc/rtcengine/web/plugin/35-advanced-ai-denoiser.md +81 -0
  43. package/resource/doc/rtcengine/web/plugin/36-advanced-virtual-background.md +242 -0
  44. package/resource/doc/rtcengine/web/plugin/37-advanced-voice-changer.md +99 -0
  45. package/resource/doc/rtcengine/web/plugin/39-advanced-video-decoder.md +33 -0
  46. package/resource/doc/rtcengine/web/plugin/40-advanced-video-mixer.md +379 -0
  47. package/resource/doc/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +91 -0
  48. package/resource/doc/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +315 -0
  49. package/resource/doc/rtcengine/web/plugin/43-advanced-face-detection.md +180 -0
  50. package/tools/chat/get-native-chat-feature-detail.js +30 -0
  51. package/tools/chat/get-native-chat-feature-detail.js.map +1 -0
  52. package/tools/chat/get-native-chat-integration.js +30 -12
  53. package/tools/chat/get-native-chat-integration.js.map +1 -1
  54. package/tools/common/get-faq.js +2 -4
  55. package/tools/common/get-faq.js.map +1 -1
  56. package/tools/definitions/get_native_chat_feature_detail_def.js +32 -0
  57. package/tools/definitions/get_native_chat_feature_detail_def.js.map +1 -0
  58. package/tools/definitions/get_native_chat_uikit_integration_def.js +19 -7
  59. package/tools/definitions/get_native_chat_uikit_integration_def.js.map +1 -1
  60. package/tools/definitions/{get_native_live_extra_features_def.js → get_native_live_uikit_extra_features_def.js} +3 -3
  61. package/tools/definitions/get_native_live_uikit_extra_features_def.js.map +1 -0
  62. package/tools/definitions/{get_native_live_interaction_def.js → get_native_live_uikit_interaction_def.js} +3 -3
  63. package/tools/definitions/get_native_live_uikit_interaction_def.js.map +1 -0
  64. package/tools/definitions/get_web_chat_uikit_component_detail_def.js +49 -10
  65. package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +1 -1
  66. package/tools/definitions/record_prompt_def.js +42 -11
  67. package/tools/definitions/record_prompt_def.js.map +1 -1
  68. package/tools/definitions/record_result_def.js +1 -1
  69. package/tools/index.js +6 -4
  70. package/tools/index.js.map +1 -1
  71. package/tools/live/{get_native_live_extra_features.js → get_native_live_uikit_extra_features.js} +4 -4
  72. package/tools/live/get_native_live_uikit_extra_features.js.map +1 -0
  73. package/tools/live/{get_native_live_interaction.js → get_native_live_uikit_interaction.js} +4 -4
  74. package/tools/live/get_native_live_uikit_interaction.js.map +1 -0
  75. package/tools/rtcengine/get-rtcengine-web-sdk-integration.js.map +1 -1
  76. package/tools/rtcengine/get-trtc-sdk-faq.js +32 -0
  77. package/tools/rtcengine/get-trtc-sdk-faq.js.map +1 -0
  78. package/tools/rtcengine/get-trtc-web-sdk-faq.js +1 -1
  79. package/tools/rtcengine/get-trtc-web-sdk-integration.js.map +1 -1
  80. package/tools/rtcengine/get-trtc-web-sdk-plugin.js +45 -0
  81. package/tools/rtcengine/get-trtc-web-sdk-plugin.js.map +1 -0
  82. package/utils/handle-component-name.js +0 -16
  83. package/utils/handle-component-name.js.map +1 -1
  84. package/utils/report-cls-client.js +1 -1
  85. package/utils/report-es-client.js +1 -1
  86. package/resource/doc/chatuikit/android/generate_UserSig.md +0 -306
  87. package/resource/doc/chatuikit/android/integrarte_only_tuichat_Android.md +0 -290
  88. package/resource/doc/chatuikit/android/quick_start_Android.md +0 -138
  89. package/resource/doc/chatuikit/android/show_typing_Android.md +0 -43
  90. package/resource/doc/chatuikit/flutter/generate_UserSig.md +0 -306
  91. package/resource/doc/chatuikit/flutter/integrate_tuikit_Flutter.md +0 -133
  92. package/resource/doc/chatuikit/iOS/generate_UserSig.md +0 -306
  93. package/resource/doc/chatuikit/iOS/integrate_only_tuichat_iOS.md +0 -748
  94. package/resource/doc/chatuikit/iOS/quick_start_iOS.md +0 -163
  95. package/resource/doc/chatuikit/iOS/show_typing_iOS.md +0 -52
  96. package/tools/definitions/get_native_live_extra_features_def.js.map +0 -1
  97. package/tools/definitions/get_native_live_interaction_def.js.map +0 -1
  98. package/tools/live/get_native_live_extra_features.js.map +0 -1
  99. package/tools/live/get_native_live_interaction.js.map +0 -1
  100. /package/resource/doc/chatuikit/android/{integrate_tuikit_Android.md → integration.md} +0 -0
  101. /package/resource/doc/chatuikit/{faq/native_sdk/faq.md → android/workflow.md} +0 -0
  102. /package/resource/doc/chatuikit/{flutter/client_api_Flutter.md → faq/flutter_sdk/client-api.md} +0 -0
  103. /package/resource/doc/chatuikit/iOS/{integrate_tuikit_iOS.md → integration.md} +0 -0
  104. /package/resource/doc/chatuikit/react/components/{chatheader.md → chat-header.md} +0 -0
  105. /package/resource/doc/chatuikit/vue/components/{chatheader.md → chat-header.md} +0 -0
@@ -0,0 +1,679 @@
1
+ ## Overview
2
+
3
+ ContactList is a highly configurable contact list component. This component supports friend lists, group lists, blacklists, and application management, providing core features such as group collapsing, search filtering, and custom rendering. It's suitable for contact management interfaces in instant messaging and social applications.
4
+
5
+ ![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027116646/e81dc6d883b511f0b6b0525400bf7822.png)
6
+
7
+
8
+ ## ContactList Props
9
+ <table>
10
+ <tr>
11
+ <td rowspan="1" colSpan="1" >Field</td>
12
+
13
+ <td rowspan="1" colSpan="1" >Type</td>
14
+
15
+ <td rowspan="1" colSpan="1" >Default Value</td>
16
+
17
+ <td rowspan="1" colSpan="1" >Description</td>
18
+ </tr>
19
+
20
+ <tr>
21
+ <td rowspan="1" colSpan="1" >activeContactItem</td>
22
+
23
+ <td rowspan="1" colSpan="1" >ContactGroupItem \| undefined</td>
24
+
25
+ <td rowspan="1" colSpan="1" >undefined</td>
26
+
27
+ <td rowspan="1" colSpan="1" >Currently active contact item</td>
28
+ </tr>
29
+
30
+ <tr>
31
+ <td rowspan="1" colSpan="1" >enableSearch</td>
32
+
33
+ <td rowspan="1" colSpan="1" >boolean</td>
34
+
35
+ <td rowspan="1" colSpan="1" >true</td>
36
+
37
+ <td rowspan="1" colSpan="1" >Whether to enable search functionality</td>
38
+ </tr>
39
+
40
+ <tr>
41
+ <td rowspan="1" colSpan="1" >groupConfig</td>
42
+
43
+ <td rowspan="1" colSpan="1" >Partial<Record<ContactItemType, CustomGroupConfig>></td>
44
+
45
+ <td rowspan="1" colSpan="1" >{}</td>
46
+
47
+ <td rowspan="1" colSpan="1" >Custom group configuration</td>
48
+ </tr>
49
+
50
+ <tr>
51
+ <td rowspan="1" colSpan="1" >searchPlaceholder</td>
52
+
53
+ <td rowspan="1" colSpan="1" >string</td>
54
+
55
+ <td rowspan="1" colSpan="1" >'Search contacts'</td>
56
+
57
+ <td rowspan="1" colSpan="1" >Search box placeholder text</td>
58
+ </tr>
59
+
60
+ <tr>
61
+ <td rowspan="1" colSpan="1" >emptyText</td>
62
+
63
+ <td rowspan="1" colSpan="1" >string</td>
64
+
65
+ <td rowspan="1" colSpan="1" >'No contacts'</td>
66
+
67
+ <td rowspan="1" colSpan="1" >Empty state message text</td>
68
+ </tr>
69
+
70
+ <tr>
71
+ <td rowspan="1" colSpan="1" >ContactItem</td>
72
+
73
+ <td rowspan="1" colSpan="1" >Component \| undefined</td>
74
+
75
+ <td rowspan="1" colSpan="1" >ContactListItem</td>
76
+
77
+ <td rowspan="1" colSpan="1" >Custom contact item component</td>
78
+ </tr>
79
+
80
+ <tr>
81
+ <td rowspan="1" colSpan="1" >ContactSearchComponent</td>
82
+
83
+ <td rowspan="1" colSpan="1" >Component \| undefined</td>
84
+
85
+ <td rowspan="1" colSpan="1" >ContactSearch</td>
86
+
87
+ <td rowspan="1" colSpan="1" >Custom search component</td>
88
+ </tr>
89
+
90
+ <tr>
91
+ <td rowspan="1" colSpan="1" >GroupHeader</td>
92
+
93
+ <td rowspan="1" colSpan="1" >Component \| undefined</td>
94
+
95
+ <td rowspan="1" colSpan="1" >Default group header</td>
96
+
97
+ <td rowspan="1" colSpan="1" >Custom group header component</td>
98
+ </tr>
99
+
100
+ <tr>
101
+ <td rowspan="1" colSpan="1" >PlaceholderEmptyList</td>
102
+
103
+ <td rowspan="1" colSpan="1" >Component \| undefined</td>
104
+
105
+ <td rowspan="1" colSpan="1" >Default empty state</td>
106
+
107
+ <td rowspan="1" colSpan="1" >Custom empty state component</td>
108
+ </tr>
109
+
110
+ <tr>
111
+ <td rowspan="1" colSpan="1" >onContactItemClick</td>
112
+
113
+ <td rowspan="1" colSpan="1" >(item: ContactGroupItem) => void</td>
114
+
115
+ <td rowspan="1" colSpan="1" >undefined</td>
116
+
117
+ <td rowspan="1" colSpan="1" >Contact item click event</td>
118
+ </tr>
119
+
120
+ <tr>
121
+ <td rowspan="1" colSpan="1" >onFriendApplicationAction</td>
122
+
123
+ <td rowspan="1" colSpan="1" >(action: 'accept' \| 'refuse', application: FriendApplication) => void</td>
124
+
125
+ <td rowspan="1" colSpan="1" >undefined</td>
126
+
127
+ <td rowspan="1" colSpan="1" >Friend application action event</td>
128
+ </tr>
129
+
130
+ <tr>
131
+ <td rowspan="1" colSpan="1" >onGroupApplicationAction</td>
132
+
133
+ <td rowspan="1" colSpan="1" >(action: 'accept' \| 'refuse', application: GroupApplication) => void</td>
134
+
135
+ <td rowspan="1" colSpan="1" >undefined</td>
136
+
137
+ <td rowspan="1" colSpan="1" >Group application action event</td>
138
+ </tr>
139
+ </table>
140
+
141
+
142
+ ## ContactList Events
143
+ <table>
144
+ <tr>
145
+ <td rowspan="1" colSpan="1" >Event Name</td>
146
+
147
+ <td rowspan="1" colSpan="1" >Parameters</td>
148
+
149
+ <td rowspan="1" colSpan="1" >Description</td>
150
+ </tr>
151
+
152
+ <tr>
153
+ <td rowspan="1" colSpan="1" >contact-item-click</td>
154
+
155
+ <td rowspan="1" colSpan="1" >(item: ContactGroupItem)</td>
156
+
157
+ <td rowspan="1" colSpan="1" >Contact item click event</td>
158
+ </tr>
159
+
160
+ <tr>
161
+ <td rowspan="1" colSpan="1" >friend-application-action</td>
162
+
163
+ <td rowspan="1" colSpan="1" >(action: 'accept' \| 'refuse', application: FriendApplication)</td>
164
+
165
+ <td rowspan="1" colSpan="1" >Friend application action event</td>
166
+ </tr>
167
+
168
+ <tr>
169
+ <td rowspan="1" colSpan="1" >group-application-action</td>
170
+
171
+ <td rowspan="1" colSpan="1" >(action: 'accept' \| 'refuse', application: GroupApplication)</td>
172
+
173
+ <td rowspan="1" colSpan="1" >Group application action event</td>
174
+ </tr>
175
+ </table>
176
+
177
+
178
+ ## ContactInfo Props
179
+ <table>
180
+ <tr>
181
+ <td rowspan="1" colSpan="1" >Field</td>
182
+
183
+ <td rowspan="1" colSpan="1" >Type</td>
184
+
185
+ <td rowspan="1" colSpan="1" >Default Value</td>
186
+
187
+ <td rowspan="1" colSpan="1" >Description</td>
188
+ </tr>
189
+
190
+ <tr>
191
+ <td rowspan="1" colSpan="1" >contactItem</td>
192
+
193
+ <td rowspan="1" colSpan="1" >ContactGroupItem \| undefined</td>
194
+
195
+ <td rowspan="1" colSpan="1" >undefined</td>
196
+
197
+ <td rowspan="1" colSpan="1" >Currently displayed contact item</td>
198
+ </tr>
199
+
200
+ <tr>
201
+ <td rowspan="1" colSpan="1" >showActions</td>
202
+
203
+ <td rowspan="1" colSpan="1" >boolean</td>
204
+
205
+ <td rowspan="1" colSpan="1" >true</td>
206
+
207
+ <td rowspan="1" colSpan="1" >Whether to show action buttons</td>
208
+ </tr>
209
+
210
+ <tr>
211
+ <td rowspan="1" colSpan="1" >PlaceholderEmpty</td>
212
+
213
+ <td rowspan="1" colSpan="1" >Component \| undefined</td>
214
+
215
+ <td rowspan="1" colSpan="1" >undefined</td>
216
+
217
+ <td rowspan="1" colSpan="1" >Empty state placeholder component</td>
218
+ </tr>
219
+
220
+ <tr>
221
+ <td rowspan="1" colSpan="1" >FriendInfoComponent</td>
222
+
223
+ <td rowspan="1" colSpan="1" >Component</td>
224
+
225
+ <td rowspan="1" colSpan="1" >FriendInfo</td>
226
+
227
+ <td rowspan="1" colSpan="1" >Friend info component</td>
228
+ </tr>
229
+
230
+ <tr>
231
+ <td rowspan="1" colSpan="1" >GroupInfoComponent</td>
232
+
233
+ <td rowspan="1" colSpan="1" >Component</td>
234
+
235
+ <td rowspan="1" colSpan="1" >GroupInfo</td>
236
+
237
+ <td rowspan="1" colSpan="1" >Group info component</td>
238
+ </tr>
239
+
240
+ <tr>
241
+ <td rowspan="1" colSpan="1" >BlacklistInfoComponent</td>
242
+
243
+ <td rowspan="1" colSpan="1" >Component</td>
244
+
245
+ <td rowspan="1" colSpan="1" >BlacklistInfo</td>
246
+
247
+ <td rowspan="1" colSpan="1" >Blacklist info component</td>
248
+ </tr>
249
+
250
+ <tr>
251
+ <td rowspan="1" colSpan="1" >FriendApplicationInfoComponent</td>
252
+
253
+ <td rowspan="1" colSpan="1" >Component</td>
254
+
255
+ <td rowspan="1" colSpan="1" >FriendApplicationInfo</td>
256
+
257
+ <td rowspan="1" colSpan="1" >Friend application info component</td>
258
+ </tr>
259
+
260
+ <tr>
261
+ <td rowspan="1" colSpan="1" >GroupApplicationInfoComponent</td>
262
+
263
+ <td rowspan="1" colSpan="1" >Component</td>
264
+
265
+ <td rowspan="1" colSpan="1" >GroupApplicationInfo</td>
266
+
267
+ <td rowspan="1" colSpan="1" >Group application info component</td>
268
+ </tr>
269
+
270
+ <tr>
271
+ <td rowspan="1" colSpan="1" >SearchGroupInfoComponent</td>
272
+
273
+ <td rowspan="1" colSpan="1" >Component</td>
274
+
275
+ <td rowspan="1" colSpan="1" >SearchGroupInfo</td>
276
+
277
+ <td rowspan="1" colSpan="1" >Search group info component</td>
278
+ </tr>
279
+
280
+ <tr>
281
+ <td rowspan="1" colSpan="1" >SearchUserInfoComponent</td>
282
+
283
+ <td rowspan="1" colSpan="1" >Component</td>
284
+
285
+ <td rowspan="1" colSpan="1" >SearchUserInfo</td>
286
+
287
+ <td rowspan="1" colSpan="1" >Search user info component</td>
288
+ </tr>
289
+ </table>
290
+
291
+
292
+ ## ContactInfo Events
293
+ <table>
294
+ <tr>
295
+ <td rowspan="1" colSpan="1" >Event Name</td>
296
+
297
+ <td rowspan="1" colSpan="1" >Parameters</td>
298
+
299
+ <td rowspan="1" colSpan="1" >Description</td>
300
+ </tr>
301
+
302
+ <tr>
303
+ <td rowspan="1" colSpan="1" >close</td>
304
+
305
+ <td rowspan="1" colSpan="1" >-</td>
306
+
307
+ <td rowspan="1" colSpan="1" >Close info panel event</td>
308
+ </tr>
309
+
310
+ <tr>
311
+ <td rowspan="1" colSpan="1" >sendMessage</td>
312
+
313
+ <td rowspan="1" colSpan="1" >(friend: Friend)</td>
314
+
315
+ <td rowspan="1" colSpan="1" >Send message event</td>
316
+ </tr>
317
+
318
+ <tr>
319
+ <td rowspan="1" colSpan="1" >deleteFriend</td>
320
+
321
+ <td rowspan="1" colSpan="1" >(friend: Friend)</td>
322
+
323
+ <td rowspan="1" colSpan="1" >Delete friend event</td>
324
+ </tr>
325
+
326
+ <tr>
327
+ <td rowspan="1" colSpan="1" >addToBlacklist</td>
328
+
329
+ <td rowspan="1" colSpan="1" >(friend: Friend)</td>
330
+
331
+ <td rowspan="1" colSpan="1" >Add to blacklist event</td>
332
+ </tr>
333
+
334
+ <tr>
335
+ <td rowspan="1" colSpan="1" >removeFromBlacklist</td>
336
+
337
+ <td rowspan="1" colSpan="1" >(profile: UserProfile)</td>
338
+
339
+ <td rowspan="1" colSpan="1" >Remove from blacklist event</td>
340
+ </tr>
341
+
342
+ <tr>
343
+ <td rowspan="1" colSpan="1" >updateFriendRemark</td>
344
+
345
+ <td rowspan="1" colSpan="1" >(friend: Friend)</td>
346
+
347
+ <td rowspan="1" colSpan="1" >Update friend remark event</td>
348
+ </tr>
349
+
350
+ <tr>
351
+ <td rowspan="1" colSpan="1" >enterGroup</td>
352
+
353
+ <td rowspan="1" colSpan="1" >(group: GroupModel)</td>
354
+
355
+ <td rowspan="1" colSpan="1" >Enter group event</td>
356
+ </tr>
357
+
358
+ <tr>
359
+ <td rowspan="1" colSpan="1" >leaveGroup</td>
360
+
361
+ <td rowspan="1" colSpan="1" >(group: GroupModel)</td>
362
+
363
+ <td rowspan="1" colSpan="1" >Leave group event</td>
364
+ </tr>
365
+
366
+ <tr>
367
+ <td rowspan="1" colSpan="1" >dismissGroup</td>
368
+
369
+ <td rowspan="1" colSpan="1" >(group: GroupModel)</td>
370
+
371
+ <td rowspan="1" colSpan="1" >Dismiss group event</td>
372
+ </tr>
373
+
374
+ <tr>
375
+ <td rowspan="1" colSpan="1" >friendApplicationAction</td>
376
+
377
+ <td rowspan="1" colSpan="1" >(action: 'accept' \| 'refuse', application: FriendApplication)</td>
378
+
379
+ <td rowspan="1" colSpan="1" >Friend application action event</td>
380
+ </tr>
381
+
382
+ <tr>
383
+ <td rowspan="1" colSpan="1" >groupApplicationAction</td>
384
+
385
+ <td rowspan="1" colSpan="1" >(action: 'accept' \| 'refuse', application: GroupApplication)</td>
386
+
387
+ <td rowspan="1" colSpan="1" >Group application action event</td>
388
+ </tr>
389
+
390
+ <tr>
391
+ <td rowspan="1" colSpan="1" >addFriend</td>
392
+
393
+ <td rowspan="1" colSpan="1" >(user: UserProfile, wording: string)</td>
394
+
395
+ <td rowspan="1" colSpan="1" >Add friend event</td>
396
+ </tr>
397
+
398
+ <tr>
399
+ <td rowspan="1" colSpan="1" >joinGroup</td>
400
+
401
+ <td rowspan="1" colSpan="1" >(group: GroupModel, note: string)</td>
402
+
403
+ <td rowspan="1" colSpan="1" >Join group event</td>
404
+ </tr>
405
+ </table>
406
+
407
+
408
+ ## Basic Usage
409
+ ``` typescript
410
+ <template>
411
+ <div class="contact-container">
412
+ <ContactList />
413
+ <ContactInfo />
414
+ </div>
415
+ </template>
416
+
417
+ <script setup lang="ts">
418
+ import { ContactList, ContactInfo } from '@tencentcloud/chat-uikit-vue3';
419
+ </script>
420
+
421
+ <style scoped>
422
+ .contact-container {
423
+ display: flex;
424
+ height: 100vh;
425
+ }
426
+ </style>
427
+ ```
428
+
429
+ ## Customization
430
+
431
+ ### Customize Contact List Search Toggle
432
+
433
+ By setting the `enableSearch` parameter, you can flexibly control the display of the friend/group search functionality in ContactList.
434
+ ``` typescript
435
+ <template>
436
+ <ContactList :enableSearch="false" />
437
+ </template>
438
+ ```
439
+ <table>
440
+ <tr>
441
+ <td rowspan="1" colSpan="1" >enableSearch="true"</td>
442
+
443
+ <td rowspan="1" colSpan="1" >enableSearch="false"</td>
444
+ </tr>
445
+
446
+ <tr>
447
+ <td rowspan="1" colSpan="1" ><br>![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027116646/0f52214383ad11f0b321525400e889b2.png)</td>
448
+
449
+ <td rowspan="1" colSpan="1" ><br>![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027116646/ed273b0683ac11f0818a52540099c741.png)</td>
450
+ </tr>
451
+ </table>
452
+
453
+
454
+ ### Customize Contact List Group Configuration
455
+
456
+ `groupConfig` is used to customize group configuration, including title, display order, hiding groups, etc.
457
+ ``` typescript
458
+ <template>
459
+ <ContactList :groupConfig="customGroupConfig" />
460
+ </template>
461
+
462
+ <script setup lang="ts">
463
+ import { ContactList } from '@tencentcloud/chat-uikit-vue3';
464
+ import { ContactItemType } from '@tencentcloud/chat-uikit-vue3';
465
+
466
+ const customGroupConfig = {
467
+ [ContactItemType.FRIEND]: {
468
+ title: 'My Friends',
469
+ order: 1,
470
+ },
471
+ [ContactItemType.GROUP]: {
472
+ title: 'Group Chats',
473
+ order: 2,
474
+ },
475
+ [ContactItemType.BLACK]: {
476
+ hidden: true,
477
+ },
478
+ [ContactItemType.FRIEND_REQUEST]: {
479
+ title: 'Friend Requests',
480
+ order: 0,
481
+ }
482
+ };
483
+ </script>
484
+ ```
485
+ <table>
486
+ <tr>
487
+ <td rowspan="1" colSpan="1" >Before</td>
488
+
489
+ <td rowspan="1" colSpan="1" >After</td>
490
+ </tr>
491
+
492
+ <tr>
493
+ <td rowspan="1" colSpan="1" ><br>![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027116646/0f52214383ad11f0b321525400e889b2.png)</td>
494
+
495
+ <td rowspan="1" colSpan="1" ><br>![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027116646/c127e97583ad11f0818a52540099c741.png)</td>
496
+ </tr>
497
+ </table>
498
+
499
+
500
+ ### Customize Contact List Items
501
+
502
+ You can fully control the rendering of contact list items by passing in a custom `ContactItem` component.
503
+ ``` typescript
504
+ <template>
505
+ <div class="custom-contact-item" @click="handleClick">
506
+ <label>Custom Contact</label>
507
+ <span v-if="props.contactItem.type === ContactItemType.FRIEND">{{ props.contactItem.data.nick }}</span>
508
+ <span v-if="props.contactItem.type === ContactItemType.GROUP">{{ props.contactItem.data.name }}</span>
509
+ </div>
510
+ </template>
511
+ <script setup lang="ts">
512
+ import { ContactItemType } from '@tencentcloud/chat-uikit-vue3';
513
+
514
+ const props = defineProps<{
515
+ contactItem: any;
516
+ }>();
517
+ const emit = defineEmits<{
518
+ click: [type: ContactItemType, item: any];
519
+ }>();
520
+ const handleClick = () => {
521
+ emit('click', props.contactItem.type, props.contactItem.data);
522
+ };
523
+ </script>
524
+ <style scoped>
525
+ .custom-contact-item {
526
+ display: flex;
527
+ align-items: center;
528
+ gap: 10px;
529
+ padding: 10px 20px;
530
+ border-bottom: 1px solid #eee;
531
+ }
532
+ </style>
533
+
534
+ ```
535
+ ``` typescript
536
+ <template>
537
+ <ContactList :ContactItem="CustomContactItem" />
538
+ </template>
539
+
540
+ <script setup lang="ts">
541
+ import { ContactList } from '@tencentcloud/chat-uikit-vue3';
542
+ import CustomContactItem from './CustomContactItem.vue';
543
+ </script>
544
+ ```
545
+ <table>
546
+ <tr>
547
+ <td rowspan="1" colSpan="1" >Before</td>
548
+
549
+ <td rowspan="1" colSpan="1" >After</td>
550
+ </tr>
551
+
552
+ <tr>
553
+ <td rowspan="1" colSpan="1" ><br>![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027116646/fc596af883af11f093f45254005ef0f7.png)</td>
554
+
555
+ <td rowspan="1" colSpan="1" >![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027116646/e990a2d983af11f0ae9d5254001c06ec.png)</td>
556
+ </tr>
557
+ </table>
558
+
559
+
560
+ ### Customize Contact Details Action Button Toggle
561
+
562
+ By setting the `showActions` parameter, you can control the display of action buttons on the contact details page.
563
+ ``` typescript
564
+ <template>
565
+ <ContactInfo
566
+ :showActions="false"
567
+ />
568
+ </template>
569
+ ```
570
+ <table>
571
+ <tr>
572
+ <td rowspan="1" colSpan="1" >Before</td>
573
+
574
+ <td rowspan="1" colSpan="1" >After</td>
575
+ </tr>
576
+
577
+ <tr>
578
+ <td rowspan="1" colSpan="1" ><br>![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027116646/26c5a53f83b011f0818a52540099c741.png)</td>
579
+
580
+ <td rowspan="1" colSpan="1" ><br>![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027116646/4f25ef6b83b011f0b6b0525400bf7822.png)</td>
581
+ </tr>
582
+ </table>
583
+
584
+
585
+ ### Customize Contact Details Empty State
586
+
587
+ When no contact is selected, you can customize the empty state component to display.
588
+ ``` typescript
589
+ <template>
590
+ <div>
591
+ Custom Empty State
592
+ </div>
593
+ </template>
594
+ ```
595
+ ``` typescript
596
+ <template>
597
+ <ContactInfo
598
+ :PlaceholderEmpty="CustomEmpty"
599
+ />
600
+ </template>
601
+
602
+ <script setup lang="ts">
603
+ import { ContactList } from '@tencentcloud/chat-uikit-vue3';
604
+ import CustomEmpty from './CustomEmpty.vue';
605
+ </script>
606
+ ```
607
+
608
+ ### Customize Friend Details Component
609
+
610
+ You can customize the detail display component for different types of contacts.
611
+ ``` typescript
612
+ <template>
613
+ <div class="custom-contact-info">
614
+ <label>Custom Friend Details</label>
615
+ <div class="friend-info">
616
+ <img
617
+ class="avatar"
618
+ :src="friend.avatar"
619
+ alt=""
620
+ >
621
+ <span>{{ friend.nick }}</span>
622
+ </div>
623
+ </div>
624
+ </template>
625
+ <script setup lang="ts">
626
+ import type { Friend } from '@tencentcloud/chat-uikit-vue3';
627
+
628
+ defineProps<{
629
+ friend: Friend;
630
+ }>();
631
+ </script>
632
+ <style scoped>
633
+ .custom-contact-info {
634
+ display: flex;
635
+ flex-direction: column;
636
+ gap: 10px;
637
+ padding: 20px;
638
+ }
639
+ .friend-info {
640
+ display: flex;
641
+ justify-content: space-between;
642
+ align-items: center;
643
+ gap: 10px;
644
+ }
645
+ .avatar {
646
+ width: 60px;
647
+ height: 60px;
648
+ border-radius: 50%
649
+ }
650
+ </style>
651
+
652
+ ```
653
+ ``` typescript
654
+ <template>
655
+ <ContactInfo
656
+ :FriendInfoComponent="CustomFriendInfo"
657
+ />
658
+ </template>
659
+
660
+ <script setup lang="ts">
661
+ import { defineComponent, h } from 'vue';
662
+ import type { FriendInfoProps, GroupInfoProps } from '@tencentcloud/chat-uikit-vue3';
663
+ import CustomFriendInfo from './CustomFriendInfo.vue';
664
+ </script>
665
+ ```
666
+ <table>
667
+ <tr>
668
+ <td rowspan="1" colSpan="1" >Before</td>
669
+
670
+ <td rowspan="1" colSpan="1" >After</td>
671
+ </tr>
672
+
673
+ <tr>
674
+ <td rowspan="1" colSpan="1" ><br>![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027116646/d853594483b211f0818a52540099c741.png)</td>
675
+
676
+ <td rowspan="1" colSpan="1" ><br>![](https://write-document-release-1258344699.cos.ap-guangzhou.tencentcos.cn/100027116646/c084ae7b83b211f0992e52540044a08e.png)</td>
677
+ </tr>
678
+ </table>
679
+