@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.
- package/package.json +1 -1
- package/resource/doc/chatuikit/android/features/theme.md +363 -0
- package/resource/doc/chatuikit/{android/client_api_Android.md → faq/android_sdk/client-api.md} +0 -2
- package/resource/doc/chatuikit/faq/common/product.md +8 -0
- package/resource/doc/chatuikit/faq/flutter_sdk/faq.md +53 -0
- package/resource/doc/chatuikit/{iOS/client_api_iOS.md → faq/ios_sdk/client-api.md} +0 -2
- package/resource/doc/chatuikit/flutter/features/theme.md +379 -0
- package/resource/doc/chatuikit/flutter/integration.md +413 -0
- package/resource/doc/chatuikit/flutter/workflow.md +941 -0
- package/resource/doc/chatuikit/iOS/features/theme.md +416 -0
- package/resource/doc/chatuikit/iOS/workflow.md +0 -0
- package/resource/doc/chatuikit/react/components/chat-setting.md +86 -0
- package/resource/doc/chatuikit/react/components/contact-list.md +1093 -0
- package/resource/doc/chatuikit/react/components/search.md +745 -0
- package/resource/doc/chatuikit/vue/components/chat-setting.md +64 -0
- package/resource/doc/chatuikit/vue/components/contact-list.md +679 -0
- package/resource/doc/chatuikit/vue/components/search.md +1384 -0
- package/resource/doc/livekit/live/android/workflow.md +137 -6
- package/resource/doc/livekit/live/ios/live-audience-list.md +339 -0
- package/resource/doc/livekit/live/ios/live-audio-effect.md +370 -0
- package/resource/doc/livekit/live/ios/live-barrage.md +517 -0
- package/resource/doc/livekit/live/ios/live-base-beauty.md +247 -0
- package/resource/doc/livekit/live/ios/live-co-guest-interaction.md +518 -0
- package/resource/doc/livekit/live/ios/live-gift.md +783 -0
- package/resource/doc/livekit/live/ios/live-host-interaction.md +815 -0
- package/resource/doc/livekit/live/ios/live-integration.md +931 -0
- package/resource/doc/livekit/live/ios/live-live-list.md +485 -0
- package/resource/doc/livekit/live/ios/workflow.md +454 -0
- package/resource/doc/rtcengine/web/plugin/20-advanced-customized-capture-rendering.md +87 -0
- package/resource/doc/rtcengine/web/plugin/21-advanced-auto-play-policy.md +87 -0
- package/resource/doc/rtcengine/web/plugin/22-advanced-audio-mixer.md +175 -0
- package/resource/doc/rtcengine/web/plugin/23-advanced-support-detection.md +221 -0
- package/resource/doc/rtcengine/web/plugin/24-advanced-network-quality.md +140 -0
- package/resource/doc/rtcengine/web/plugin/25-advanced-device-change.md +99 -0
- package/resource/doc/rtcengine/web/plugin/26-advanced-publish-cdn-stream.md +451 -0
- package/resource/doc/rtcengine/web/plugin/27-advanced-small-stream.md +151 -0
- package/resource/doc/rtcengine/web/plugin/28-advanced-beauty.md +322 -0
- package/resource/doc/rtcengine/web/plugin/29-advanced-water-mark.md +149 -0
- package/resource/doc/rtcengine/web/plugin/30-advanced-cross-room-link.md +96 -0
- package/resource/doc/rtcengine/web/plugin/31-advanced-plugins-overview.md +330 -0
- package/resource/doc/rtcengine/web/plugin/34-advanced-proxy.md +248 -0
- package/resource/doc/rtcengine/web/plugin/35-advanced-ai-denoiser.md +81 -0
- package/resource/doc/rtcengine/web/plugin/36-advanced-virtual-background.md +242 -0
- package/resource/doc/rtcengine/web/plugin/37-advanced-voice-changer.md +99 -0
- package/resource/doc/rtcengine/web/plugin/39-advanced-video-decoder.md +33 -0
- package/resource/doc/rtcengine/web/plugin/40-advanced-video-mixer.md +379 -0
- package/resource/doc/rtcengine/web/plugin/41-advanced-small-stream-auto-switcher.md +91 -0
- package/resource/doc/rtcengine/web/plugin/42-advanced-realtime-transcriber.md +315 -0
- package/resource/doc/rtcengine/web/plugin/43-advanced-face-detection.md +180 -0
- package/tools/chat/get-native-chat-feature-detail.js +30 -0
- package/tools/chat/get-native-chat-feature-detail.js.map +1 -0
- package/tools/chat/get-native-chat-integration.js +30 -12
- package/tools/chat/get-native-chat-integration.js.map +1 -1
- package/tools/common/get-faq.js +2 -4
- package/tools/common/get-faq.js.map +1 -1
- package/tools/definitions/get_native_chat_feature_detail_def.js +32 -0
- package/tools/definitions/get_native_chat_feature_detail_def.js.map +1 -0
- package/tools/definitions/get_native_chat_uikit_integration_def.js +19 -7
- package/tools/definitions/get_native_chat_uikit_integration_def.js.map +1 -1
- package/tools/definitions/{get_native_live_extra_features_def.js → get_native_live_uikit_extra_features_def.js} +3 -3
- package/tools/definitions/get_native_live_uikit_extra_features_def.js.map +1 -0
- package/tools/definitions/{get_native_live_interaction_def.js → get_native_live_uikit_interaction_def.js} +3 -3
- package/tools/definitions/get_native_live_uikit_interaction_def.js.map +1 -0
- package/tools/definitions/get_web_chat_uikit_component_detail_def.js +49 -10
- package/tools/definitions/get_web_chat_uikit_component_detail_def.js.map +1 -1
- package/tools/definitions/record_prompt_def.js +42 -11
- package/tools/definitions/record_prompt_def.js.map +1 -1
- package/tools/definitions/record_result_def.js +1 -1
- package/tools/index.js +6 -4
- package/tools/index.js.map +1 -1
- package/tools/live/{get_native_live_extra_features.js → get_native_live_uikit_extra_features.js} +4 -4
- package/tools/live/get_native_live_uikit_extra_features.js.map +1 -0
- package/tools/live/{get_native_live_interaction.js → get_native_live_uikit_interaction.js} +4 -4
- package/tools/live/get_native_live_uikit_interaction.js.map +1 -0
- package/tools/rtcengine/get-rtcengine-web-sdk-integration.js.map +1 -1
- package/tools/rtcengine/get-trtc-sdk-faq.js +32 -0
- package/tools/rtcengine/get-trtc-sdk-faq.js.map +1 -0
- package/tools/rtcengine/get-trtc-web-sdk-faq.js +1 -1
- package/tools/rtcengine/get-trtc-web-sdk-integration.js.map +1 -1
- package/tools/rtcengine/get-trtc-web-sdk-plugin.js +45 -0
- package/tools/rtcengine/get-trtc-web-sdk-plugin.js.map +1 -0
- package/utils/handle-component-name.js +0 -16
- package/utils/handle-component-name.js.map +1 -1
- package/utils/report-cls-client.js +1 -1
- package/utils/report-es-client.js +1 -1
- package/resource/doc/chatuikit/android/generate_UserSig.md +0 -306
- package/resource/doc/chatuikit/android/integrarte_only_tuichat_Android.md +0 -290
- package/resource/doc/chatuikit/android/quick_start_Android.md +0 -138
- package/resource/doc/chatuikit/android/show_typing_Android.md +0 -43
- package/resource/doc/chatuikit/flutter/generate_UserSig.md +0 -306
- package/resource/doc/chatuikit/flutter/integrate_tuikit_Flutter.md +0 -133
- package/resource/doc/chatuikit/iOS/generate_UserSig.md +0 -306
- package/resource/doc/chatuikit/iOS/integrate_only_tuichat_iOS.md +0 -748
- package/resource/doc/chatuikit/iOS/quick_start_iOS.md +0 -163
- package/resource/doc/chatuikit/iOS/show_typing_iOS.md +0 -52
- package/tools/definitions/get_native_live_extra_features_def.js.map +0 -1
- package/tools/definitions/get_native_live_interaction_def.js.map +0 -1
- package/tools/live/get_native_live_extra_features.js.map +0 -1
- package/tools/live/get_native_live_interaction.js.map +0 -1
- /package/resource/doc/chatuikit/android/{integrate_tuikit_Android.md → integration.md} +0 -0
- /package/resource/doc/chatuikit/{faq/native_sdk/faq.md → android/workflow.md} +0 -0
- /package/resource/doc/chatuikit/{flutter/client_api_Flutter.md → faq/flutter_sdk/client-api.md} +0 -0
- /package/resource/doc/chatuikit/iOS/{integrate_tuikit_iOS.md → integration.md} +0 -0
- /package/resource/doc/chatuikit/react/components/{chatheader.md → chat-header.md} +0 -0
- /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
|
+

|
|
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></td>
|
|
448
|
+
|
|
449
|
+
<td rowspan="1" colSpan="1" ><br></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></td>
|
|
494
|
+
|
|
495
|
+
<td rowspan="1" colSpan="1" ><br></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></td>
|
|
554
|
+
|
|
555
|
+
<td rowspan="1" colSpan="1" ></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></td>
|
|
579
|
+
|
|
580
|
+
<td rowspan="1" colSpan="1" ><br></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></td>
|
|
675
|
+
|
|
676
|
+
<td rowspan="1" colSpan="1" ><br></td>
|
|
677
|
+
</tr>
|
|
678
|
+
</table>
|
|
679
|
+
|