atomicx-core sdk API Documentation
atomicx-core sdk
atomicx-core sdk is the latest generation of reactive APIs from Tencent Cloud, designed for instant messaging, audio/video calls, live streaming, voice chat rooms, and more. You can quickly build your own UI pages based on these APIs. It supports room management, screen sharing, member management, seat control, basic beauty effects, and other rich features, while ensuring 720P and 1080P HD quality. It maintains high-quality audio/video transmission even in weak network environments with 70% packet loss. Additionally, the SDK uses 48kHz high-quality audio sampling, combined with Tencent Ethereal Audio Lab's 3A processing algorithms to eliminate echo and howling, achieving full-link 128kbps high-quality stereo sound, bringing users a clear and immersive interactive experience. This page contains all API interfaces of atomicx-core sdk, categorized by functional modules.
LoginState
🔐 User Authentication and Login Management Module
Core Features: Provides basic authentication functions such as user login, logout, and personal information management, serving as the foundation of user identity for the entire system.
Technical Features: Supports multiple login methods, user information caching, login state persistence, and other features to ensure the security and reliability of user identity.
Business Value: Provides unified user authentication services for all business modules, serving as the foundation for system security and user experience.
Use Cases: Core authentication scenarios such as user login, identity verification, personal information management, and permission control.
Reactive Data
loginUserInfo
Ref<LoginUserInfo | null>
Example
import { useLoginState } from 'tuikit-atomicx-vue3';
const { loginUserInfo } = useLoginState();
// Watch for user information changes
watch(loginUserInfo, (newUserInfo) => {
if (newUserInfo) {
console.log('User information updated:', newUserInfo);
console.log('User ID:', newUserInfo.userID);
console.log('User nickname:', newUserInfo.nickname);
console.log('userAvatar:', newUserInfo.avatarURL);
}
});
// Get current user information
const currentUser = loginUserInfo.value;
if (currentUser) {
console.log('Currently logged-in user:', currentUser.nickname);
}
API Functions
login
Example
import { useLoginState } from 'tuikit-atomicx-vue3';
const { login } = useLoginState();
// Login to the system
await login({
userId: 'user_123456',
userSig: 'xxx',
sdkAppId: 1400000001
});
setSelfInfo
Example
import { useLoginState } from 'tuikit-atomicx-vue3';
const { setSelfInfo } = useLoginState();
// Set user personal information
await setSelfInfo({
nickName: 'John',
avatar: 'https://example.com/avatar.png',
signature: 'this ismyofpersonalSignature'
});
logout
Example
await logout();
DeviceState
🎥 Device Status Management Module
Core Features: Manages control of audio/video devices such as cameras and microphones, providing device status monitoring, permission checking, and other basic device services.
Technical Features: Supports multi-device management, real-time device status monitoring, dynamic permission checking, automatic device fault recovery, and other advanced features.
Business Value: Provides a stable device foundation for the live streaming system, ensuring the reliability of audio/video capture and user experience.
Use Cases: Device management, permission control, audio/video capture, device fault handling, and other basic technical scenarios.
Reactive Data
microphoneStatus
Ref<DeviceStatus>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { microphoneStatus } = useDeviceState();
// Watch for data changes
watch(microphoneStatus, (newValue) => {
console.log('microphoneStatus updated:', newValue);
});
// Access data directly
console.log('Current microphoneStatus:', microphoneStatus.value);
microphoneList
Ref<TUIDeviceInfo[]>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { microphoneList } = useDeviceState();
// Watch for data changes
watch(microphoneList, (newValue) => {
console.log('microphoneList updated:', newValue);
});
// Access data directly
console.log('Current microphoneList:', microphoneList.value);
currentMicrophone
Ref<TUIDeviceInfo | null>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { currentMicrophone } = useDeviceState();
// Watch for data changes
watch(currentMicrophone, (newValue) => {
console.log('currentMicrophone updated:', newValue);
});
// Access data directly
console.log('Current currentMicrophone:', currentMicrophone.value);
microphoneLastError
Ref<DeviceError>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { microphoneLastError } = useDeviceState();
// Watch for data changes
watch(microphoneLastError, (newValue) => {
console.log('microphoneLastError updated:', newValue);
});
// Access data directly
console.log('Current microphoneLastError:', microphoneLastError.value);
captureVolume
Ref<any>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { captureVolume } = useDeviceState();
// Watch for data changes
watch(captureVolume, (newValue) => {
console.log('captureVolume updated:', newValue);
});
// Access data directly
console.log('Current captureVolume:', captureVolume.value);
currentMicVolume
Ref<any>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { currentMicVolume } = useDeviceState();
// Watch for data changes
watch(currentMicVolume, (newValue) => {
console.log('currentMicVolume updated:', newValue);
});
// Access data directly
console.log('Current currentMicVolume:', currentMicVolume.value);
isMicrophoneTesting
Ref<any>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { isMicrophoneTesting } = useDeviceState();
// Watch for data changes
watch(isMicrophoneTesting, (newValue) => {
console.log('isMicrophoneTesting updated:', newValue);
});
// Access data directly
console.log('Current isMicrophoneTesting:', isMicrophoneTesting.value);
testingMicVolume
Ref<any>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { testingMicVolume } = useDeviceState();
// Watch for data changes
watch(testingMicVolume, (newValue) => {
console.log('testingMicVolume updated:', newValue);
});
// Access data directly
console.log('Current testingMicVolume:', testingMicVolume.value);
cameraStatus
Ref<DeviceStatus>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { cameraStatus } = useDeviceState();
// Watch for data changes
watch(cameraStatus, (newValue) => {
console.log('cameraStatus updated:', newValue);
});
// Access data directly
console.log('Current cameraStatus:', cameraStatus.value);
cameraList
Ref<TUIDeviceInfo[]>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { cameraList } = useDeviceState();
// Watch for data changes
watch(cameraList, (newValue) => {
console.log('cameraList updated:', newValue);
});
// Access data directly
console.log('Current cameraList:', cameraList.value);
currentCamera
Ref<TUIDeviceInfo | null>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { currentCamera } = useDeviceState();
// Watch for data changes
watch(currentCamera, (newValue) => {
console.log('currentCamera updated:', newValue);
});
// Access data directly
console.log('Current currentCamera:', currentCamera.value);
cameraLastError
Ref<DeviceError>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { cameraLastError } = useDeviceState();
// Watch for data changes
watch(cameraLastError, (newValue) => {
console.log('cameraLastError updated:', newValue);
});
// Access data directly
console.log('Current cameraLastError:', cameraLastError.value);
isCameraTesting
Ref<any>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { isCameraTesting } = useDeviceState();
// Watch for data changes
watch(isCameraTesting, (newValue) => {
console.log('isCameraTesting updated:', newValue);
});
// Access data directly
console.log('Current isCameraTesting:', isCameraTesting.value);
isCameraTestLoading
Ref<any>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { isCameraTestLoading } = useDeviceState();
// Watch for data changes
watch(isCameraTestLoading, (newValue) => {
console.log('isCameraTestLoading updated:', newValue);
});
// Access data directly
console.log('Current isCameraTestLoading:', isCameraTestLoading.value);
isFrontCamera
Ref<any>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { isFrontCamera } = useDeviceState();
// Watch for data changes
watch(isFrontCamera, (newValue) => {
console.log('isFrontCamera updated:', newValue);
});
// Access data directly
console.log('Current isFrontCamera:', isFrontCamera.value);
localMirrorType
Ref<any>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { localMirrorType } = useDeviceState();
// Watch for data changes
watch(localMirrorType, (newValue) => {
console.log('localMirrorType updated:', newValue);
});
// Access data directly
console.log('Current localMirrorType:', localMirrorType.value);
localVideoQuality
Ref<any>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { localVideoQuality } = useDeviceState();
// Watch for data changes
watch(localVideoQuality, (newValue) => {
console.log('localVideoQuality updated:', newValue);
});
// Access data directly
console.log('Current localVideoQuality:', localVideoQuality.value);
speakerList
Ref<TUIDeviceInfo[]>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { speakerList } = useDeviceState();
// Watch for data changes
watch(speakerList, (newValue) => {
console.log('speakerList updated:', newValue);
});
// Access data directly
console.log('Current speakerList:', speakerList.value);
currentSpeaker
Ref<TUIDeviceInfo | null>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { currentSpeaker } = useDeviceState();
// Watch for data changes
watch(currentSpeaker, (newValue) => {
console.log('currentSpeaker updated:', newValue);
});
// Access data directly
console.log('Current currentSpeaker:', currentSpeaker.value);
outputVolume
Ref<any>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { outputVolume } = useDeviceState();
// Watch for data changes
watch(outputVolume, (newValue) => {
console.log('outputVolume updated:', newValue);
});
// Access data directly
console.log('Current outputVolume:', outputVolume.value);
currentAudioRoute
Ref<AudioRoute>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { currentAudioRoute } = useDeviceState();
// Watch for data changes
watch(currentAudioRoute, (newValue) => {
console.log('currentAudioRoute updated:', newValue);
});
// Access data directly
console.log('Current currentAudioRoute:', currentAudioRoute.value);
isSpeakerTesting
Ref<any>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { isSpeakerTesting } = useDeviceState();
// Watch for data changes
watch(isSpeakerTesting, (newValue) => {
console.log('isSpeakerTesting updated:', newValue);
});
// Access data directly
console.log('Current isSpeakerTesting:', isSpeakerTesting.value);
screenStatus
Ref<DeviceStatus>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { screenStatus } = useDeviceState();
// Watch for data changes
watch(screenStatus, (newValue) => {
console.log('screenStatus updated:', newValue);
});
// Access data directly
console.log('Current screenStatus:', screenStatus.value);
networkInfo
Ref<NetworkInfo | null>
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { networkInfo } = useDeviceState();
// Watch for data changes
watch(networkInfo, (newValue) => {
console.log('networkInfo updated:', newValue);
});
// Access data directly
console.log('Current networkInfo:', networkInfo.value);
API Functions
openLocalMicrophone
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { openLocalMicrophone } = useDeviceState();
// turn onmicrophone
try {
await openLocalMicrophone();
console.log('microphoneturn onsuccessful');
} catch (error) {
console.error('microphoneturn onfailed:', error);
}
closeLocalMicrophone
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { closeLocalMicrophone } = useDeviceState();
// turn offmicrophone
await closeLocalMicrophone();
muteLocalAudio
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { muteLocalAudio } = useDeviceState();
// Mute local audio
await muteLocalAudio();
unmuteLocalAudio
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { unmuteLocalAudio } = useDeviceState();
// CancelMute local audio
await unmuteLocalAudio();
getMicrophoneList
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { getMicrophoneList, microphoneList } = useDeviceState();
// Get microphone list
try {
await getMicrophoneList();
console.log('microphonelist:', microphoneList.value);
} catch (error) {
console.error('Get microphone listfailed:', error);
}
setCurrentMicrophone
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { setCurrentMicrophone } = useDeviceState();
// switchmicrophonedevice
await setCurrentMicrophone({
deviceId: 'default'
});
startMicrophoneTest
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { startMicrophoneTest } = useDeviceState();
// Start microphone test,every200msdetectiononcevolume
await startMicrophoneTest({
interval: 200
});
setCaptureVolume
parameter
| Parameter | Type | description |
|---|---|---|
| volume | number |
volumesize(0-100) |
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { setCaptureVolume } = useDeviceState();
// SetCapture volumeas80%
await setCaptureVolume(80);
setOutputVolume
parameter
| Parameter | Type | description |
|---|---|---|
| volume | number |
volumesize(0-100) |
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { setOutputVolume } = useDeviceState();
// Setplayvolumeas60%
await setOutputVolume(60);
stopMicrophoneTest
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { stopMicrophoneTest } = useDeviceState();
// Stop microphone testing
await stopMicrophoneTest();
getSpeakerList
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { getSpeakerList, speakerList } = useDeviceState();
// Get speaker list
try {
await getSpeakerList();
console.log('speakerlist:', speakerList.value);
} catch (error) {
console.error('Get speaker listfailed:', error);
}
setCurrentSpeaker
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { setCurrentSpeaker } = useDeviceState();
// switchspeakerdevice
await setCurrentSpeaker({
deviceId: 'default'
});
setAudioRoute
parameter
| Parameter | Type | description |
|---|---|---|
| output | AudioRoute |
audioroutetype |
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { setAudioRoute } = useDeviceState();
// Setasspeakermode
await setAudioRoute(AudioRoute.Speakerphone);
// Setasearpiecemode
await setAudioRoute(AudioRoute.Earpiece);
startSpeakerTest
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { startSpeakerTest } = useDeviceState();
// playtestaudioperformspeakertest
await startSpeakerTest({
filePath: '/assets/audio/test.mp3'
});
stopSpeakerTest
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { stopSpeakerTest } = useDeviceState();
// Stop speaker testing
await stopSpeakerTest();
openLocalCamera
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { openLocalCamera } = useDeviceState();
// turn oncamera
try {
await openLocalCamera();
console.log('cameraturn onsuccessful');
} catch (error) {
console.error('cameraturn onfailed:', error);
}
closeLocalCamera
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { closeLocalCamera } = useDeviceState();
// turn offcamera
await closeLocalCamera();
getCameraList
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { getCameraList, cameraList } = useDeviceState();
// Get camera list
try {
await getCameraList();
console.log('cameralist:', cameraList.value);
} catch (error) {
console.error('Get camera listfailed:', error);
}
setCurrentCamera
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { setCurrentCamera } = useDeviceState();
// Switch cameradevice
await setCurrentCamera({
deviceId: 'default'
});
switchCamera
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { switchCamera } = useDeviceState();
// switchtofrontcamera
await switchCamera({
isFrontCamera: true
});
switchMirror
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { switchMirror } = useDeviceState();
// Setvideomirrormode
await switchMirror({
mirror: MirrorType.Enable
});
updateVideoQuality
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { updateVideoQuality } = useDeviceState();
// SetvideoqualityasHD720P
await updateVideoQuality({
quality: VideoQuality.HD720P
});
startCameraDeviceTest
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { startCameraDeviceTest } = useDeviceState();
// inspecifiedDOMmetaelementinpreviewcamera
await startCameraDeviceTest({
view: 'camera-preview-container'
});
stopCameraDeviceTest
Example
import { useDeviceState } from 'tuikit-atomicx-vue3';
const { stopCameraDeviceTest } = useDeviceState();
// Stop camera testing
await stopCameraDeviceTest();
screenCaptureStopped
Example
// internaluse,whenscreensharingstopwhenautomaticcall
screenCaptureStopped();
LiveListState
📺 Live listManagement Module
Core Features:managementliveroomofcompletelifecycle,includingcreate、join、leave、endetc.corebusinessstreamprocess,supportsLive listofpaginationGetandreal-timeupdate。
Technical Features:supportspaginationloading、real-timestatussync、liveinformationdynamicupdate,usesReactive Datamanagement,ensureUIwithdatastatusreal-timesync。AddedliveListandliveListCursorReactive Data,providesfetchLiveListAPI Functions。
Business Value:asliveplatformprovidescoreofliveroommanagementcapability,supportslarge-scaleandsendlivescenarios,yeslivebusinessofbasicfacility。
Use Cases:Live listdisplay、liveroomcreate、livestatusmanagement、livedatastatisticsetc.corebusinessscenarios。
Reactive Data
currentLive
Ref<LiveInfo | null>
Example
const tuiLiveInfo = await roomEngine.getLiveInfo();
const liveInfo = getLiveInfo(tuiLiveInfo);
console.log('convertafterofliveinformation:', liveInfo);
liveList
Ref<any>
Example
import { useLiveListState } from 'tuikit-atomicx-vue3';
const { liveList } = useLiveListState();
// Watch for data changes
watch(liveList, (newValue) => {
console.log('liveList updated:', newValue);
});
// Access data directly
console.log('Current liveList:', liveList.value);
liveListCursor
Ref<any>
Example
import { useLiveListState } from 'tuikit-atomicx-vue3';
const { liveListCursor } = useLiveListState();
// Watch for data changes
watch(liveListCursor, (newValue) => {
console.log('liveListCursor updated:', newValue);
});
// Access data directly
console.log('Current liveListCursor:', liveListCursor.value);
API Functions
createLive
Example
import { useLiveListState } from 'tuikit-atomicx-vue3';
const { createLive } = useLiveListState();
// Create a live room with custom settings
await createLive({
name: 'My Live Room',
coverUrl: 'https://example.com/cover.jpg',
backgroundUrl: 'https://example.com/bg.jpg',
seatMode: 'free'
});
joinLive
Example
import { useLiveListState } from 'tuikit-atomicx-vue3';
const { joinLive } = useLiveListState();
// Join a live room by ID
await joinLive({
liveId: 'live_room_123456'
});
leaveLive
Example
import { useLiveListState } from 'tuikit-atomicx-vue3';
const { leaveLive } = useLiveListState();
// Leave liveroom
try {
await leaveLive();
console.log('successfulLeave liveroom');
} catch (error) {
console.error('Leave liveroomfailed:', error);
}
endLive
Example
import { useLiveListState } from 'tuikit-atomicx-vue3';
const { endLive } = useLiveListState();
// End live(hostaction)
try {
await endLive();
console.log('livealreadyend');
} catch (error) {
console.error('End livefailed:', error);
}
updateLiveInfo
Example
import { useLiveListState } from 'tuikit-atomicx-vue3';
const { updateLiveInfo } = useLiveListState();
// Update live room info
await updateLiveInfo({
coverUrl: 'https://example.com/new-cover.jpg',
category: 'entertainment'
});
queryMetaData
Example
import { useLiveListState } from 'tuikit-atomicx-vue3';
const { queryMetaData } = useLiveListState();
// Query metadata by keys
await queryMetaData({
keys: ['roomTitle', 'announcement', 'customData']
});
updateLiveMetaData
Example
import { useLiveListState } from 'tuikit-atomicx-vue3';
const { updateLiveMetaData } = useLiveListState();
// Update live room metadata
await updateLiveMetaData({
metaData: {
roomTitle: 'New Room Title',
announcement: 'Welcome to my live room!'
}
});
fetchLiveList
Example
import { useLiveListState } from 'tuikit-atomicx-vue3';
const { fetchLiveList } = useLiveListState();
// Fetch live list with pagination
await fetchLiveList({
cursor: '',
count: 20
});
LiveSeatState
🪑 liveroomseatManagement Module
Core Features:achievemultiplepersonco-guestscenariosunderofseatcontrol,supportscomplexofseatstatusmanagementandaudio/videodevicecontrol,includingTake seat、Leave seat、seatlocketc.completefunctions。
Technical Features:based onWebRTCtechnical,supportsmultiplerouteaudio/videostreammanagement,providesseatlock、devicecontrol、permissionmanagementetc.advancedfunctions。AddedseatList、canvas、speakingUsers、networkQualitiesReactive Data,withandcompleteofseatactionAPI。
Business Value:asmultiplepersoninteractionliveprovidescoretechnicalsupport,supportsPK、co-guest、multiplepersongameetc.richofinteractionscenarios。
Use Cases:multiplepersonco-guest、hostPK、interactiongame、inconnectioneducation、meetingliveetc.needmultiplepersonaudio/videointeractionofscenarios。
Reactive Data
seatList
Ref<any>
Example
import { useLiveSeatState } from 'tuikit-atomicx-vue3';
const { seatList } = useLiveSeatState();
// Watch for data changes
watch(seatList, (newValue) => {
console.log('seatList updated:', newValue);
});
// Access data directly
console.log('Current seatList:', seatList.value);
canvas
Ref<any>
Example
import { useLiveSeatState } from 'tuikit-atomicx-vue3';
const { canvas } = useLiveSeatState();
// Watch for data changes
watch(canvas, (newValue) => {
console.log('canvas updated:', newValue);
});
// Access data directly
console.log('Current canvas:', canvas.value);
speakingUsers
Ref<any>
Example
import { useLiveSeatState } from 'tuikit-atomicx-vue3';
const { speakingUsers } = useLiveSeatState();
// Watch for data changes
watch(speakingUsers, (newValue) => {
console.log('speakingUsers updated:', newValue);
});
// Access data directly
console.log('Current speakingUsers:', speakingUsers.value);
networkQualities
Ref<any>
Example
import { useLiveSeatState } from 'tuikit-atomicx-vue3';
const { networkQualities } = useLiveSeatState();
// Watch for data changes
watch(networkQualities, (newValue) => {
console.log('networkQualities updated:', newValue);
});
// Access data directly
console.log('Current networkQualities:', networkQualities.value);
API Functions
takeSeat
Example
import { useLiveSeatState } from 'tuikit-atomicx-vue3';
const { takeSeat } = useLiveSeatState();
// Take seat at index 1
await takeSeat({
seatIndex: 1
});
leaveSeat
Example
import { useLiveSeatState } from 'tuikit-atomicx-vue3';
const { leaveSeat } = useLiveSeatState();
// Leave seat at index 1
await leaveSeat({
seatIndex: 1
});
lockSeat
Example
import { useLiveSeatState } from 'tuikit-atomicx-vue3';
const { lockSeat } = useLiveSeatState();
// Lock seat at index 2
await lockSeat({
seatIndex: 2
});
unLockSeat
Example
import { useLiveSeatState } from 'tuikit-atomicx-vue3';
const { unLockSeat } = useLiveSeatState();
// Unlock seat at index 2
await unLockSeat({
seatIndex: 2
});
kickUserOutOfSeat
Example
import { useLiveSeatState } from 'tuikit-atomicx-vue3';
const { kickUserOutOfSeat } = useLiveSeatState();
// Kick user out of seat
await kickUserOutOfSeat({
seatIndex: 1,
userId: 'user_123'
});
moveUserToSeat
Example
import { useLiveSeatState } from 'tuikit-atomicx-vue3';
const { moveUserToSeat } = useLiveSeatState();
// Move user to target seat
await moveUserToSeat({
userId: 'user_123',
targetSeatIndex: 3
});
openRemoteCamera
Example
import { useLiveSeatState } from 'tuikit-atomicx-vue3';
const { openRemoteCamera } = useLiveSeatState();
// Open remote user's camera
await openRemoteCamera({
userId: 'user_123'
});
closeRemoteCamera
Example
import { useLiveSeatState } from 'tuikit-atomicx-vue3';
const { closeRemoteCamera } = useLiveSeatState();
// Close remote user's camera
await closeRemoteCamera({
userId: 'user_123'
});
openRemoteMicrophone
Example
import { useLiveSeatState } from 'tuikit-atomicx-vue3';
const { openRemoteMicrophone } = useLiveSeatState();
// Open remote user's microphone
await openRemoteMicrophone({
userId: 'user_123'
});
closeRemoteMicrophone
Example
import { useLiveSeatState } from 'tuikit-atomicx-vue3';
const { closeRemoteMicrophone } = useLiveSeatState();
// Close remote user's microphone
await closeRemoteMicrophone({
userId: 'user_123'
});
muteMicrophone
Example
import { useLiveSeatState } from 'tuikit-atomicx-vue3';
const { muteMicrophone } = useLiveSeatState();
// Mute user's microphone
await muteMicrophone({
userId: 'user_123'
});
unmuteMicrophone
Example
import { useLiveSeatState } from 'tuikit-atomicx-vue3';
const { unmuteMicrophone } = useLiveSeatState();
// Unmute user's microphone
await unmuteMicrophone({
userId: 'user_123'
});
startPlayStream
Example
import { useLiveSeatState } from 'tuikit-atomicx-vue3';
const { startPlayStream } = useLiveSeatState();
// Start playing user's stream
await startPlayStream({
userId: 'user_123',
streamType: 0
});
stopPlayStream
Example
import { useLiveSeatState } from 'tuikit-atomicx-vue3';
const { stopPlayStream } = useLiveSeatState();
// Stop playing user's stream
await stopPlayStream({
userId: 'user_123',
streamType: 0
});
LiveAudienceState
👥 liveroomaudienceManagement Module
Core Features:managementliveroomAudience list,providesaudiencepermissioncontrol、managementmemberSetetc.liveroomorder maintenancefunctions,supportsreal-timeaudiencestatistics。
Technical Features:supportsreal-timeAudience listupdate、permissiongradingmanagement、batchactionetc.advancedfunctions,ensureliveroomorderanduserexperience。AddedaudienceListandaudienceCountReactive Data。
Business Value:asliveplatformprovidescompleteofaudiencemanagementsolution,supportslarge-scaleaudiencescenariosunderoforder maintenance。
Use Cases:audiencemanagement、permissioncontrol、liveroomorder maintenance、audienceinteractionmanagementetc.corebusinessscenarios。
Reactive Data
audienceList
Ref<any>
Example
import { useLiveAudienceState } from 'tuikit-atomicx-vue3';
const { audienceList } = useLiveAudienceState();
// Watch for data changes
watch(audienceList, (newValue) => {
console.log('audienceList updated:', newValue);
});
// Access data directly
console.log('Current audienceList:', audienceList.value);
audienceCount
Ref<any>
Example
import { useLiveAudienceState } from 'tuikit-atomicx-vue3';
const { audienceCount } = useLiveAudienceState();
// Watch for data changes
watch(audienceCount, (newValue) => {
console.log('audienceCount updated:', newValue);
});
// Access data directly
console.log('Current audienceCount:', audienceCount.value);
API Functions
fetchAudienceList
Example
import { useLiveAudienceState } from 'tuikit-atomicx-vue3';
const { fetchAudienceList } = useLiveAudienceState();
// Fetch audience list with pagination
await fetchAudienceList({
cursor: '',
count: 50
});
setAdministrator
Example
import { useLiveAudienceState } from 'tuikit-atomicx-vue3';
const { setAdministrator } = useLiveAudienceState();
// Set user as administrator
await setAdministrator({
userId: 'user_123'
});
revokeAdministrator
Example
import { useLiveAudienceState } from 'tuikit-atomicx-vue3';
const { revokeAdministrator } = useLiveAudienceState();
// Revoke administrator privileges
await revokeAdministrator({
userId: 'user_123'
});
kickUserOutOfRoom
Example
import { useLiveAudienceState } from 'tuikit-atomicx-vue3';
const { kickUserOutOfRoom } = useLiveAudienceState();
// Kick user out of room
await kickUserOutOfRoom({
userId: 'user_123'
});
disableSendMessage
Example
import { useLiveAudienceState } from 'tuikit-atomicx-vue3';
const { disableSendMessage } = useLiveAudienceState();
// Disable user from sending messages for 10 minutes
await disableSendMessage({
userId: 'user_123',
duration: 600
});
LiveMonitorState
📊 livemonitoringManagement Module
Core Features:providesliveroomreal-timemonitoringfunctions,includinglivestatusmonitoring、datastatistics、abnormaldetectionetc.coremonitoringcapability,supportsmultipleliveroommonitoring。
Technical Features:supportsreal-timedatacapture、multipledimensiondegreemonitoringmetrics、intelligentcanalertmechanism,ensureliveservicesofstablepropertyandreliability。AddedmonitorLiveInfoListReactive Data,optimizemonitoringAPI。
Business Value:asliveplatformprovidesfulldirectionpositionofmonitoringguarantee,andwhensendcurrentandhandlingabnormalsituation,enhanceservicesquality。
Use Cases:livequalitymonitoring、propertycananalysis、abnormalalert、datastatisticsetc.operationmanagementscenarios。
Reactive Data
monitorLiveInfoList
Ref<any>
Example
import { useLiveMonitorState } from 'tuikit-atomicx-vue3';
const { monitorLiveInfoList } = useLiveMonitorState();
// Watch for data changes
watch(monitorLiveInfoList, (newValue) => {
console.log('monitorLiveInfoList updated:', newValue);
});
// Access data directly
console.log('Current monitorLiveInfoList:', monitorLiveInfoList.value);
API Functions
init
Example
import { useLiveMonitorState } from 'tuikit-atomicx-vue3';
const { init } = useLiveMonitorState();
// Initialize live monitor service
await init({
sdkAppId: 1400000001,
userId: 'admin_user',
userSig: 'eJyrVgrxCdYrSy1SslIy0jNQ0gHzM1NS...'
});
getLiveList
Example
import { useLiveMonitorState } from 'tuikit-atomicx-vue3';
const { getLiveList } = useLiveMonitorState();
// Get live list with pagination
await getLiveList({
cursor: '',
count: 20
});
closeRoom
Example
import { useLiveMonitorState } from 'tuikit-atomicx-vue3';
const { closeRoom } = useLiveMonitorState();
// Close a live room
await closeRoom({
roomId: 'room_123456'
});
sendMessage
Example
import { useLiveMonitorState } from 'tuikit-atomicx-vue3';
const { sendMessage } = useLiveMonitorState();
// Send a text message
await sendMessage({
content: 'Hello everyone!',
type: 'text'
});
startPlay
Example
import { useLiveMonitorState } from 'tuikit-atomicx-vue3';
const { startPlay } = useLiveMonitorState();
// Start playing a live stream
await startPlay({
roomId: 'room_123456',
userId: 'host_user'
});
stopPlay
Example
import { useLiveMonitorState } from 'tuikit-atomicx-vue3';
const { stopPlay } = useLiveMonitorState();
// Stop playing a live stream
await stopPlay({
roomId: 'room_123456',
userId: 'host_user'
});
muteLiveAudio
Example
import { useLiveMonitorState } from 'tuikit-atomicx-vue3';
const { muteLiveAudio } = useLiveMonitorState();
// Mute live audio
await muteLiveAudio({
roomId: 'room_123456',
userId: 'host_user',
isMuted: true
});
CoGuestState
🎤 co-guestguestManagement Module
Core Features:handlingaudiencewithhostofroomofco-guestinteraction,managementco-guestapply、invite、accept、rejectetc.completeofco-gueststreamprocess,supportsco-gueststatusmanagement。
Technical Features:based onreal-timeaudio/videotechnical,supportsco-gueststatusreal-timesync、audio/videoqualityadaptiveshould、networkconditionmonitoringetc.advancedfunctions。Addedconnected、invitees、applicants、candidatesReactive DataandapplyForSeatAPI。
Business Value:asliveplatformprovidesaudienceparameterwithinteractionofcorecapability,enhanceuserstickypropertyandlivefun。
Use Cases:audienceco-guest、interactionQ&A、inconnectionKsong、gameliveetc.needaudienceparameterwithofinteractionscenarios。
Reactive Data
candidates
Ref<any>
Example
import { useCoGuestState } from 'tuikit-atomicx-vue3';
const { candidates } = useCoGuestState();
// Watch for data changes
watch(candidates, (newValue) => {
console.log('candidates updated:', newValue);
});
// Access data directly
console.log('Current candidates:', candidates.value);
connected
Ref<any>
Example
import { useCoGuestState } from 'tuikit-atomicx-vue3';
const { connected } = useCoGuestState();
// Watch for data changes
watch(connected, (newValue) => {
console.log('connected updated:', newValue);
});
// Access data directly
console.log('Current connected:', connected.value);
invitees
Ref<any>
Example
import { useCoGuestState } from 'tuikit-atomicx-vue3';
const { invitees } = useCoGuestState();
// Watch for data changes
watch(invitees, (newValue) => {
console.log('invitees updated:', newValue);
});
// Access data directly
console.log('Current invitees:', invitees.value);
applicants
Ref<any>
Example
import { useCoGuestState } from 'tuikit-atomicx-vue3';
const { applicants } = useCoGuestState();
// Watch for data changes
watch(applicants, (newValue) => {
console.log('applicants updated:', newValue);
});
// Access data directly
console.log('Current applicants:', applicants.value);
API Functions
cancelApplication
Example
import { useCoGuestState } from 'tuikit-atomicx-vue3';
const { cancelApplication } = useCoGuestState();
// Cancel co-guest application
await cancelApplication({
requestId: 'req_123456'
});
acceptApplication
Example
import { useCoGuestState } from 'tuikit-atomicx-vue3';
const { acceptApplication } = useCoGuestState();
// Accept co-guest application
await acceptApplication({
requestId: 'req_123456'
});
rejectApplication
Example
import { useCoGuestState } from 'tuikit-atomicx-vue3';
const { rejectApplication } = useCoGuestState();
// Reject co-guest application
await rejectApplication({
requestId: 'req_123456'
});
cancelInvitation
Example
import { useCoGuestState } from 'tuikit-atomicx-vue3';
const { cancelInvitation } = useCoGuestState();
// Cancel co-guest invitation
await cancelInvitation({
requestId: 'req_123456'
});
acceptInvitation
Example
import { useCoGuestState } from 'tuikit-atomicx-vue3';
const { acceptInvitation } = useCoGuestState();
// Accept co-guest invitation
await acceptInvitation({
requestId: 'req_123456'
});
rejectInvitation
Example
import { useCoGuestState } from 'tuikit-atomicx-vue3';
const { rejectInvitation } = useCoGuestState();
// Reject co-guest invitation
await rejectInvitation({
requestId: 'req_123456'
});
disConnect
Example
import { useCoGuestState } from 'tuikit-atomicx-vue3';
const { disConnect } = useCoGuestState();
// Disconnect co-guest connection
await disConnect({
userId: 'user_123'
});
applyForSeat
Example
import { useCoGuestState } from 'tuikit-atomicx-vue3';
const { applyForSeat } = useCoGuestState();
// Apply for a seat with 60 seconds timeout
await applyForSeat({
seatIndex: 1,
timeout: 60
});
CoHostState
🤝 co-guesthostManagement Module
Core Features:achievehostroomofco-guestfunctions,supportshostinvite、co-guestapply、co-gueststatusmanagementetc.hostroominteractionfunctions,providescompleteofhostco-gueststreamprocess。
Technical Features:supportsmultiplehostaudio/videosync、videoinvideodisplay、audio/videoqualityoptimizeetc.advancedtechnical,ensureco-guestexperienceofstreamsmoothproperty。AddedcoHostStatus、connected、applicant、invitees、candidatesReactive Dataandcompleteofco-guestcontrolAPI。
Business Value:asliveplatformprovideshostroomcollaborationofcorecapability,supportsPK、cooperationliveetc.advancedbusinessscenarios。
Use Cases:hostPK、cooperationlive、crossplatformco-guest、hostinteractionetc.advancedlivescenarios。
Reactive Data
coHostStatus
Ref<any>
Example
import { useCoHostState } from 'tuikit-atomicx-vue3';
const { coHostStatus } = useCoHostState();
// Watch for data changes
watch(coHostStatus, (newValue) => {
console.log('coHostStatus updated:', newValue);
});
// Access data directly
console.log('Current coHostStatus:', coHostStatus.value);
connected
Ref<any>
Example
import { useCoHostState } from 'tuikit-atomicx-vue3';
const { connected } = useCoHostState();
// Watch for data changes
watch(connected, (newValue) => {
console.log('connected updated:', newValue);
});
// Access data directly
console.log('Current connected:', connected.value);
applicant
Ref<any>
Example
import { useCoHostState } from 'tuikit-atomicx-vue3';
const { applicant } = useCoHostState();
// Watch for data changes
watch(applicant, (newValue) => {
console.log('applicant updated:', newValue);
});
// Access data directly
console.log('Current applicant:', applicant.value);
invitees
Ref<any>
Example
import { useCoHostState } from 'tuikit-atomicx-vue3';
const { invitees } = useCoHostState();
// Watch for data changes
watch(invitees, (newValue) => {
console.log('invitees updated:', newValue);
});
// Access data directly
console.log('Current invitees:', invitees.value);
candidates
Ref<any>
Example
import { useCoHostState } from 'tuikit-atomicx-vue3';
const { candidates } = useCoHostState();
// Watch for data changes
watch(candidates, (newValue) => {
console.log('candidates updated:', newValue);
});
// Access data directly
console.log('Current candidates:', candidates.value);
API Functions
requestHostConnection
Example
import { useCoHostState } from 'tuikit-atomicx-vue3';
const { requestHostConnection } = useCoHostState();
// Request host connection with 60 seconds timeout
await requestHostConnection({
targetUserId: 'host_123',
timeout: 60
});
cancelHostConnection
Example
import { useCoHostState } from 'tuikit-atomicx-vue3';
const { cancelHostConnection } = useCoHostState();
// Cancel host connection request
await cancelHostConnection({
targetUserId: 'host_123'
});
acceptHostConnection
Example
import { useCoHostState } from 'tuikit-atomicx-vue3';
const { acceptHostConnection } = useCoHostState();
// Accept host connection request
await acceptHostConnection({
targetUserId: 'host_123'
});
rejectHostConnection
Example
import { useCoHostState } from 'tuikit-atomicx-vue3';
const { rejectHostConnection } = useCoHostState();
// Reject host connection request
await rejectHostConnection({
targetUserId: 'host_123'
});
exitHostConnection
Example
import { useCoHostState } from 'tuikit-atomicx-vue3';
const { exitHostConnection } = useCoHostState();
// Exit host connection
await exitHostConnection({
targetUserId: 'host_123'
});
BattleState
⚔️ PKbattleManagement Module
Core Features:managementhostroomofPKbattlefunctions,includingbattleinvite、accept、reject、endetc.completeofPKstreamprocess,supportsreal-timescorestatistics。
Technical Features:supportsreal-timebattlestatussync、scorecompute、battleresultstatisticsetc.functions。AddedbattleScoreReactive Data,providescompleteofPKbattleexperience。
Business Value:asliveplatformprovidescompetitiveinteractionfunctions,enhancelivefunanduserparameterwithdegree。
Use Cases:hostPK、talentcompetition、gamebattle、interactioncompetitiveetc.entertainmentscenarios。
Reactive Data
currentBattleInfo
Ref<BattleInfo>
Example
import { useBattleState } from 'tuikit-atomicx-vue3';
const { currentBattleInfo } = useBattleState();
// Watch for data changes
watch(currentBattleInfo, (newValue) => {
console.log('currentBattleInfo updated:', newValue);
});
// Access data directly
console.log('Current currentBattleInfo:', currentBattleInfo.value);
battleUsers
Ref<SeatUserInfo[]>
Example
import { useBattleState } from 'tuikit-atomicx-vue3';
const { battleUsers } = useBattleState();
// Watch for data changes
watch(battleUsers, (newValue) => {
console.log('battleUsers updated:', newValue);
});
// Access data directly
console.log('Current battleUsers:', battleUsers.value);
battleScore
Ref<any>
Example
import { useBattleState } from 'tuikit-atomicx-vue3';
const { battleScore } = useBattleState();
// Watch for data changes
watch(battleScore, (newValue) => {
console.log('battleScore updated:', newValue);
});
// Access data directly
console.log('Current battleScore:', battleScore.value);
API Functions
requestBattle
Example
import { useBattleState } from 'tuikit-atomicx-vue3';
const { requestBattle } = useBattleState();
// Request battle with 5 minutes duration
await requestBattle({
targetUserId: 'host_123',
duration: 300
});
cancelBattleRequest
Example
import { useBattleState } from 'tuikit-atomicx-vue3';
const { cancelBattleRequest } = useBattleState();
// Cancel battle request
await cancelBattleRequest({
targetUserId: 'host_123'
});
acceptBattle
Example
import { useBattleState } from 'tuikit-atomicx-vue3';
const { acceptBattle } = useBattleState();
// Accept battle request
await acceptBattle({
targetUserId: 'host_123'
});
rejectBattle
Example
import { useBattleState } from 'tuikit-atomicx-vue3';
const { rejectBattle } = useBattleState();
// Reject battle request
await rejectBattle({
targetUserId: 'host_123'
});
exitBattle
Example
import { useBattleState } from 'tuikit-atomicx-vue3';
const { exitBattle } = useBattleState();
// Exit battle
await exitBattle({
targetUserId: 'host_123'
});
BarrageState
💬 barragemessageManagement Module
Core Features:handlingliveroomwithinoftextmessage、custommessageetc.barragefunctions,supportsbarragesend、messagestatussyncetc.completebarragesystem,provideslocaltipfunctions。
Technical Features:supportshighandsendmessagehandling、real-timemessagesync、messagefilter、emojipackagesupportsetc.advancedfunctions。AddedsendTextMessage、sendCustomMessage、appendLocalTipAPI Functions。
Business Value:asliveplatformprovidescoreofinteractioncapability,enhanceuserparameterwithdegreeandliveatmosphere。
Use Cases:barrageinteraction、messagemanagement、emojipackage、chatroometc.socialinteractionscenarios。
Reactive Data
messageList
Ref<Barrage[]>
Example
import { useBarrageState } from 'tuikit-atomicx-vue3';
const { messageList } = useBarrageState();
// Watch for data changes
watch(messageList, (newValue) => {
console.log('messageList updated:', newValue);
});
// Access data directly
console.log('Current messageList:', messageList.value);
API Functions
sendTextMessage
Example
import { useBarrageState } from 'tuikit-atomicx-vue3';
const { sendTextMessage } = useBarrageState();
// Send text barrage message
await sendTextMessage({
text: 'Great live stream!',
receiverList: []
});
sendCustomMessage
Example
import { useBarrageState } from 'tuikit-atomicx-vue3';
const { sendCustomMessage } = useBarrageState();
// Send custom barrage message (e.g., gift)
await sendCustomMessage({
data: JSON.stringify({ type: 'gift', giftId: 'rocket', count: 1 }),
receiverList: []
});
appendLocalTip
Example
import { useBarrageState } from 'tuikit-atomicx-vue3';
const { appendLocalTip } = useBarrageState();
// Append local tip message
await appendLocalTip({
message: 'Welcome to the live room!',
type: 'info'
});
MessageListState
📝 Message listManagement Module
Core Features:managementchatMessage list,supportsmessageloading、scrollcontrol、readreceipt、messagehighlightetc.completeofmessagedisplayfunctions。
Technical Features:supportsvirtualscroll、messageoptimize、real-timeupdateetc.highpropertycanmessagehandling。AddedactiveConversationID、messageList、hasMoreOlderMessageetc.Reactive Data。
Business Value:asinstantwhencommunicationprovidescoreofmessagedisplaycapability,ensuregoodofchatexperience。
Use Cases:instantwhencommunication、group chat、private chat、messagemanagementetc.communicationscenarios。
Reactive Data
activeConversationID
Ref<any>
Example
import { useMessageListState } from 'tuikit-atomicx-vue3';
const { activeConversationID } = useMessageListState();
// Watch for data changes
watch(activeConversationID, (newValue) => {
console.log('activeConversationID updated:', newValue);
});
// Access data directly
console.log('Current activeConversationID:', activeConversationID.value);
messageList
Ref<any>
Example
import { useMessageListState } from 'tuikit-atomicx-vue3';
const { messageList } = useMessageListState();
// Watch for data changes
watch(messageList, (newValue) => {
console.log('messageList updated:', newValue);
});
// Access data directly
console.log('Current messageList:', messageList.value);
hasMoreOlderMessage
Ref<any>
Example
import { useMessageListState } from 'tuikit-atomicx-vue3';
const { hasMoreOlderMessage } = useMessageListState();
// Watch for data changes
watch(hasMoreOlderMessage, (newValue) => {
console.log('hasMoreOlderMessage updated:', newValue);
});
// Access data directly
console.log('Current hasMoreOlderMessage:', hasMoreOlderMessage.value);
hasMoreNewerMessage
Ref<any>
Example
import { useMessageListState } from 'tuikit-atomicx-vue3';
const { hasMoreNewerMessage } = useMessageListState();
// Watch for data changes
watch(hasMoreNewerMessage, (newValue) => {
console.log('hasMoreNewerMessage updated:', newValue);
});
// Access data directly
console.log('Current hasMoreNewerMessage:', hasMoreNewerMessage.value);
enableReadReceipt
Ref<any>
Example
import { useMessageListState } from 'tuikit-atomicx-vue3';
const { enableReadReceipt } = useMessageListState();
// Watch for data changes
watch(enableReadReceipt, (newValue) => {
console.log('enableReadReceipt updated:', newValue);
});
// Access data directly
console.log('Current enableReadReceipt:', enableReadReceipt.value);
isDisableScroll
Ref<any>
Example
import { useMessageListState } from 'tuikit-atomicx-vue3';
const { isDisableScroll } = useMessageListState();
// Watch for data changes
watch(isDisableScroll, (newValue) => {
console.log('isDisableScroll updated:', newValue);
});
// Access data directly
console.log('Current isDisableScroll:', isDisableScroll.value);
recalledMessageIDSet
Ref<any>
Example
import { useMessageListState } from 'tuikit-atomicx-vue3';
const { recalledMessageIDSet } = useMessageListState();
// Watch for data changes
watch(recalledMessageIDSet, (newValue) => {
console.log('recalledMessageIDSet updated:', newValue);
});
// Access data directly
console.log('Current recalledMessageIDSet:', recalledMessageIDSet.value);
highlightMessageIDSet
Ref<any>
Example
import { useMessageListState } from 'tuikit-atomicx-vue3';
const { highlightMessageIDSet } = useMessageListState();
// Watch for data changes
watch(highlightMessageIDSet, (newValue) => {
console.log('highlightMessageIDSet updated:', newValue);
});
// Access data directly
console.log('Current highlightMessageIDSet:', highlightMessageIDSet.value);
API Functions
setEnableReadReceipt
Example
import { useMessageListState } from 'tuikit-atomicx-vue3';
const { setEnableReadReceipt } = useMessageListState();
// Enable read receipt
await setEnableReadReceipt({
enabled: true
});
setIsDisableScroll
Example
import { useMessageListState } from 'tuikit-atomicx-vue3';
const { setIsDisableScroll } = useMessageListState();
// Disable auto scroll
await setIsDisableScroll({
disabled: true
});
highlightMessage
Example
import { useMessageListState } from 'tuikit-atomicx-vue3';
const { highlightMessage } = useMessageListState();
// Highlight a specific message for 3 seconds
await highlightMessage({
messageId: 'msg_123456',
duration: 3000
});
MessageInputState
✏️ messageinputManagement Module
Core Features:managementmessageinputboxofstatusandrowas,supportstextinput、emojipackage、@functions、inputstatustipetc.completeofinputexperience。
Technical Features:supportsrichtextedit、inputstatussync、draftsaveetc.functions。AddedinputRawValue、isPeerTypingReactive Data。
Business Value:asuserprovidesconvenientofmessageinputexperience,enhancecommunicationefficiency。
Use Cases:messageedit、emojiinput、filesend、speechinputetc.inputscenarios。
Reactive Data
inputRawValue
Ref<any>
Example
import { useMessageInputState } from 'tuikit-atomicx-vue3';
const { inputRawValue } = useMessageInputState();
// Watch for data changes
watch(inputRawValue, (newValue) => {
console.log('inputRawValue updated:', newValue);
});
// Access data directly
console.log('Current inputRawValue:', inputRawValue.value);
isPeerTyping
Ref<any>
Example
import { useMessageInputState } from 'tuikit-atomicx-vue3';
const { isPeerTyping } = useMessageInputState();
// Watch for data changes
watch(isPeerTyping, (newValue) => {
console.log('isPeerTyping updated:', newValue);
});
// Access data directly
console.log('Current isPeerTyping:', isPeerTyping.value);
API Functions
updateRawValue
Example
import { useMessageInputState } from 'tuikit-atomicx-vue3';
const { updateRawValue } = useMessageInputState();
// Update input raw value
await updateRawValue({
value: 'Hello, world!'
});
setEditorInstance
Example
import { useMessageInputState } from 'tuikit-atomicx-vue3';
const { setEditorInstance } = useMessageInputState();
// Set editor instance
await setEditorInstance({
editor: editorRef
});
setContent
Example
import { useMessageInputState } from 'tuikit-atomicx-vue3';
const { setContent } = useMessageInputState();
// Set editor content
await setContent({
content: 'New message content'
});
insertContent
Example
import { useMessageInputState } from 'tuikit-atomicx-vue3';
const { insertContent } = useMessageInputState();
// Insert content at cursor position
await insertContent({
content: '@user ',
position: 0
});
focusEditor
Example
import { useMessageInputState } from 'tuikit-atomicx-vue3';
const { focusEditor } = useMessageInputState();
// Focus editor
focusEditor();
blurEditor
Example
import { useMessageInputState } from 'tuikit-atomicx-vue3';
const { blurEditor } = useMessageInputState();
// Blur editor
blurEditor();
sendMessage
Example
import { useMessageInputState } from 'tuikit-atomicx-vue3';
const { sendMessage } = useMessageInputState();
// Send a text message
await sendMessage({
content: 'Hello everyone!',
type: 'text'
});
MessageActionState
🔧 Message Action Management Module
Core Features:managementmessageofeachtypesaction,includingforward、reference、copy、delete、recalletc.completeofmessageactionfunctions。
Technical Features:supportsbatchaction、actionstatusmanagement、permissioncontroletc.functions。AddedforwardMessageIDList、isForwardMessageSelectionDoneetc.Reactive Data。
Business Value:asuserprovidesrichofmessageactioncapability,enhanceuseexperience。
Use Cases:messageforward、messagereference、messagemanagement、batchactionetc.scenarios。
Reactive Data
forwardMessageIDList
Ref<any>
Example
import { useMessageActionState } from 'tuikit-atomicx-vue3';
const { forwardMessageIDList } = useMessageActionState();
// Watch for data changes
watch(forwardMessageIDList, (newValue) => {
console.log('forwardMessageIDList updated:', newValue);
});
// Access data directly
console.log('Current forwardMessageIDList:', forwardMessageIDList.value);
isForwardMessageSelectionDone
Ref<any>
Example
import { useMessageActionState } from 'tuikit-atomicx-vue3';
const { isForwardMessageSelectionDone } = useMessageActionState();
// Watch for data changes
watch(isForwardMessageSelectionDone, (newValue) => {
console.log('isForwardMessageSelectionDone updated:', newValue);
});
// Access data directly
console.log('Current isForwardMessageSelectionDone:', isForwardMessageSelectionDone.value);
forwardConversationIDList
Ref<any>
Example
import { useMessageActionState } from 'tuikit-atomicx-vue3';
const { forwardConversationIDList } = useMessageActionState();
// Watch for data changes
watch(forwardConversationIDList, (newValue) => {
console.log('forwardConversationIDList updated:', newValue);
});
// Access data directly
console.log('Current forwardConversationIDList:', forwardConversationIDList.value);
quotedMessage
Ref<any>
Example
import { useMessageActionState } from 'tuikit-atomicx-vue3';
const { quotedMessage } = useMessageActionState();
// Watch for data changes
watch(quotedMessage, (newValue) => {
console.log('quotedMessage updated:', newValue);
});
// Access data directly
console.log('Current quotedMessage:', quotedMessage.value);
API Functions
forwardMessage
Example
import { useMessageActionState } from 'tuikit-atomicx-vue3';
const { forwardMessage } = useMessageActionState();
// Forward messages to conversations
await forwardMessage({
messageIds: ['msg_001', 'msg_002'],
conversationIds: ['C2C_user123', 'GROUP_group456']
});
setForwardMessageIDList
Example
import { useMessageActionState } from 'tuikit-atomicx-vue3';
const { setForwardMessageIDList } = useMessageActionState();
// Set forward message ID list
await setForwardMessageIDList({
messageIds: ['msg_001', 'msg_002', 'msg_003']
});
setIsForwardMessageSelectionDone
Example
import { useMessageActionState } from 'tuikit-atomicx-vue3';
const { setIsForwardMessageSelectionDone } = useMessageActionState();
// Mark forward message selection as done
await setIsForwardMessageSelectionDone({
done: true
});
setForwardConversationIDList
Example
import { useMessageActionState } from 'tuikit-atomicx-vue3';
const { setForwardConversationIDList } = useMessageActionState();
// Set forward conversation ID list
await setForwardConversationIDList({
conversationIds: ['C2C_user123', 'GROUP_group456']
});
quoteMessage
Example
import { useMessageActionState } from 'tuikit-atomicx-vue3';
const { quoteMessage } = useMessageActionState();
// Quote a message for reply
await quoteMessage({
messageId: 'msg_123456'
});
clearQuotedMessage
Example
import { useMessageActionState } from 'tuikit-atomicx-vue3';
const { clearQuotedMessage } = useMessageActionState();
// clearQuote message
clearQuotedMessage();
copyTextMessage
Example
import { useMessageActionState } from 'tuikit-atomicx-vue3';
const { copyTextMessage } = useMessageActionState();
// Copy text message content
await copyTextMessage({
messageId: 'msg_123456'
});
deleteMessage
Example
import { useMessageActionState } from 'tuikit-atomicx-vue3';
const { deleteMessage } = useMessageActionState();
// Delete a message
await deleteMessage({
messageId: 'msg_123456'
});
recallMessage
Example
import { useMessageActionState } from 'tuikit-atomicx-vue3';
const { recallMessage } = useMessageActionState();
// Recall a message
await recallMessage({
messageId: 'msg_123456'
});
resetMessageActionState
Example
import { useMessageActionState } from 'tuikit-atomicx-vue3';
const { resetMessageActionState } = useMessageActionState();
// resetallmessageactionstatus
resetMessageActionState();
ConversationListState
💼 Conversation listManagement Module
Core Features:managementuserofConversation list,supportsconversationsorting、unreadstatistics、conversationactionetc.completeofconversationmanagementfunctions。
Technical Features:supportsreal-timeconversationupdate、intelligentcansorting、Net statusmonitoringetc.functions。AddedconversationList、activeConversation、totalUnRead、netStatusReactive Data。
Business Value:asuserprovidesclearofconversationmanagementinterfaceinterface,enhancecommunicationefficiency。
Use Cases:conversationmanagement、contactlist、group management、messageinheartetc.scenarios。
Reactive Data
conversationList
Ref<any>
Example
import { useConversationListState } from 'tuikit-atomicx-vue3';
const { conversationList } = useConversationListState();
// Watch for data changes
watch(conversationList, (newValue) => {
console.log('conversationList updated:', newValue);
});
// Access data directly
console.log('Current conversationList:', conversationList.value);
activeConversation
Ref<any>
Example
import { useConversationListState } from 'tuikit-atomicx-vue3';
const { activeConversation } = useConversationListState();
// Watch for data changes
watch(activeConversation, (newValue) => {
console.log('activeConversation updated:', newValue);
});
// Access data directly
console.log('Current activeConversation:', activeConversation.value);
totalUnRead
Ref<any>
Example
import { useConversationListState } from 'tuikit-atomicx-vue3';
const { totalUnRead } = useConversationListState();
// Watch for data changes
watch(totalUnRead, (newValue) => {
console.log('totalUnRead updated:', newValue);
});
// Access data directly
console.log('Current totalUnRead:', totalUnRead.value);
netStatus
Ref<any>
Example
import { useConversationListState } from 'tuikit-atomicx-vue3';
const { netStatus } = useConversationListState();
// Watch for data changes
watch(netStatus, (newValue) => {
console.log('netStatus updated:', newValue);
});
// Access data directly
console.log('Current netStatus:', netStatus.value);
API Functions
markConversationUnread
Example
import { useConversationListState } from 'tuikit-atomicx-vue3';
const { markConversationUnread } = useConversationListState();
// Mark conversation as unread
await markConversationUnread({
conversationId: 'C2C_user123',
unreadCount: 1
});
setActiveConversation
Example
import { useConversationListState } from 'tuikit-atomicx-vue3';
const { setActiveConversation } = useConversationListState();
// Set active conversation
await setActiveConversation({
conversationId: 'C2C_user123'
});
pinConversation
Example
import { useConversationListState } from 'tuikit-atomicx-vue3';
const { pinConversation } = useConversationListState();
// Pin conversation to top
await pinConversation({
conversationId: 'C2C_user123',
isPinned: true
});
deleteConversation
Example
import { useConversationListState } from 'tuikit-atomicx-vue3';
const { deleteConversation } = useConversationListState();
// Delete a conversation
await deleteConversation({
conversationId: 'C2C_user123'
});
muteConversation
Example
import { useConversationListState } from 'tuikit-atomicx-vue3';
const { muteConversation } = useConversationListState();
// Mute conversation notifications
await muteConversation({
conversationId: 'C2C_user123',
isMuted: true
});
setConversationDraft
Example
import { useConversationListState } from 'tuikit-atomicx-vue3';
const { setConversationDraft } = useConversationListState();
// Set conversation draft
await setConversationDraft({
conversationId: 'C2C_user123',
draft: 'Draft message content...'
});
createC2CConversation
Example
import { useConversationListState } from 'tuikit-atomicx-vue3';
const { createC2CConversation } = useConversationListState();
// Create C2C (one-to-one) conversation
await createC2CConversation({
userId: 'user_123'
});
createGroupConversation
Example
import { useConversationListState } from 'tuikit-atomicx-vue3';
const { createGroupConversation } = useConversationListState();
// Create group conversation
await createGroupConversation({
groupId: 'group_456'
});
ContactListState
👥 contactManagement Module
Core Features:managementuserofcontactlist,includingfriendmanagement、group management、Black listmanagementetc.completeofcontactfunctions。
Technical Features:supportscontactgroup、friendapplyhandling、groupapplymanagementetc.functions。AddedfriendList、groupList、blackListetc.Reactive DataandcompleteofcontactactionAPI。
Business Value:asuserprovidescompleteofsocialrelationshipmanagementcapability,buildsocialnetwork。
Use Cases:friendmanagement、group management、contactSearch、socialnetworketc.scenarios。
Reactive Data
friendList
Ref<any>
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { friendList } = useContactListState();
// Watch for data changes
watch(friendList, (newValue) => {
console.log('friendList updated:', newValue);
});
// Access data directly
console.log('Current friendList:', friendList.value);
groupList
Ref<any>
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { groupList } = useContactListState();
// Watch for data changes
watch(groupList, (newValue) => {
console.log('groupList updated:', newValue);
});
// Access data directly
console.log('Current groupList:', groupList.value);
blackList
Ref<any>
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { blackList } = useContactListState();
// Watch for data changes
watch(blackList, (newValue) => {
console.log('blackList updated:', newValue);
});
// Access data directly
console.log('Current blackList:', blackList.value);
friendApplicationUnreadCount
Ref<any>
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { friendApplicationUnreadCount } = useContactListState();
// Watch for data changes
watch(friendApplicationUnreadCount, (newValue) => {
console.log('friendApplicationUnreadCount updated:', newValue);
});
// Access data directly
console.log('Current friendApplicationUnreadCount:', friendApplicationUnreadCount.value);
friendGroupList
Ref<any>
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { friendGroupList } = useContactListState();
// Watch for data changes
watch(friendGroupList, (newValue) => {
console.log('friendGroupList updated:', newValue);
});
// Access data directly
console.log('Current friendGroupList:', friendGroupList.value);
friendApplicationList
Ref<any>
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { friendApplicationList } = useContactListState();
// Watch for data changes
watch(friendApplicationList, (newValue) => {
console.log('friendApplicationList updated:', newValue);
});
// Access data directly
console.log('Current friendApplicationList:', friendApplicationList.value);
groupApplicationList
Ref<any>
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { groupApplicationList } = useContactListState();
// Watch for data changes
watch(groupApplicationList, (newValue) => {
console.log('groupApplicationList updated:', newValue);
});
// Access data directly
console.log('Current groupApplicationList:', groupApplicationList.value);
API Functions
setGroupApplicationList
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { setGroupApplicationList } = useContactListState();
// Set group application list
await setGroupApplicationList({
applicationList: []
});
setFriendList
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { setFriendList } = useContactListState();
// Set friend list
await setFriendList({
friendList: []
});
setGroupList
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { setGroupList } = useContactListState();
// Set group list
await setGroupList({
groupList: []
});
setBlackList
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { setBlackList } = useContactListState();
// Set black list
await setBlackList({
blackList: []
});
setFriendApplicationUnreadCount
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { setFriendApplicationUnreadCount } = useContactListState();
// Set friend application unread count
await setFriendApplicationUnreadCount({
count: 5
});
setFriendGroupList
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { setFriendGroupList } = useContactListState();
// Set friend group list
await setFriendGroupList({
groupList: []
});
setFriendApplicationList
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { setFriendApplicationList } = useContactListState();
// Set friend application list
await setFriendApplicationList({
applicationList: []
});
initContactListWatcher
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { initContactListWatcher } = useContactListState();
// Initialize contact list watcher
await initContactListWatcher({
autoUpdate: true
});
addFriend
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { addFriend } = useContactListState();
// Add friend with remark
await addFriend({
userId: 'user_123',
remark: 'My Friend',
addSource: 'search'
});
markFriendApplicationAsRead
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { markFriendApplicationAsRead } = useContactListState();
// Mark friend applications as read
await markFriendApplicationAsRead({
applicationList: ['app_001', 'app_002']
});
acceptFriendApplication
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { acceptFriendApplication } = useContactListState();
// Accept friend application
await acceptFriendApplication({
userId: 'user_123',
remark: 'New Friend'
});
refuseFriendApplication
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { refuseFriendApplication } = useContactListState();
// Refuse friend application
await refuseFriendApplication({
userId: 'user_123'
});
addToBlacklist
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { addToBlacklist } = useContactListState();
// Add user to blacklist
await addToBlacklist({
userId: 'user_123'
});
removeFromBlacklist
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { removeFromBlacklist } = useContactListState();
// Remove user from blacklist
await removeFromBlacklist({
userId: 'user_123'
});
deleteFriend
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { deleteFriend } = useContactListState();
// Delete friend
await deleteFriend({
userId: 'user_123'
});
setFriendRemark
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { setFriendRemark } = useContactListState();
// Set friend remark
await setFriendRemark({
userId: 'user_123',
remark: 'Best Friend'
});
createFriendGroup
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { createFriendGroup } = useContactListState();
// Create friend group
await createFriendGroup({
groupName: 'Close Friends',
userList: ['user_001', 'user_002']
});
deleteFriendGroup
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { deleteFriendGroup } = useContactListState();
// Delete friend group
await deleteFriendGroup({
groupName: 'Old Group'
});
addToFriendGroup
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { addToFriendGroup } = useContactListState();
// Add friends to group
await addToFriendGroup({
groupName: 'Close Friends',
userList: ['user_003', 'user_004']
});
removeFromFriendGroup
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { removeFromFriendGroup } = useContactListState();
// Remove friends from group
await removeFromFriendGroup({
groupName: 'Close Friends',
userList: ['user_003']
});
renameFriendGroup
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { renameFriendGroup } = useContactListState();
// Rename friend group
await renameFriendGroup({
oldGroupName: 'Close Friends',
newGroupName: 'Best Friends'
});
joinGroup
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { joinGroup } = useContactListState();
// Join a group
await joinGroup({
groupId: 'group_123',
message: 'I want to join this group'
});
acceptGroupApplication
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { acceptGroupApplication } = useContactListState();
// Accept group application
await acceptGroupApplication({
groupId: 'group_123',
userId: 'user_456'
});
refuseGroupApplication
Example
import { useContactListState } from 'tuikit-atomicx-vue3';
const { refuseGroupApplication } = useContactListState();
// Refuse group application
await refuseGroupApplication({
groupId: 'group_123',
userId: 'user_456',
reason: 'Group is full'
});
C2CSettingState
👤 C2C Chat Setting Management Module
Core Features:managementC2C chatconversationofeachtypesSet,includinguserinformation、chatSet、permissioncontroletc.functions。
Technical Features:supportsreal-timeSetsync、permissionmanagement、personalizationconfigurationetc.functions。updateReactive DataasuserID、avatar、signatureetc.standardizationfield。
Business Value:asuserprovidespersonalizationofC2C chatexperience,enhancecommunicationquality。
Use Cases:C2C chatSet、userinformationmanagement、chatpermissioncontroletc.scenarios。
Reactive Data
currentConversationRef
Ref<IConversationModel | undefined>
Example
import { useC2CSettingState } from 'tuikit-atomicx-vue3';
const { currentConversationRef } = useC2CSettingState();
// Watch for data changes
watch(currentConversationRef, (newValue) => {
console.log('currentConversationRef updated:', newValue);
});
// Access data directly
console.log('Current currentConversationRef:', currentConversationRef.value);
userIDRef
Ref<string | undefined>
Example
import { useC2CSettingState } from 'tuikit-atomicx-vue3';
const { userIDRef } = useC2CSettingState();
// Watch for data changes
watch(userIDRef, (newValue) => {
console.log('userIDRef updated:', newValue);
});
// Access data directly
console.log('Current userIDRef:', userIDRef.value);
nickRef
Ref<string | undefined>
Example
import { useC2CSettingState } from 'tuikit-atomicx-vue3';
const { nickRef } = useC2CSettingState();
// Watch for data changes
watch(nickRef, (newValue) => {
console.log('nickRef updated:', newValue);
});
// Access data directly
console.log('Current nickRef:', nickRef.value);
avatarRef
Ref<string | undefined>
Example
import { useC2CSettingState } from 'tuikit-atomicx-vue3';
const { avatarRef } = useC2CSettingState();
// Watch for data changes
watch(avatarRef, (newValue) => {
console.log('avatarRef updated:', newValue);
});
// Access data directly
console.log('Current avatarRef:', avatarRef.value);
signatureRef
Ref<string | undefined>
Example
import { useC2CSettingState } from 'tuikit-atomicx-vue3';
const { signatureRef } = useC2CSettingState();
// Watch for data changes
watch(signatureRef, (newValue) => {
console.log('signatureRef updated:', newValue);
});
// Access data directly
console.log('Current signatureRef:', signatureRef.value);
remarkRef
Ref<string | undefined>
Example
import { useC2CSettingState } from 'tuikit-atomicx-vue3';
const { remarkRef } = useC2CSettingState();
// Watch for data changes
watch(remarkRef, (newValue) => {
console.log('remarkRef updated:', newValue);
});
// Access data directly
console.log('Current remarkRef:', remarkRef.value);
isMutedRef
Ref<boolean | undefined>
Example
import { useC2CSettingState } from 'tuikit-atomicx-vue3';
const { isMutedRef } = useC2CSettingState();
// Watch for data changes
watch(isMutedRef, (newValue) => {
console.log('isMutedRef updated:', newValue);
});
// Access data directly
console.log('Current isMutedRef:', isMutedRef.value);
isPinnedRef
Ref<boolean | undefined>
Example
import { useC2CSettingState } from 'tuikit-atomicx-vue3';
const { isPinnedRef } = useC2CSettingState();
// Watch for data changes
watch(isPinnedRef, (newValue) => {
console.log('isPinnedRef updated:', newValue);
});
// Access data directly
console.log('Current isPinnedRef:', isPinnedRef.value);
isContactRef
Ref<boolean | undefined>
Example
import { useC2CSettingState } from 'tuikit-atomicx-vue3';
const { isContactRef } = useC2CSettingState();
// Watch for data changes
watch(isContactRef, (newValue) => {
console.log('isContactRef updated:', newValue);
});
// Access data directly
console.log('Current isContactRef:', isContactRef.value);
userID
Ref<any>
Example
import { useC2CSettingState } from 'tuikit-atomicx-vue3';
const { userID } = useC2CSettingState();
// Watch for data changes
watch(userID, (newValue) => {
console.log('userID updated:', newValue);
});
// Access data directly
console.log('Current userID:', userID.value);
avatar
Ref<any>
Example
import { useC2CSettingState } from 'tuikit-atomicx-vue3';
const { avatar } = useC2CSettingState();
// Watch for data changes
watch(avatar, (newValue) => {
console.log('avatar updated:', newValue);
});
// Access data directly
console.log('Current avatar:', avatar.value);
signature
Ref<any>
Example
import { useC2CSettingState } from 'tuikit-atomicx-vue3';
const { signature } = useC2CSettingState();
// Watch for data changes
watch(signature, (newValue) => {
console.log('signature updated:', newValue);
});
// Access data directly
console.log('Current signature:', signature.value);
remark
Ref<any>
Example
import { useC2CSettingState } from 'tuikit-atomicx-vue3';
const { remark } = useC2CSettingState();
// Watch for data changes
watch(remark, (newValue) => {
console.log('remark updated:', newValue);
});
// Access data directly
console.log('Current remark:', remark.value);
isMuted
Ref<any>
Example
import { useC2CSettingState } from 'tuikit-atomicx-vue3';
const { isMuted } = useC2CSettingState();
// Watch for data changes
watch(isMuted, (newValue) => {
console.log('isMuted updated:', newValue);
});
// Access data directly
console.log('Current isMuted:', isMuted.value);
isPinned
Ref<any>
Example
import { useC2CSettingState } from 'tuikit-atomicx-vue3';
const { isPinned } = useC2CSettingState();
// Watch for data changes
watch(isPinned, (newValue) => {
console.log('isPinned updated:', newValue);
});
// Access data directly
console.log('Current isPinned:', isPinned.value);
isContact
Ref<any>
Example
import { useC2CSettingState } from 'tuikit-atomicx-vue3';
const { isContact } = useC2CSettingState();
// Watch for data changes
watch(isContact, (newValue) => {
console.log('isContact updated:', newValue);
});
// Access data directly
console.log('Current isContact:', isContact.value);
API Functions
setChatPinned
Example
import { useC2CSettingState } from 'tuikit-atomicx-vue3';
const { setChatPinned } = useC2CSettingState();
// Pin chat to top
await setChatPinned({
conversationId: 'C2C_user123',
isPinned: true
});
setChatMuted
Example
import { useC2CSettingState } from 'tuikit-atomicx-vue3';
const { setChatMuted } = useC2CSettingState();
// Mute chat notifications
await setChatMuted({
conversationId: 'C2C_user123',
isMuted: true
});
setUserRemark
Example
import { useC2CSettingState } from 'tuikit-atomicx-vue3';
const { setUserRemark } = useC2CSettingState();
// Set user remark
await setUserRemark({
userId: 'user_123',
remark: 'My Best Friend'
});
GroupSettingState
👥 Group Chat Setting Management Module
Core Features:managementgroup chatofeachtypesSetandaction,includinggroupinformationmanagement、member management、permissioncontroletc.completeofgroupmanagementfunctions。
Technical Features:supportsgrouppermissionmanagement、memberaction、groupSetsyncetc.functions。AddedgroupID、groupType、groupNameetc.completeofgroupinformationReactive DataandmanagementAPI。
Business Value:asGroup ownerandmanagementmemberprovidescompleteofgroupmanagementcapability,dimensionprotectgrouporder。
Use Cases:groupmanagement、member management、permissioncontrol、groupSetetc.scenarios。
Reactive Data
groupID
Ref<any>
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { groupID } = useGroupSettingState();
// Watch for data changes
watch(groupID, (newValue) => {
console.log('groupID updated:', newValue);
});
// Access data directly
console.log('Current groupID:', groupID.value);
groupType
Ref<any>
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { groupType } = useGroupSettingState();
// Watch for data changes
watch(groupType, (newValue) => {
console.log('groupType updated:', newValue);
});
// Access data directly
console.log('Current groupType:', groupType.value);
groupName
Ref<any>
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { groupName } = useGroupSettingState();
// Watch for data changes
watch(groupName, (newValue) => {
console.log('groupName updated:', newValue);
});
// Access data directly
console.log('Current groupName:', groupName.value);
avatar
Ref<any>
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { avatar } = useGroupSettingState();
// Watch for data changes
watch(avatar, (newValue) => {
console.log('avatar updated:', newValue);
});
// Access data directly
console.log('Current avatar:', avatar.value);
introduction
Ref<any>
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { introduction } = useGroupSettingState();
// Watch for data changes
watch(introduction, (newValue) => {
console.log('introduction updated:', newValue);
});
// Access data directly
console.log('Current introduction:', introduction.value);
notification
Ref<any>
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { notification } = useGroupSettingState();
// Watch for data changes
watch(notification, (newValue) => {
console.log('notification updated:', newValue);
});
// Access data directly
console.log('Current notification:', notification.value);
isMuted
Ref<any>
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { isMuted } = useGroupSettingState();
// Watch for data changes
watch(isMuted, (newValue) => {
console.log('isMuted updated:', newValue);
});
// Access data directly
console.log('Current isMuted:', isMuted.value);
isPinned
Ref<any>
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { isPinned } = useGroupSettingState();
// Watch for data changes
watch(isPinned, (newValue) => {
console.log('isPinned updated:', newValue);
});
// Access data directly
console.log('Current isPinned:', isPinned.value);
groupOwner
Ref<any>
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { groupOwner } = useGroupSettingState();
// Watch for data changes
watch(groupOwner, (newValue) => {
console.log('groupOwner updated:', newValue);
});
// Access data directly
console.log('Current groupOwner:', groupOwner.value);
adminMembers
Ref<any>
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { adminMembers } = useGroupSettingState();
// Watch for data changes
watch(adminMembers, (newValue) => {
console.log('adminMembers updated:', newValue);
});
// Access data directly
console.log('Current adminMembers:', adminMembers.value);
allMembers
Ref<any>
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { allMembers } = useGroupSettingState();
// Watch for data changes
watch(allMembers, (newValue) => {
console.log('allMembers updated:', newValue);
});
// Access data directly
console.log('Current allMembers:', allMembers.value);
memberCount
Ref<any>
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { memberCount } = useGroupSettingState();
// Watch for data changes
watch(memberCount, (newValue) => {
console.log('memberCount updated:', newValue);
});
// Access data directly
console.log('Current memberCount:', memberCount.value);
maxMemberCount
Ref<any>
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { maxMemberCount } = useGroupSettingState();
// Watch for data changes
watch(maxMemberCount, (newValue) => {
console.log('maxMemberCount updated:', newValue);
});
// Access data directly
console.log('Current maxMemberCount:', maxMemberCount.value);
currentUserID
Ref<any>
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { currentUserID } = useGroupSettingState();
// Watch for data changes
watch(currentUserID, (newValue) => {
console.log('currentUserID updated:', newValue);
});
// Access data directly
console.log('Current currentUserID:', currentUserID.value);
currentUserRole
Ref<any>
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { currentUserRole } = useGroupSettingState();
// Watch for data changes
watch(currentUserRole, (newValue) => {
console.log('currentUserRole updated:', newValue);
});
// Access data directly
console.log('Current currentUserRole:', currentUserRole.value);
nameCard
Ref<any>
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { nameCard } = useGroupSettingState();
// Watch for data changes
watch(nameCard, (newValue) => {
console.log('nameCard updated:', newValue);
});
// Access data directly
console.log('Current nameCard:', nameCard.value);
isMuteAllMembers
Ref<any>
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { isMuteAllMembers } = useGroupSettingState();
// Watch for data changes
watch(isMuteAllMembers, (newValue) => {
console.log('isMuteAllMembers updated:', newValue);
});
// Access data directly
console.log('Current isMuteAllMembers:', isMuteAllMembers.value);
isInGroup
Ref<any>
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { isInGroup } = useGroupSettingState();
// Watch for data changes
watch(isInGroup, (newValue) => {
console.log('isInGroup updated:', newValue);
});
// Access data directly
console.log('Current isInGroup:', isInGroup.value);
inviteOption
Ref<any>
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { inviteOption } = useGroupSettingState();
// Watch for data changes
watch(inviteOption, (newValue) => {
console.log('inviteOption updated:', newValue);
});
// Access data directly
console.log('Current inviteOption:', inviteOption.value);
API Functions
getGroupMemberList
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { getGroupMemberList } = useGroupSettingState();
// Get group member list
await getGroupMemberList({
groupId: 'group_123',
filter: 0,
nextSeq: 0
});
updateGroupProfile
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { updateGroupProfile } = useGroupSettingState();
// Update group profile
await updateGroupProfile({
groupId: 'group_123',
groupName: 'New Group Name',
avatar: 'https://example.com/avatar.png',
introduction: 'Welcome to our group!',
notification: 'Please follow the rules'
});
addGroupMember
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { addGroupMember } = useGroupSettingState();
// Add group members
await addGroupMember({
groupId: 'group_123',
userList: ['user_001', 'user_002']
});
deleteGroupMember
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { deleteGroupMember } = useGroupSettingState();
// Delete group members
await deleteGroupMember({
groupId: 'group_123',
userList: ['user_001'],
reason: 'Violated group rules'
});
changeGroupOwner
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { changeGroupOwner } = useGroupSettingState();
// Transfer group ownership
await changeGroupOwner({
groupId: 'group_123',
newOwnerUserId: 'user_456'
});
setGroupMemberRole
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { setGroupMemberRole } = useGroupSettingState();
// Set group member role (1: admin, 0: member)
await setGroupMemberRole({
groupId: 'group_123',
userId: 'user_456',
role: 1
});
setGroupMemberNameCard
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { setGroupMemberNameCard } = useGroupSettingState();
// Set group member name card
await setGroupMemberNameCard({
groupId: 'group_123',
userId: 'user_456',
nameCard: 'Team Leader'
});
setChatPinned
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { setChatPinned } = useGroupSettingState();
// Pin chat to top
await setChatPinned({
conversationId: 'C2C_user123',
isPinned: true
});
setChatMuted
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { setChatMuted } = useGroupSettingState();
// Mute chat notifications
await setChatMuted({
conversationId: 'C2C_user123',
isMuted: true
});
setGroupMemberMuteTime
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { setGroupMemberMuteTime } = useGroupSettingState();
// Mute group member for 10 minutes
await setGroupMemberMuteTime({
groupId: 'group_123',
userId: 'user_456',
muteTime: 600
});
setMuteAllMember
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { setMuteAllMember } = useGroupSettingState();
// Mute all group members
await setMuteAllMember({
groupId: 'group_123',
isMuted: true
});
dismissGroup
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { dismissGroup } = useGroupSettingState();
// Dismiss group
await dismissGroup({
groupId: 'group_123'
});
quitGroup
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { quitGroup } = useGroupSettingState();
// Quit group
await quitGroup({
groupId: 'group_123'
});
hasPermission
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { hasPermission } = useGroupSettingState();
// Check if user has permission
await hasPermission({
permission: 'kick_member'
});
canOperateOnMember
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { canOperateOnMember } = useGroupSettingState();
// Check if can operate on member
await canOperateOnMember({
targetUserId: 'user_456',
operation: 'mute'
});
getAvailablePermissions
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { getAvailablePermissions } = useGroupSettingState();
// Get available permissions for a user
await getAvailablePermissions({
userId: 'user_123'
});
initWatcher
Example
import { useGroupSettingState } from 'tuikit-atomicx-vue3';
const { initWatcher } = useGroupSettingState();
// Initialize group setting watcher
await initWatcher({
autoUpdate: true
});
VideoMixerState
🎬 Video Mixer Management Module
Core Features:managementvideomixstreamfunctions,supportsmultipleroutevideosynthesis、layoutmanagement、media sourcecontroletc.advancedvideohandlingfunctions。
Technical Features:supportsreal-timevideomixstream、dynamiclayoutadjust、media sourcemanagementetc.functions。AddedisVideoMixerEnabled、mediaSourceList、activeMediaSourceReactive DataandcompleteofmixstreamcontrolAPI。
Business Value:asliveplatformprovidesprofessionalofvideoproductioncapability,enhancelivequality。
Use Cases:multiplepersonlive、videoinvideo、videosynthesis、professionalproductionetc.scenarios。
Reactive Data
publishVideoQuality
Ref<any>
Example
const size = getSizeByResolution(TRTCVideoResolution.TRTCVideoResolution_1280_720);
console.log(size.width, size.height); // output: 1280, 720
isVideoMixerEnabled
Ref<any>
Example
import { useVideoMixerState } from 'tuikit-atomicx-vue3';
const { isVideoMixerEnabled } = useVideoMixerState();
// Watch for data changes
watch(isVideoMixerEnabled, (newValue) => {
console.log('isVideoMixerEnabled updated:', newValue);
});
// Access data directly
console.log('Current isVideoMixerEnabled:', isVideoMixerEnabled.value);
mediaSourceList
Ref<any>
Example
import { useVideoMixerState } from 'tuikit-atomicx-vue3';
const { mediaSourceList } = useVideoMixerState();
// Watch for data changes
watch(mediaSourceList, (newValue) => {
console.log('mediaSourceList updated:', newValue);
});
// Access data directly
console.log('Current mediaSourceList:', mediaSourceList.value);
activeMediaSource
Ref<any>
Example
import { useVideoMixerState } from 'tuikit-atomicx-vue3';
const { activeMediaSource } = useVideoMixerState();
// Watch for data changes
watch(activeMediaSource, (newValue) => {
console.log('activeMediaSource updated:', newValue);
});
// Access data directly
console.log('Current activeMediaSource:', activeMediaSource.value);
API Functions
getVideoDataByQuality
Example
import { useVideoMixerState } from 'tuikit-atomicx-vue3';
const { getVideoDataByQuality } = useVideoMixerState();
// Get video encoding parameters by quality
await getVideoDataByQuality({
quality: VideoQuality.HD720P
});
getSizeByQuality
Example
import { useVideoMixerState } from 'tuikit-atomicx-vue3';
const { getSizeByQuality } = useVideoMixerState();
// Get video size by quality
await getSizeByQuality({
quality: VideoQuality.HD720P
});
getSizeByResolution
Example
import { useVideoMixerState } from 'tuikit-atomicx-vue3';
const { getSizeByResolution } = useVideoMixerState();
// Get video size by resolution
await getSizeByResolution({
resolution: VideoResolution.Resolution_1280_720
});
transformTUIVideoQualityToTRTCVideoResolution
Example
import { useVideoMixerState } from 'tuikit-atomicx-vue3';
const { transformTUIVideoQualityToTRTCVideoResolution } = useVideoMixerState();
// Transform TUI video quality to TRTC resolution
await transformTUIVideoQualityToTRTCVideoResolution({
quality: VideoQuality.HD720P
});
transformTRTCVideoResolutionToTUIVideoQuality
Example
import { useVideoMixerState } from 'tuikit-atomicx-vue3';
const { transformTRTCVideoResolutionToTUIVideoQuality } = useVideoMixerState();
// Transform TRTC resolution to TUI video quality
await transformTRTCVideoResolutionToTUIVideoQuality({
resolution: TRTCVideoResolution.TRTCVideoResolution_1280_720
});
transformTRTCVideoResModeToTUIVideoResMode
Example
import { useVideoMixerState } from 'tuikit-atomicx-vue3';
const { transformTRTCVideoResModeToTUIVideoResMode } = useVideoMixerState();
// Transform TRTC resolution mode to TUI mode
await transformTRTCVideoResModeToTUIVideoResMode({
mode: TRTCVideoResMode.TRTCVideoResModeLandscape
});
changeActiveMediaSource
Example
import { useVideoMixerState } from 'tuikit-atomicx-vue3';
const { changeActiveMediaSource } = useVideoMixerState();
// Change active media source
await changeActiveMediaSource({
sourceId: 'camera_source_1'
});
updateVideoQuality
Example
import { useVideoMixerState } from 'tuikit-atomicx-vue3';
const { updateVideoQuality } = useVideoMixerState();
// Update video mixer quality
await updateVideoQuality({
quality: VideoQuality.HD1080P
});
getDefaultLayoutByMediaSource
Example
import { useVideoMixerState } from 'tuikit-atomicx-vue3';
const { getDefaultLayoutByMediaSource } = useVideoMixerState();
// Get default layout by media source type
await getDefaultLayoutByMediaSource({
sourceType: MediaSourceType.Camera
});
addMediaSource
Example
import { useVideoMixerState } from 'tuikit-atomicx-vue3';
const { addMediaSource } = useVideoMixerState();
// Add a camera media source
await addMediaSource({
sourceId: 'camera_source_1',
sourceType: 0,
sourceInfo: { deviceId: 'default' }
});
updateMediaSource
Example
import { useVideoMixerState } from 'tuikit-atomicx-vue3';
const { updateMediaSource } = useVideoMixerState();
// Update media source configuration
await updateMediaSource({
sourceId: 'camera_source_1',
sourceInfo: { x: 0, y: 0, width: 640, height: 480 }
});
removeMediaSource
Example
import { useVideoMixerState } from 'tuikit-atomicx-vue3';
const { removeMediaSource } = useVideoMixerState();
// Remove media source from mixer
await removeMediaSource({
sourceId: 'camera_source_1'
});
enableLocalVideoMixer
Example
import { useVideoMixerState } from 'tuikit-atomicx-vue3';
const { enableLocalVideoMixer } = useVideoMixerState();
// Enable local video mixer
await enableLocalVideoMixer({
enable: true
});
clearMediaSource
Example
// clearallmedia source
clearMediaSource();
initMediaSourceManager
Example
import { useVideoMixerState } from 'tuikit-atomicx-vue3';
const { initMediaSourceManager } = useVideoMixerState();
// Initialize media source manager
await initMediaSourceManager({
config: { maxSources: 4 }
});
initVideoMixerState
Example
import { useVideoMixerState } from 'tuikit-atomicx-vue3';
const { initVideoMixerState } = useVideoMixerState();
// Initialize video mixer state
await initVideoMixerState({
config: { defaultQuality: VideoQuality.HD720P }
});
VirtualBackgroundState
🖼️ Virtual Background Management Module
Core Features:managementvirtual backgroundfunctions,supportsbackgroundreplace、backgroundblur、custombackgroundetc.videobeautifyfunctions。
Technical Features:based onAItechnicalachievereal-timebackgroundsplitandreplace。AddedvirtualBackgroundConfigReactive DataandisSupported、setVirtualBackgroundAPI Functions。
Business Value:asuserprovidesprivacy protectionandvideobeautifyfunctions,enhancevideocallexperience。
Use Cases:videocall、inconnectionmeeting、livebeautify、privacy protectionetc.scenarios。
Reactive Data
virtualBackgroundConfig
Ref<any>
Example
import { useVirtualBackgroundState } from 'tuikit-atomicx-vue3';
const { virtualBackgroundConfig } = useVirtualBackgroundState();
// Watch for data changes
watch(virtualBackgroundConfig, (newValue) => {
console.log('virtualBackgroundConfig updated:', newValue);
});
// Access data directly
console.log('Current virtualBackgroundConfig:', virtualBackgroundConfig.value);
API Functions
initVirtualBackground
Example
import { useVirtualBackgroundState } from 'tuikit-atomicx-vue3';
const { initVirtualBackground } = useVirtualBackgroundState();
// Initialize virtual background
await initVirtualBackground({
config: { enabled: true, type: 'blur' }
});
saveVirtualBackground
Example
import { useVirtualBackgroundState } from 'tuikit-atomicx-vue3';
const { saveVirtualBackground } = useVirtualBackgroundState();
// Save virtual background configuration
await saveVirtualBackground({
config: { enabled: true, type: 'image', imageUrl: 'https://example.com/bg.jpg' }
});
isSupported
Example
import { useVirtualBackgroundState } from 'tuikit-atomicx-vue3';
const { isSupported } = useVirtualBackgroundState();
// Check if virtual background is supported
await isSupported({
feature: 'blur'
});
setVirtualBackground
Example
import { useVirtualBackgroundState } from 'tuikit-atomicx-vue3';
const { setVirtualBackground } = useVirtualBackgroundState();
// Set virtual background (0: none, 1: blur, 2: image)
await setVirtualBackground({
backgroundType: 1,
backgroundValue: ''
});
ASRState
🎙️ ASR (Automatic Speech Recognition) Management Module
Core Features:managementspeechrecognitionfunctions,supportsreal-timespeechconverttext、transcriptionhistorymanagement、transcriptionexportetc.functions。
Technical Features:based onadvancedofASRtechnical,supportsmultiplespeech recognition、real-timetranscription、historyrecordetc.functions。AddedrecentTranscripts、transcriptHistoryReactive DataandexportTranscriptsAPI。
Business Value:asuserprovidesspeechconverttextservices,enhancecommunicationefficiencyandcanaccessproperty。
Use Cases:meetingrecord、speechtranscription、nonebarriercommunication、contentrecordetc.scenarios。
Reactive Data
recentTranscripts
Ref<any>
Example
import { useASRState } from 'tuikit-atomicx-vue3';
const { recentTranscripts } = useASRState();
// Watch for data changes
watch(recentTranscripts, (newValue) => {
console.log('recentTranscripts updated:', newValue);
});
// Access data directly
console.log('Current recentTranscripts:', recentTranscripts.value);
transcriptHistory
Ref<any>
Example
import { useASRState } from 'tuikit-atomicx-vue3';
const { transcriptHistory } = useASRState();
// Watch for data changes
watch(transcriptHistory, (newValue) => {
console.log('transcriptHistory updated:', newValue);
});
// Access data directly
console.log('Current transcriptHistory:', transcriptHistory.value);
API Functions
setRecentTranscriptsDuration
Example
import { useASRState } from 'tuikit-atomicx-vue3';
const { setRecentTranscriptsDuration } = useASRState();
// Set recent transcripts duration (in seconds)
await setRecentTranscriptsDuration({
duration: 300
});
clearHistory
Example
import { useASRState } from 'tuikit-atomicx-vue3';
const { clearHistory, transcriptHistory } = useASRState();
// clearalltranscriptionrecord
clearHistory();
console.log('transcriptionrecordalreadyclear:', transcriptHistory.value.length === 0);
exportTranscripts
Example
import { useASRState } from 'tuikit-atomicx-vue3';
const { exportTranscripts } = useASRState();
// Export transcripts in txt format
await exportTranscripts({
format: 'txt',
timeRange: { start: 1700000000000, end: 1700003600000 }
});
SearchState
🔍 SearchfunctionsManagement Module
Core Features:managementfulllayoutSearchfunctions,supportsmessageSearch、userSearch、groupSearchetc.multipledimensiondegreeSearchcapability。
Technical Features:supportsadvancedSearch、Searchhistory、Searchsuggestionetc.functions。refactorReactive Dataaskeyword、results、isLoadingetc.standardizationfield,providescompleteofSearchAPI。
Business Value:asuserprovidesquickfindinformationofcapability,enhanceuseefficiency。
Use Cases:messageSearch、contactSearch、contentfind、historyrecordetc.scenarios。
Reactive Data
keyword
Ref<any>
Example
import { useSearchState } from 'tuikit-atomicx-vue3';
const { keyword } = useSearchState();
// Watch for data changes
watch(keyword, (newValue) => {
console.log('keyword updated:', newValue);
});
// Access data directly
console.log('Current keyword:', keyword.value);
results
Ref<any>
Example
import { useSearchState } from 'tuikit-atomicx-vue3';
const { results } = useSearchState();
// Watch for data changes
watch(results, (newValue) => {
console.log('results updated:', newValue);
});
// Access data directly
console.log('Current results:', results.value);
isLoading
Ref<any>
Example
import { useSearchState } from 'tuikit-atomicx-vue3';
const { isLoading } = useSearchState();
// Watch for data changes
watch(isLoading, (newValue) => {
console.log('isLoading updated:', newValue);
});
// Access data directly
console.log('Current isLoading:', isLoading.value);
error
Ref<any>
Example
import { useSearchState } from 'tuikit-atomicx-vue3';
const { error } = useSearchState();
// Watch for data changes
watch(error, (newValue) => {
console.log('error updated:', newValue);
});
// Access data directly
console.log('Current error:', error.value);
searchAdvancedParams
Ref<any>
Example
import { useSearchState } from 'tuikit-atomicx-vue3';
const { searchAdvancedParams } = useSearchState();
// Watch for data changes
watch(searchAdvancedParams, (newValue) => {
console.log('searchAdvancedParams updated:', newValue);
});
// Access data directly
console.log('Current searchAdvancedParams:', searchAdvancedParams.value);
selectedSearchType
Ref<any>
Example
import { useSearchState } from 'tuikit-atomicx-vue3';
const { selectedSearchType } = useSearchState();
// Watch for data changes
watch(selectedSearchType, (newValue) => {
console.log('selectedSearchType updated:', newValue);
});
// Access data directly
console.log('Current selectedSearchType:', selectedSearchType.value);
API Functions
search
Example
import { useSearchState } from 'tuikit-atomicx-vue3';
const { search } = useSearchState();
// Search for messages
await search({
keyword: 'meeting',
type: SearchType.Message
});
setKeyword
Example
import { useSearchState } from 'tuikit-atomicx-vue3';
const { setKeyword } = useSearchState();
// Set search keyword
await setKeyword({
keyword: 'hello'
});
setSelectedType
Example
import { useSearchState } from 'tuikit-atomicx-vue3';
const { setSelectedType } = useSearchState();
// Set selected search type
await setSelectedType({
searchType: 'message'
});
setSearchMessageAdvancedParams
Example
import { useSearchState } from 'tuikit-atomicx-vue3';
const { setSearchMessageAdvancedParams } = useSearchState();
// Set message search advanced params
await setSearchMessageAdvancedParams({
conversationId: 'C2C_user123',
timeRange: { start: 1700000000000, end: 1700003600000 },
senderList: ['user_001', 'user_002']
});
setSearchUserAdvancedParams
Example
import { useSearchState } from 'tuikit-atomicx-vue3';
const { setSearchUserAdvancedParams } = useSearchState();
// Set user search advanced params
await setSearchUserAdvancedParams({
userType: 'friend',
isOnline: true
});
setSearchGroupAdvancedParams
Example
import { useSearchState } from 'tuikit-atomicx-vue3';
const { setSearchGroupAdvancedParams } = useSearchState();
// Set group search advanced params
await setSearchGroupAdvancedParams({
groupType: 'Public',
memberCountRange: { min: 10, max: 100 }
});
loadMore
Example
import { useSearchState } from 'tuikit-atomicx-vue3';
const { loadMore } = useSearchState();
// Load more search results
await loadMore({
cursor: 'next_page_cursor',
count: 20
});
SeatStore
🪑 seatstoreManagement Module
Core Features:providesseatstatusofunderlyingstoreandmanagement,supportsseatinformationcache、User info map、devicerequesthandlingetc.Core Features。
Technical Features:usesreactivestoredesign,supportsreal-timestatussync、event-drivenactionupdateetc.functions。AddedliveOwnerUserId、localUserId、seatListetc.Reactive DataandgetUserInfo、convertUserInfoToAudienceInfoAPI。
Business Value:asseatmanagementprovidescanrelyofdatabasic,ensureseatstatusofconsistency。
Use Cases:seatstatusmanagement、userinformationstore、devicestatustracketc.underlyingscenarios。
Reactive Data
liveOwnerUserId
Ref<any>
Example
import { useSeatStore } from 'tuikit-atomicx-vue3';
const { liveOwnerUserId } = useSeatStore();
// Watch for data changes
watch(liveOwnerUserId, (newValue) => {
console.log('liveOwnerUserId updated:', newValue);
});
// Access data directly
console.log('Current liveOwnerUserId:', liveOwnerUserId.value);
localUserId
Ref<any>
Example
import { useSeatStore } from 'tuikit-atomicx-vue3';
const { localUserId } = useSeatStore();
// Watch for data changes
watch(localUserId, (newValue) => {
console.log('localUserId updated:', newValue);
});
// Access data directly
console.log('Current localUserId:', localUserId.value);
seatList
Ref<any>
Example
import { useSeatStore } from 'tuikit-atomicx-vue3';
const { seatList } = useSeatStore();
// Watch for data changes
watch(seatList, (newValue) => {
console.log('seatList updated:', newValue);
});
// Access data directly
console.log('Current seatList:', seatList.value);
coHostUserList
Ref<any>
Example
import { useSeatStore } from 'tuikit-atomicx-vue3';
const { coHostUserList } = useSeatStore();
// Watch for data changes
watch(coHostUserList, (newValue) => {
console.log('coHostUserList updated:', newValue);
});
// Access data directly
console.log('Current coHostUserList:', coHostUserList.value);
sentDeviceRequestMap
Ref<any>
Example
import { useSeatStore } from 'tuikit-atomicx-vue3';
const { sentDeviceRequestMap } = useSeatStore();
// Watch for data changes
watch(sentDeviceRequestMap, (newValue) => {
console.log('sentDeviceRequestMap updated:', newValue);
});
// Access data directly
console.log('Current sentDeviceRequestMap:', sentDeviceRequestMap.value);
receivedDeviceRequestMap
Ref<any>
Example
import { useSeatStore } from 'tuikit-atomicx-vue3';
const { receivedDeviceRequestMap } = useSeatStore();
// Watch for data changes
watch(receivedDeviceRequestMap, (newValue) => {
console.log('receivedDeviceRequestMap updated:', newValue);
});
// Access data directly
console.log('Current receivedDeviceRequestMap:', receivedDeviceRequestMap.value);
userInfoMap
Ref<any>
Example
import { useSeatStore } from 'tuikit-atomicx-vue3';
const { userInfoMap } = useSeatStore();
// Watch for data changes
watch(userInfoMap, (newValue) => {
console.log('userInfoMap updated:', newValue);
});
// Access data directly
console.log('Current userInfoMap:', userInfoMap.value);
API Functions
getUserInfo
Example
import { useSeatStore } from 'tuikit-atomicx-vue3';
const { getUserInfo } = useSeatStore();
// Get user info by userId
await getUserInfo({
userId: 'user_123'
});
convertUserInfoToAudienceInfo
Example
import { useSeatStore } from 'tuikit-atomicx-vue3';
const { convertUserInfoToAudienceInfo } = useSeatStore();
// Convert user info to audience info format
await convertUserInfoToAudienceInfo({
userInfo: { userId: 'user_123', nickName: 'John', avatar: 'https://example.com/avatar.png' }
});