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
TypeScript
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;
}