moved EventTypes to new file to avoid enumerable key in AdMobComponent.propTypes
This commit is contained in:
parent
184a0981ea
commit
c1b9b5d532
|
@ -1,39 +1,28 @@
|
|||
import React from 'react';
|
||||
import { ViewPropTypes, requireNativeComponent } from 'react-native';
|
||||
import PropTypes from 'prop-types';
|
||||
import { statics } from './';
|
||||
import EventTypes, { NativeExpressEventTypes } from './EventTypes';
|
||||
import { nativeToJSError } from '../../utils';
|
||||
|
||||
import AdRequest from './AdRequest';
|
||||
import VideoOptions from './VideoOptions';
|
||||
|
||||
class AdMobComponent extends React.Component {
|
||||
|
||||
static propTypes = {
|
||||
const adMobPropTypes = {
|
||||
...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,
|
||||
};
|
||||
}
|
||||
Object.keys(EventTypes).forEach(eventType => {
|
||||
adMobPropTypes[eventType] = PropTypes.func;
|
||||
});
|
||||
Object.keys(NativeExpressEventTypes).forEach(eventType => {
|
||||
adMobPropTypes[eventType] = PropTypes.func;
|
||||
});
|
||||
|
||||
class AdMobComponent extends React.Component {
|
||||
static propTypes = adMobPropTypes;
|
||||
|
||||
static defaultProps = {
|
||||
request: new AdRequest().addTestDevice().build(),
|
||||
|
@ -94,7 +83,6 @@ class AdMobComponent extends React.Component {
|
|||
/>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
export default AdMobComponent;
|
||||
|
|
|
@ -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',
|
||||
};
|
|
@ -7,7 +7,11 @@ import AdRequest from './AdRequest';
|
|||
import VideoOptions from './VideoOptions';
|
||||
import Banner from './Banner';
|
||||
import NativeExpress from './NativeExpress';
|
||||
import { Base } from './../base';
|
||||
import EventTypes, {
|
||||
NativeExpressEventTypes,
|
||||
RewardedVideoEventTypes
|
||||
} from './EventTypes'
|
||||
import { Base } from '../base';
|
||||
|
||||
const FirebaseAdMob = NativeModules.RNFirebaseAdMob;
|
||||
const FirebaseAdMobEvt = FirebaseAdMob && new NativeEventEmitter(FirebaseAdMob);
|
||||
|
@ -87,22 +91,7 @@ export const statics = {
|
|||
NativeExpress,
|
||||
AdRequest,
|
||||
VideoOptions,
|
||||
EventTypes: {
|
||||
onAdLoaded: 'onAdLoaded',
|
||||
onAdOpened: 'onAdOpened',
|
||||
onAdLeftApplication: 'onAdLeftApplication',
|
||||
onAdClosed: 'onAdClosed',
|
||||
onAdFailedToLoad: 'onAdFailedToLoad',
|
||||
},
|
||||
RewardedVideoEventTypes: {
|
||||
onRewarded: 'onRewarded',
|
||||
onRewardedVideoStarted: 'onRewardedVideoStarted',
|
||||
},
|
||||
NativeExpressEventTypes: {
|
||||
onVideoEnd: 'onVideoEnd',
|
||||
onVideoMute: 'onVideoMute',
|
||||
onVideoPause: 'onVideoPause',
|
||||
onVideoPlay: 'onVideoPlay',
|
||||
onVideoStart: 'onVideoStart',
|
||||
},
|
||||
EventTypes,
|
||||
RewardedVideoEventTypes,
|
||||
NativeExpressEventTypes
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue