UNPKG

@pano.video/panortc-react-native-sdk

Version:
160 lines (127 loc) 4.34 kB
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } import React, { Component } from 'react'; import { requireNativeComponent, UIManager, findNodeHandle, NativeEventEmitter, NativeModules } from 'react-native'; const { /** * @ignore */ PanoRtcSurfaceViewEventEmitter, PanoRtcWhiteboardSurfaceViewEventEmitter } = NativeModules; /** * @ignore */ const SurfaceViewPrefix = PanoRtcSurfaceViewEventEmitter.prefix; const WhiteboardViewPrefix = PanoRtcWhiteboardSurfaceViewEventEmitter.prefix; /** * @ignore */ const RtcSurfaceViewEmitter = new NativeEventEmitter(PanoRtcSurfaceViewEventEmitter); const RtcWhiteboardSurfaceViewEmitter = new NativeEventEmitter(PanoRtcWhiteboardSurfaceViewEventEmitter); /** * @ignore */ const RCTRtcWhiteboardSurfaceView = requireNativeComponent('RCTPanoRtcWhiteboardSurfaceView'); /** * @ignore */ const RCTRtcSurfaceView = requireNativeComponent('RCTPanoRtcSurfaceView'); /** * @ignore */ export class RtcSurfaceView extends Component { constructor(...args) { super(...args); _defineProperty(this, "_nextRequestId", 1); _defineProperty(this, "_requestMap", new Map()); _defineProperty(this, "subscription", RtcSurfaceViewEmitter.addListener(SurfaceViewPrefix + 'onResultReturned', event => { let { reactTag, requestId, result, error } = event; if (reactTag != findNodeHandle(this)) { return; } let promise = this._requestMap.get(requestId); if (result != null) { // If it was successful, we resolve the promise. promise.resolve(result); } else { // Otherwise, we reject it. promise.reject(error); } // Finally, we clean up our request map. this._requestMap.delete(requestId); })); } componentWillUnmount() { this.subscription.remove(); } _callMethod(method, args) { let requestId = this._nextRequestId++; let requestMap = this._requestMap; // We create a promise here that will be resolved once _onRequestDone is // called. let promise = new Promise((resolve, reject) => { requestMap.set(requestId, { resolve: resolve, reject: reject }); }); UIManager.dispatchViewManagerCommand(findNodeHandle(this), UIManager.getViewManagerConfig('RCTPanoRtcSurfaceView').Commands.callMethod, [method, requestId, args]); return promise; } render() { return /*#__PURE__*/React.createElement(RCTRtcSurfaceView, this.props); } } /** * @ignore */ export class RtcWhiteboardSurfaceView extends Component { constructor(...args) { super(...args); _defineProperty(this, "_nextRequestId", 1); _defineProperty(this, "_requestMap", new Map()); _defineProperty(this, "subscription", RtcWhiteboardSurfaceViewEmitter.addListener(WhiteboardViewPrefix + 'onResultReturned', event => { let { reactTag, requestId, result, error } = event; if (reactTag != findNodeHandle(this)) { return; } let promise = this._requestMap.get(requestId); if (result != null) { // If it was successful, we resolve the promise. promise.resolve(result); } else { // Otherwise, we reject it. promise.reject(error); } // Finally, we clean up our request map. this._requestMap.delete(requestId); })); } componentWillUnmount() { this.subscription.remove(); } _callMethod(method, args) { let requestId = this._nextRequestId++; let requestMap = this._requestMap; // We create a promise here that will be resolved once _onRequestDone is // called. let promise = new Promise((resolve, reject) => { requestMap.set(requestId, { resolve: resolve, reject: reject }); }); UIManager.dispatchViewManagerCommand(findNodeHandle(this), UIManager.getViewManagerConfig('RCTPanoRtcWhiteboardSurfaceView').Commands.callMethod, [method, requestId, args]); return promise; } render() { return /*#__PURE__*/React.createElement(RCTRtcWhiteboardSurfaceView, this.props); } } //# sourceMappingURL=RtcRenderView.native.js.map