Global State
ClassroomState provides reactive Signal properties (suffixed with $). Subscribe via classroom.state.xxx$.subscribe().
Usage
typescript
classroom.state.classStatus$.subscribe(status => {
console.log('Class status:', status);
});
const currentStatus = classroom.state.classStatus$.get();All States
| Signal | Type | Description |
|---|---|---|
askStageList$ | ReadonlySignal<MemberInfo[]> | Ask-stage request list (teacher side; from askStage signal queue). |
askStageStatus$ | ReadonlySignal<AskStageStatus> | Current user's ask-stage status (askStage flow; student side). |
autoPlayFailed$ | ReadonlySignal<boolean> | Whether autoplay was blocked by the browser (true=blocked; user interaction needed to resume). |
beautyEnabled$ | ReadonlySignal<boolean> | Whether beauty effects are enabled (true when any parameter is > 0). |
beautyParam$ | ReadonlySignal<TBeautyParam> | Current beauty parameters (whiten / lift / eye; range 0-100). |
boardPermission$ | ReadonlySignal<boolean> | Whiteboard permission |
boardReady$ | ReadonlySignal<boolean> | Whether the whiteboard is ready (operable). |
boardStatus$ | ReadonlySignal<BoardStatus> | Detailed whiteboard status (BoardStatus enum). |
boardToolExpand$ | ReadonlySignal<boolean> | Whiteboard toolbar expand/collapse state (controlled by UIKit). |
cameraDeviceStatus$ | ReadonlySignal<DeviceStatus> | Camera device status (DeviceStatus enum) |
cameraList$ | ReadonlySignal<TDeviceInfo[]> | Camera device list |
cameraPermission$ | ReadonlySignal<boolean> | Camera permission |
chatPermission$ | ReadonlySignal<boolean> | Chat send permission |
classDuration$ | ReadonlySignal<number> | Class duration in seconds (server-time calibrated). |
classDurationCalibrated$ | ReadonlySignal<number> | Server-time calibrated class duration in seconds (same as classDuration$ but more explicit). |
classId$ | ReadonlySignal<number> | Current classroom ID |
classInfo$ | ReadonlySignal<ClassInfo | null> | Full classroom info (available after joinClass, null after leaveClass). |
classInfoReady$ | ReadonlySignal<boolean> | Whether class info has been loaded |
classLayout$ | ReadonlySignal<ClassLayout> | Current classroom layout type. |
classStatus$ | ReadonlySignal<ClassStatus> | Classroom status: 'notStarted' |
classVisible$ | ReadonlySignal<boolean> | Whether the classroom page is currently visible (based on Page Visibility API). |
config$ | ReadonlySignal<Readonly<ClassroomConfig>> | Current SDK config (auto-syncs when setConfig() is called; subscribable). |
currentCameraId$ | ReadonlySignal<string> | Currently selected camera device ID |
currentMicId$ | ReadonlySignal<string> | Currently selected microphone device ID |
currentQuizId$ | ReadonlySignal<string> | Active quiz ID (set when quiz is active) |
currentRole$ | ReadonlySignal<Role> | Current user role (written after joinClass). |
currentSpeakerId$ | ReadonlySignal<string> | Currently selected speaker device ID |
deviceOrientation$ | ReadonlySignal<"portrait" | "landscape"> | Device orientation (mobile). |
enableStage$ | ReadonlySignal<boolean> | Whether the hand-raise stage feature is enabled |
globalNetworkStatus$ | ReadonlySignal<GlobalNetworkStatus> | IM / Board / API,含 needStrongAlert 强提示标志)。 |
handUpList$ | ReadonlySignal<MemberInfo[]> | Hand-up list (students requesting to go on stage; used on teacher side). |
handUpTips$ | ReadonlySignal<boolean> | Whether the hand-up tip overlay is visible (auto-hides after 3 seconds). |
imAvailable$ | ReadonlySignal<boolean> | Whether IM is connected and available |
inviteStageStatus$ | ReadonlySignal<"idle" | "rejected" | "inviting" | "invited" | "accepted"> | Teacher-initiated invite-stage status (inviteStage flow). |
joinedClass$ | ReadonlySignal<boolean> | Whether joinClass completed. |
joinProgress$ | ReadonlySignal<JoinProgress> | Join flow phase (JoinProgress enum) — use it to drive join loading UI. |
joinQuitTips$ | ReadonlySignal<boolean> | Whether the member join/quit tips UI is visible (triggered by ImModule; consumed by UIKit). |
likeCount$ | ReadonlySignal<number> | Cumulative like count |
marqueeConfig$ | ReadonlySignal<MarqueeConfig | null> | Current marquee config (null if not configured). |
memberCount$ | ReadonlySignal<number> | Total online member count |
memberList$ | ReadonlySignal<MemberInfo[]> | Member list (array view of memberMap) |
memberListOfflineCount$ | ReadonlySignal<number> | Offline member count |
memberListPageCount$ | ReadonlySignal<number> | Number of member list pages loaded |
memberListTotalCount$ | ReadonlySignal<number> | Total member count (including offline) |
memberMap$ | ReadonlySignal<Map<string, MemberInfo>> | All members Map (single source of truth; key=userId, value=MemberInfo). |
messageFilter$ | ReadonlySignal<MessageFilterType> | Message list filter type (controls which messages appear in messageList$). |
messageList$ | ReadonlySignal<Message[]> | Chat message list (includes history after join; new messages appended in real time). |
messageUnreadCount$ | ReadonlySignal<number> | Unread message count (resets to 0 after calling markAllMessagesAsRead/markMessageAsRead). |
micDeviceStatus$ | ReadonlySignal<DeviceStatus> | Microphone device status (DeviceStatus enum) |
micList$ | ReadonlySignal<TDeviceInfo[]> | Microphone device list |
micPermission$ | ReadonlySignal<boolean> | Microphone permission |
musicPlayStatus$ | ReadonlySignal<MusicPlayStatus> | Background music play status. |
muteAll$ | ReadonlySignal<boolean> | Whether all-mute audio is active |
muteVideoAll$ | ReadonlySignal<boolean> | Whether all-video-mute is active |
myHandUpStatus$ | ReadonlySignal<boolean> | Whether the current user has raised their hand |
networkQuality$ | ReadonlySignal<NetworkQuality> | Upload and download network quality (uplink/downlink; 0-5, lower is better). |
networkQualityLevel$ | ReadonlySignal<NetworkQualityLevel> | Overall network quality level (NetworkQualityLevel enum; 0=unknown, 1=excellent, 5=very bad). |
oneToOneStudentVideoHidden$ | ReadonlySignal<boolean> | Whether the student's video is hidden by the teacher in a 1v1 classroom. |
packageFeatures$ | ReadonlySignal<PackageFeatureConfig> | Current package feature config (maxMembers, enableBeauty, enableSubtitle, etc.). |
packageType$ | ReadonlySignal<PackageType> | Current package type (PackageType enum: 0=Default...5=Enterprise). |
quickReplyWords$ | ReadonlySignal<string[]> | Quick reply words list (from class config) |
quizAnswerCount$ | ReadonlySignal<number> | Number of answers submitted for current quiz |
quizStatus$ | ReadonlySignal<"idle" | "active" | "closed"> | Quiz status: 'idle' |
schoolId$ | ReadonlySignal<number> | School ID |
schoolInfo$ | ReadonlySignal<SchoolInfo | null> | School info (written after joinClass; includes sdkAppId, package type, feature whitelist, etc.). |
schoolInfoReady$ | ReadonlySignal<boolean> | Whether school info has been loaded |
screenSharePermission$ | ReadonlySignal<number> | Screen share permission (numeric, NOT boolean). |
screenShareStatus$ | ReadonlySignal<ScreenShareStatus> | Screen share status. |
sdkAppId$ | ReadonlySignal<number> | TRTC SDK AppID / TRTC SDK AppID |
silenceMode$ | ReadonlySignal<SilenceMode> | Current chat silence mode. |
speakerList$ | ReadonlySignal<TDeviceInfo[]> | Speaker device list |
stageCount$ | ReadonlySignal<number> | Number of members on stage |
stageList$ | ReadonlySignal<MemberInfo[]> | Members currently on stage |
stageLoopEnabled$ | ReadonlySignal<boolean> | Whether stage loop is active |
stageStatus$ | ReadonlySignal<StageStatus> | Current user's stage status. |
streamList$ | ReadonlySignal<LiveStreamInfo[]> | Current classroom live stream list (read-only). |
subCameraEnabled$ | ReadonlySignal<boolean> | Whether sub-camera is enabled (mobile second video) |
subtitleEnabled$ | ReadonlySignal<boolean> | Whether subtitle transcription is active |
subtitleTranscriptionUserIds$ | ReadonlySignal<string[]> | List of user IDs currently being transcribed. |
taskList$ | ReadonlySignal<TaskInfo[]> | Current classroom task list (quiz/timer, etc.; written by ClassModule). |
userId$ | ReadonlySignal<string> | Current user ID (written on joinClass) |
videoPublishUserList$ | ReadonlySignal<string[]> | List of user IDs currently publishing video streams (from TRTC). |
virtualBgConfig$ | ReadonlySignal<TVirtualBackgroundParam | null> | Current virtual background config; null when not active. |
vodCurrentTime$ | ReadonlySignal<number> | VOD current playback position in seconds (throttled at 200ms). |
vodDuration$ | ReadonlySignal<number> | VOD total duration in seconds |
vodPlayStatus$ | ReadonlySignal<VodPlayStatus> | VOD video play status. |
waitStageUserId$ | ReadonlySignal<string> | Most recently staged user ID (for UI animation) |
watermarkConfig$ | ReadonlySignal<WatermarkConfig | null> | Current watermark config (null if not configured). |