UNPKG

react-native-firebase-compiled

Version:

A well tested, feature rich Firebase implementation for React Native, supporting iOS & Android. Individual module support for Admob, Analytics, Auth, Crash Reporting, Cloud Firestore, Database, Dynamic Links, Functions, Messaging (FCM), Remote Config, Sto

125 lines (96 loc) 4.35 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireDefault(require("react")); var _reactNative = require("react-native"); var _propTypes = _interopRequireDefault(require("prop-types")); var _EventTypes = _interopRequireWildcard(require("./EventTypes")); var _utils = require("../../utils"); var _AdRequest = _interopRequireDefault(require("./AdRequest")); var _VideoOptions = _interopRequireDefault(require("./VideoOptions")); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; if (desc.get || desc.set) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } } newObj.default = obj; return newObj; } } function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; var ownKeys = Object.keys(source); if (typeof Object.getOwnPropertySymbols === 'function') { ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) { return Object.getOwnPropertyDescriptor(source, sym).enumerable; })); } ownKeys.forEach(function (key) { _defineProperty(target, key, source[key]); }); } return target; } 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 adMobPropTypes = _objectSpread({}, _reactNative.ViewPropTypes, { size: _propTypes.default.string.isRequired, unitId: _propTypes.default.string.isRequired, /* eslint-disable react/forbid-prop-types */ request: _propTypes.default.object, video: _propTypes.default.object /* eslint-enable react/forbid-prop-types */ }); Object.keys(_EventTypes.default).forEach(eventType => { adMobPropTypes[eventType] = _propTypes.default.func; }); Object.keys(_EventTypes.NativeExpressEventTypes).forEach(eventType => { adMobPropTypes[eventType] = _propTypes.default.func; }); const nativeComponents = {}; function getNativeComponent(name) { if (nativeComponents[name]) return nativeComponents[name]; const component = (0, _reactNative.requireNativeComponent)(name, AdMobComponent, { nativeOnly: { onBannerEvent: true } }); nativeComponents[name] = component; return component; } class AdMobComponent extends _react.default.Component { constructor(_props) { super(_props); _defineProperty(this, "onBannerEvent", ({ nativeEvent }) => { const props = this.props; if (props[nativeEvent.type]) { if (nativeEvent.type === 'onAdFailedToLoad') { const _nativeEvent$payload = nativeEvent.payload, code = _nativeEvent$payload.code, message = _nativeEvent$payload.message; props[nativeEvent.type]((0, _utils.nativeToJSError)(code, message)); } else { props[nativeEvent.type](nativeEvent.payload || {}); } } if (nativeEvent.type === 'onSizeChange') this.updateSize(nativeEvent.payload); }); _defineProperty(this, "updateSize", ({ width, height }) => { this.setState({ width, height }); }); this.state = { width: 0, height: 0 }; this.nativeView = getNativeComponent(_props.class); } /** * Handle a single banner event and pass to * any props watching it * @param nativeEvent */ /** * Render the native component * @returns {XML} */ render() { const style = this.props.style; return <this.nativeView {...this.props} style={[style, _objectSpread({}, this.state)]} onBannerEvent={this.onBannerEvent} />; } } _defineProperty(AdMobComponent, "propTypes", adMobPropTypes); _defineProperty(AdMobComponent, "defaultProps", { request: new _AdRequest.default().addTestDevice().build(), video: new _VideoOptions.default().build() }); var _default = AdMobComponent; exports.default = _default;