@pano.video/panortc-react-native-sdk
Version:
PanoRtc SDK For React Native
182 lines (136 loc) • 5.69 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.RtcWhiteboardSurfaceView = exports.RtcSurfaceView = void 0;
var _react = _interopRequireWildcard(require("react"));
var _reactNative = require("react-native");
function _getRequireWildcardCache() { if (typeof WeakMap !== "function") return null; var cache = new WeakMap(); _getRequireWildcardCache = function () { return cache; }; return cache; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
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; }
const {
/**
* @ignore
*/
PanoRtcSurfaceViewEventEmitter,
PanoRtcWhiteboardSurfaceViewEventEmitter
} = _reactNative.NativeModules;
/**
* @ignore
*/
const SurfaceViewPrefix = PanoRtcSurfaceViewEventEmitter.prefix;
const WhiteboardViewPrefix = PanoRtcWhiteboardSurfaceViewEventEmitter.prefix;
/**
* @ignore
*/
const RtcSurfaceViewEmitter = new _reactNative.NativeEventEmitter(PanoRtcSurfaceViewEventEmitter);
const RtcWhiteboardSurfaceViewEmitter = new _reactNative.NativeEventEmitter(PanoRtcWhiteboardSurfaceViewEventEmitter);
/**
* @ignore
*/
const RCTRtcWhiteboardSurfaceView = (0, _reactNative.requireNativeComponent)('RCTPanoRtcWhiteboardSurfaceView');
/**
* @ignore
*/
const RCTRtcSurfaceView = (0, _reactNative.requireNativeComponent)('RCTPanoRtcSurfaceView');
/**
* @ignore
*/
class RtcSurfaceView extends _react.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 != (0, _reactNative.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
});
});
_reactNative.UIManager.dispatchViewManagerCommand((0, _reactNative.findNodeHandle)(this), _reactNative.UIManager.getViewManagerConfig('RCTPanoRtcSurfaceView').Commands.callMethod, [method, requestId, args]);
return promise;
}
render() {
return /*#__PURE__*/_react.default.createElement(RCTRtcSurfaceView, this.props);
}
}
/**
* @ignore
*/
exports.RtcSurfaceView = RtcSurfaceView;
class RtcWhiteboardSurfaceView extends _react.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 != (0, _reactNative.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
});
});
_reactNative.UIManager.dispatchViewManagerCommand((0, _reactNative.findNodeHandle)(this), _reactNative.UIManager.getViewManagerConfig('RCTPanoRtcWhiteboardSurfaceView').Commands.callMethod, [method, requestId, args]);
return promise;
}
render() {
return /*#__PURE__*/_react.default.createElement(RCTRtcWhiteboardSurfaceView, this.props);
}
}
exports.RtcWhiteboardSurfaceView = RtcWhiteboardSurfaceView;
//# sourceMappingURL=RtcRenderView.native.js.map
;