UNPKG

amazon-ivs-react-native-broadcast

Version:

A React Native wrapper for the Amazon IVS iOS and Android broadcast SDKs

229 lines (194 loc) 9.36 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getCommandIdByPlatform = exports.default = exports.NATIVE_VIEW_NAME = void 0; var _react = _interopRequireWildcard(require("react")); var _reactNative = require("react-native"); var _IVSBroadcastCameraView = require("./IVSBroadcastCameraView.types"); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && 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 _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } const isNumber = value => typeof value === 'number'; const UNKNOWN = 'unknown'; const NATIVE_VIEW_NAME = 'RCTIVSBroadcastCameraView'; exports.NATIVE_VIEW_NAME = NATIVE_VIEW_NAME; const NATIVE_SIDE_COMMANDS = _reactNative.UIManager.getViewManagerConfig(NATIVE_VIEW_NAME).Commands; const RCTIVSBroadcastCameraView = (0, _reactNative.requireNativeComponent)(NATIVE_VIEW_NAME); const getCommandIdByPlatform = command => { switch (_reactNative.Platform.OS) { case 'android': { return command; } case 'ios': { return NATIVE_SIDE_COMMANDS[command]; } default: { return ''; } } }; exports.getCommandIdByPlatform = getCommandIdByPlatform; const IVSBroadcastCameraView = /*#__PURE__*/(0, _react.forwardRef)((props, parentRef) => { const { onError, onBroadcastError, onIsBroadcastReady, onBroadcastAudioStats, onBroadcastStateChanged, onBroadcastQualityChanged, onNetworkHealthChanged, onTransmissionStatisticsChanged, onAudioSessionInterrupted, onAudioSessionResumed, onMediaServicesWereLost, onMediaServicesWereReset, isMuted = false, isCameraPreviewMirrored = false, cameraPosition = 'back', cameraPreviewAspectMode = 'none', logLevel = 'error', sessionLogLevel = 'error', ...restProps } = props; const nativeViewRef = (0, _react.useRef)(null); (0, _react.useImperativeHandle)(parentRef, () => { const reactTag = (0, _reactNative.findNodeHandle)(nativeViewRef.current); const dispatchViewManagerCommand = function (command) { for (var _len = arguments.length, params = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { params[_key - 1] = arguments[_key]; } return _reactNative.UIManager.dispatchViewManagerCommand(reactTag, getCommandIdByPlatform(command), params !== null && params !== void 0 ? params : []); }; return { start: function () { let options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {}; return dispatchViewManagerCommand(_IVSBroadcastCameraView.Command.Start, options); }, stop: () => dispatchViewManagerCommand(_IVSBroadcastCameraView.Command.Stop), /** * @deprecated in favor of {@link cameraPosition} */ swapCamera: () => dispatchViewManagerCommand(_IVSBroadcastCameraView.Command.SwapCamera) }; }, []); const onErrorHandler = _ref => { let { nativeEvent } = _ref; return onError === null || onError === void 0 ? void 0 : onError(nativeEvent.message); }; const onBroadcastErrorHandler = _ref2 => { var _String; let { nativeEvent } = _ref2; const { code, type, detail, source, isFatal, sessionId } = nativeEvent.exception; onBroadcastError === null || onBroadcastError === void 0 ? void 0 : onBroadcastError({ code: (_String = String(code)) !== null && _String !== void 0 ? _String : UNKNOWN, type: type !== null && type !== void 0 ? type : UNKNOWN, source: source !== null && source !== void 0 ? source : UNKNOWN, detail: detail !== null && detail !== void 0 ? detail : '', isFatal: !!isFatal, sessionId: sessionId !== null && sessionId !== void 0 ? sessionId : UNKNOWN }); }; const onIsBroadcastReadyHandler = _ref3 => { let { nativeEvent } = _ref3; return onIsBroadcastReady === null || onIsBroadcastReady === void 0 ? void 0 : onIsBroadcastReady(nativeEvent.isReady); }; const onBroadcastAudioStatsHandler = _ref4 => { let { nativeEvent } = _ref4; return onBroadcastAudioStats === null || onBroadcastAudioStats === void 0 ? void 0 : onBroadcastAudioStats(nativeEvent.audioStats); }; const onBroadcastStateChangedHandler = _ref5 => { let { nativeEvent } = _ref5; const { stateStatus: incomingStateStatus, metadata } = nativeEvent; const outcomingStateStatus = isNumber(incomingStateStatus) ? _IVSBroadcastCameraView.StateStatusEnum[incomingStateStatus] : incomingStateStatus; onBroadcastStateChanged === null || onBroadcastStateChanged === void 0 ? void 0 : onBroadcastStateChanged(outcomingStateStatus, metadata); }; /** * @deprecated in favor of {@link onTransmissionStatisticsChangedHandler} */ const onNetworkHealthChangedHandler = _ref6 => { let { nativeEvent } = _ref6; return onNetworkHealthChanged === null || onNetworkHealthChanged === void 0 ? void 0 : onNetworkHealthChanged(nativeEvent.networkHealth); }; /** * @deprecated in favor of {@link onTransmissionStatisticsChangedHandler} */ const onBroadcastQualityChangedHandler = _ref7 => { let { nativeEvent } = _ref7; return onBroadcastQualityChanged === null || onBroadcastQualityChanged === void 0 ? void 0 : onBroadcastQualityChanged(nativeEvent.quality); }; const onTransmissionStatisticsChangedHandler = _ref8 => { let { nativeEvent } = _ref8; const { networkHealth: incomingNetworkHealth, broadcastQuality: incomingBroadcastQuality, ...rest } = nativeEvent.statistics; const networkHealth = isNumber(incomingNetworkHealth) ? _IVSBroadcastCameraView.NetworkHealthEnum[incomingNetworkHealth] : incomingNetworkHealth; const broadcastQuality = isNumber(incomingBroadcastQuality) ? _IVSBroadcastCameraView.BroadcastQualityEnum[incomingBroadcastQuality] : incomingBroadcastQuality; return onTransmissionStatisticsChanged === null || onTransmissionStatisticsChanged === void 0 ? void 0 : onTransmissionStatisticsChanged({ networkHealth, broadcastQuality, ...rest }); }; const onAudioSessionInterruptedHandler = () => onAudioSessionInterrupted === null || onAudioSessionInterrupted === void 0 ? void 0 : onAudioSessionInterrupted(); const onAudioSessionResumedHandler = () => onAudioSessionResumed === null || onAudioSessionResumed === void 0 ? void 0 : onAudioSessionResumed(); const onMediaServicesWereLostHandler = () => onMediaServicesWereLost === null || onMediaServicesWereLost === void 0 ? void 0 : onMediaServicesWereLost(); const onMediaServicesWereResetHandler = () => onMediaServicesWereReset === null || onMediaServicesWereReset === void 0 ? void 0 : onMediaServicesWereReset(); return /*#__PURE__*/_react.default.createElement(RCTIVSBroadcastCameraView, _extends({ testID: NATIVE_VIEW_NAME }, restProps, { ref: nativeViewRef, isMuted: isMuted, logLevel: logLevel, sessionLogLevel: sessionLogLevel, cameraPreviewAspectMode: cameraPreviewAspectMode, isCameraPreviewMirrored: isCameraPreviewMirrored, cameraPosition: cameraPosition, onError: onErrorHandler, onBroadcastError: onBroadcastErrorHandler, onIsBroadcastReady: onIsBroadcastReadyHandler, onBroadcastAudioStats: onBroadcastAudioStatsHandler, onBroadcastStateChanged: onBroadcastStateChangedHandler, onBroadcastQualityChanged: onBroadcastQualityChangedHandler, onNetworkHealthChanged: onNetworkHealthChangedHandler, onTransmissionStatisticsChanged: onTransmissionStatisticsChangedHandler, onAudioSessionInterrupted: onAudioSessionInterruptedHandler, onAudioSessionResumed: onAudioSessionResumedHandler, onMediaServicesWereLost: onMediaServicesWereLostHandler, onMediaServicesWereReset: onMediaServicesWereResetHandler })); }); var _default = IVSBroadcastCameraView; exports.default = _default; //# sourceMappingURL=IVSBroadcastCameraView.js.map