merge from master

This commit is contained in:
Salakar 2017-08-22 17:35:25 +01:00
commit a0e1f744ba
4 changed files with 45 additions and 47 deletions

View File

@ -1,39 +1,28 @@
import React from 'react'; import React from 'react';
import { ViewPropTypes, requireNativeComponent } from 'react-native'; import { ViewPropTypes, requireNativeComponent } from 'react-native';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { statics } from './'; import EventTypes, { NativeExpressEventTypes } from './EventTypes';
import { nativeToJSError } from '../../utils'; import { nativeToJSError } from '../../utils';
import AdRequest from './AdRequest'; import AdRequest from './AdRequest';
import VideoOptions from './VideoOptions'; import VideoOptions from './VideoOptions';
const adMobPropTypes = {
...ViewPropTypes,
size: PropTypes.string.isRequired,
unitId: PropTypes.string.isRequired,
request: PropTypes.object,
video: PropTypes.object,
}
Object.keys(EventTypes).forEach(eventType => {
adMobPropTypes[eventType] = PropTypes.func;
});
Object.keys(NativeExpressEventTypes).forEach(eventType => {
adMobPropTypes[eventType] = PropTypes.func;
});
class AdMobComponent extends React.Component { class AdMobComponent extends React.Component {
static propTypes = adMobPropTypes;
static propTypes = {
...ViewPropTypes,
// TODO ehesp: cant init this outside of the component; statics isn't defined
...(() => {
const eventProps = {};
Object.keys(statics.EventTypes).forEach((key) => {
eventProps[key] = PropTypes.func;
});
return eventProps;
}),
...(() => {
const eventProps = {};
Object.keys(statics.NativeExpressEventTypes).forEach((key) => {
eventProps[key] = PropTypes.func;
});
return eventProps;
}),
size: PropTypes.string.isRequired,
unitId: PropTypes.string.isRequired,
request: PropTypes.object,
video: PropTypes.object,
};
static defaultProps = { static defaultProps = {
request: new AdRequest().addTestDevice().build(), request: new AdRequest().addTestDevice().build(),
@ -94,7 +83,6 @@ class AdMobComponent extends React.Component {
/> />
); );
} }
} }
export default AdMobComponent; export default AdMobComponent;

View File

@ -0,0 +1,21 @@
export default {
onAdLoaded: 'onAdLoaded',
onAdOpened: 'onAdOpened',
onAdLeftApplication: 'onAdLeftApplication',
onAdClosed: 'onAdClosed',
onAdFailedToLoad: 'onAdFailedToLoad',
};
export const NativeExpressEventTypes = {
onVideoEnd: 'onVideoEnd',
onVideoMute: 'onVideoMute',
onVideoPause: 'onVideoPause',
onVideoPlay: 'onVideoPlay',
onVideoStart: 'onVideoStart',
};
export const RewardedVideoEventTypes = {
onRewarded: 'onRewarded',
onRewardedVideoStarted: 'onRewardedVideoStarted',
};

View File

@ -7,6 +7,10 @@ import VideoOptions from './VideoOptions';
import Banner from './Banner'; import Banner from './Banner';
import NativeExpress from './NativeExpress'; import NativeExpress from './NativeExpress';
import EventTypes, {
NativeExpressEventTypes,
RewardedVideoEventTypes,
} from './EventTypes';
export default class AdMob extends ModuleBase { export default class AdMob extends ModuleBase {
static _NAMESPACE = 'admob'; static _NAMESPACE = 'admob';
@ -81,22 +85,7 @@ export const statics = {
NativeExpress, NativeExpress,
AdRequest, AdRequest,
VideoOptions, VideoOptions,
EventTypes: { EventTypes,
onAdLoaded: 'onAdLoaded', RewardedVideoEventTypes,
onAdOpened: 'onAdOpened', NativeExpressEventTypes,
onAdLeftApplication: 'onAdLeftApplication',
onAdClosed: 'onAdClosed',
onAdFailedToLoad: 'onAdFailedToLoad',
},
RewardedVideoEventTypes: {
onRewarded: 'onRewarded',
onRewardedVideoStarted: 'onRewardedVideoStarted',
},
NativeExpressEventTypes: {
onVideoEnd: 'onVideoEnd',
onVideoMute: 'onVideoMute',
onVideoPause: 'onVideoPause',
onVideoPlay: 'onVideoPlay',
onVideoStart: 'onVideoStart',
},
}; };

View File

@ -1,6 +1,6 @@
{ {
"name": "react-native-firebase", "name": "react-native-firebase",
"version": "2.1.2", "version": "2.1.3",
"author": "Invertase <contact@invertase.io> (http://invertase.io)", "author": "Invertase <contact@invertase.io> (http://invertase.io)",
"description": "A well tested, feature rich Firebase implementation for React Native, supporting iOS & Android. Individual module support for Auth, Database, Messaging (FCM), Remote Config, Storage, Admob, Analytics, Crash Reporting, and Performance.", "description": "A well tested, feature rich Firebase implementation for React Native, supporting iOS & Android. Individual module support for Auth, Database, Messaging (FCM), Remote Config, Storage, Admob, Analytics, Crash Reporting, and Performance.",
"main": "index", "main": "index",