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 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;
|
||||||
|
|
|
@ -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 VideoOptions from './VideoOptions';
|
||||||
import Banner from './Banner';
|
import Banner from './Banner';
|
||||||
import NativeExpress from './NativeExpress';
|
import NativeExpress from './NativeExpress';
|
||||||
import { Base } from './../base';
|
import EventTypes, {
|
||||||
|
NativeExpressEventTypes,
|
||||||
|
RewardedVideoEventTypes
|
||||||
|
} from './EventTypes'
|
||||||
|
import { Base } from '../base';
|
||||||
|
|
||||||
const FirebaseAdMob = NativeModules.RNFirebaseAdMob;
|
const FirebaseAdMob = NativeModules.RNFirebaseAdMob;
|
||||||
const FirebaseAdMobEvt = FirebaseAdMob && new NativeEventEmitter(FirebaseAdMob);
|
const FirebaseAdMobEvt = FirebaseAdMob && new NativeEventEmitter(FirebaseAdMob);
|
||||||
|
@ -87,22 +91,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',
|
|
||||||
},
|
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue