UNPKG

agora-classroom-sdk

Version:

For publishing npm package agora-classroom-sdk (Web & Electron). Get more information from https://docs.agora.io

150 lines (149 loc) 4.15 kB
import { WindowID } from '@classroom/infra/api'; import { AGError, Logger } from 'agora-rte-sdk'; import { ConfirmDialogAction, OrientationEnum } from '../type'; export declare enum DialogCategory { CloudDriver = 0, Roster = 1, LectureRoster = 2, KickOut = 3, ErrorGeneric = 4, Confirm = 5, DeviceSetting = 6, ScreenPicker = 7, BreakoutRoom = 8, Quit = 9, ScreenShare = 10, RemoteControlConfirm = 11, VideoGallery = 12, InvitePodium = 13, InviteConfirm = 14 } export interface ToastType { id: string; desc: string; type?: ToastTypeEnum; } export declare type ToastTypeEnum = 'success' | 'error' | 'warning' | 'info' | 'normal'; export interface DialogType { id: string; category: DialogCategory; props?: unknown; } export declare class EduShareUIStore { protected readonly logger: Logger; readonly classroomViewportClassName = "classroom-viewport"; readonly classroomViewportTransitionDuration = 300; readonly navHeight = 27; private _viewportAspectRatio; private _classroomMinimumSize; private _containerNode; private _matchMedia; private _resizeEventListenerAdded; /** * 教室UI布局完毕 */ layoutReady: boolean; /** * 模态框列表 */ dialogQueue: DialogType[]; /** * Toast 列表 */ toastQueue: ToastType[]; /** * 视口尺寸信息 */ classroomViewportSize: { width: number; height: number; h5Width?: number; h5Height?: number; }; orientation: OrientationEnum; forceLandscape: boolean; get isLandscape(): boolean; setForceLandscape(forceLandscape: boolean): void; /** * 添加一条 单例 Toast 信息 * @param desc * @returns */ addSingletonToast(desc: string, type: ToastTypeEnum): string; /** * 显示一条 Toast 信息 * @param desc * @param type * @returns */ addToast(desc: string, type?: ToastTypeEnum): string; /** * 移除 Toast 信息 * @param id * @returns */ removeToast(id: string): string; /** * 显示错误提示模态框 * @param error * @param opts */ addGenericErrorDialog(error: AGError, opts?: { onOK?: () => void; okBtnText?: string; }): void; /** * 显示确认模态框 * @param title * @param content * @param onOK * @param actions * @param onCancel */ addConfirmDialog(title: string, content: string, { onOK, actions, onCancel, btnText, timeout, }?: { onOK?: () => void; actions?: ConfirmDialogAction[]; onCancel?: () => void; btnText?: Record<ConfirmDialogAction, string>; timeout?: number; }): string; /** * 显示模态框 * @param category * @param props * @returns */ addDialog(category: DialogCategory, props?: any): any; /** * 移除模态框 * @param id */ removeDialog(id: string): void; /** Actions */ /** * 更新教室视口尺寸信息 */ updateClassroomViewportSize(): void; handleOrientationchange(): void; /** 设置 Resize 事件处理器 */ addWindowResizeEventListener(): void; /** * 移除 Resize 事件处理器 */ removeWindowResizeEventListener(): void; addOrientationchange(): void; removeOrientationchange(): void; showWindow(windowID: WindowID): void; hideWindow(windowID: WindowID): void; openWindow(windowID: WindowID, payload: { args?: Record<string, string | number | boolean>; options?: Record<string, string | number | boolean>; }): void; moveWindowToTargetScreen(windowID: WindowID, screenId: string, options: Record<string, string | number | boolean>): void; moveWindowAlignToWindow(windowID: WindowID, windowIDAlignTo: WindowID, options: Record<string, string | number | boolean>): void; closeWindow(windowID: WindowID): void; addViewportResizeObserver(callback: () => void): ResizeObserver; setLayoutReady(ready: boolean): void; }