UNPKG

fcr-core

Version:

Core APIs for building online scenes

73 lines (72 loc) 3.29 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.addBoardInitInfoObserver = addBoardInitInfoObserver; var _imports = require("../../imports"); var _error = require("../../utilities/error"); var _sceneProperties = require("../../utilities/scene-properties"); var _sharedStorage = require("../../utilities/shared-storage"); async function _getAnnotationToken(api, roomId, userId) { return await (0, _error.handleRequestError)(() => api.getAnnotationToken({ roomId, userId }), _imports.ErrorModuleCode.FCR_ROOM_WHITEBOARD, 'get whiteboard token failed'); } async function _getBoardToken(api, roomId, userId) { return await (0, _error.handleRequestError)(() => api.getWhiteboardToken({ roomId, userId }), _imports.ErrorModuleCode.FCR_ROOM_WHITEBOARD, 'get whiteboard token failed'); } async function initAnnotationInfo(scene, api, logger) { const roomId = scene.sceneId; const userId = scene.localUser.getLocalUserId(); const boardToken = (await _getAnnotationToken(api, roomId, userId)).data; if (!boardToken) { logger.error(`get annotation board options failed, roomId: ${roomId}, userId: ${userId}, boardOptions: ${(0, _imports.jsonstring)(boardToken)}`); } else { const boardOptions = { ...boardToken, boardPerformance: (0, _sceneProperties.getBoardPerformance)(scene) }; logger.info(`get annotation board options success, roomId: ${roomId}, userId: ${userId}, boardOptions: ${(0, _imports.jsonstring)(boardOptions)}`); (0, _sharedStorage.setAnnotationBoardOptions)(boardOptions); } } async function initBoardInfo(scene, api, logger) { const roomId = scene.sceneId; const userId = scene.localUser.getLocalUserId(); const boardToken = (await _getBoardToken(api, roomId, userId)).data; if (!boardToken) { logger.error(`get whiteboard options failed, roomId: ${roomId}, userId: ${userId}, boardToken: ${(0, _imports.jsonstring)(boardToken)}`); } else { const boardOptions = { ...boardToken, boardPerformance: (0, _sceneProperties.getBoardPerformance)(scene) }; logger.info(`get whiteboard options success, roomId: ${roomId}, userId: ${userId}, boardOptions: ${(0, _imports.jsonstring)(boardOptions)}`); (0, _sharedStorage.setWhiteboardOptions)(boardOptions); } } function addBoardInitInfoObserver(scene, api, logger) { scene.addObserver({ onScenePropertiesUpdated: (_sceneId, event) => { const annotationBoardAppId = (0, _imports.get)(event.changedProperties, 'widgets.annotation.extra.boardAppId'); if (annotationBoardAppId) { logger.info('widgets.annotation.extra.boardAppId updated, re-initializing annotation info'); initAnnotationInfo(scene, api, logger); } const whiteboardBoardAppId = (0, _imports.get)(event.changedProperties, 'widgets.netlessBoard.extra.boardAppId'); if (whiteboardBoardAppId) { logger.info('widgets.netlessBoard.extra.boardAppId updated, re-initializing whiteboard info'); initBoardInfo(scene, api, logger); } }, onJoinSceneSuccess: () => { logger.info('join scene success, re-initializing annotation and whiteboard info'); initAnnotationInfo(scene, api, logger); initBoardInfo(scene, api, logger); } }); }