@azerion/bluestack-sdk-react-native
Version:
BlueStack provides functionalities for monetizing your mobile application: from premium sales with rich media, video and innovative formats, it facilitates inserting native mobile ads as well all standard display formats. BlueStack SDK is a library that a
95 lines (91 loc) • 3.69 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.BluestackModuleView = exports.BannerModuleView = void 0;
var _react = _interopRequireWildcard(require("react"));
var _reactNative = require("react-native");
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
const sizeForType = {
standard: {
width: 320,
height: 50
},
large: {
width: 320,
height: 100
},
full: {
width: 468,
height: 60
},
mediumRectangle: {
width: 300,
height: 250
},
leaderboard: {
width: 728,
height: 90
},
dynamic: {
width: -1,
height: 50
},
dynamicLeaderboard: {
width: -1,
height: 90
}
};
const getSizeForType = type => sizeForType[type];
const LINKING_ERROR = `The package 'react-native-bluestack--module' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
ios: "- You have run 'pod install'\n",
default: ''
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo managed workflow\n';
const ComponentName = 'BluestackModuleView';
const BluestackModuleView = exports.BluestackModuleView = _reactNative.UIManager.getViewManagerConfig(ComponentName) != null ? (0, _reactNative.requireNativeComponent)(ComponentName) : () => {
throw new Error(LINKING_ERROR);
};
// export const BannerModuleView = (props: BannerViewProps) => {
const BannerModuleView = props => {
const {
onBannerAdLoaded,
onBannerAdFailedToLoad,
onBannerAdRefreshed,
onBannerAdFailedToRefresh,
onBannerAdClicked,
type,
visible,
...restProps
} = props;
let adType = type;
if (adType === undefined) {
adType = 'standard';
}
const size = getSizeForType(adType);
// Track dynamic height from native side
const [dynamicHeight, setDynamicHeight] = (0, _react.useState)(size.height);
// Handle ad loaded event and update height
const handleAdLoaded = (0, _react.useCallback)(event => {
var _event$nativeEvent;
if (event !== null && event !== void 0 && (_event$nativeEvent = event.nativeEvent) !== null && _event$nativeEvent !== void 0 && _event$nativeEvent.size) {
setDynamicHeight(event.nativeEvent.size);
}
onBannerAdLoaded === null || onBannerAdLoaded === void 0 || onBannerAdLoaded(event);
}, [onBannerAdLoaded]);
return /*#__PURE__*/_react.default.createElement(BluestackModuleView, _extends({}, restProps, {
style: [{
width: size.width,
height: dynamicHeight
}],
adSize: adType.toString(),
visible: visible,
onAdLoaded: handleAdLoaded,
onAdFailedToLoad: onBannerAdFailedToLoad,
onAdRefreshed: onBannerAdRefreshed,
onAdFailedToRefresh: onBannerAdFailedToRefresh,
onAdClicked: onBannerAdClicked
}));
};
exports.BannerModuleView = BannerModuleView;
//# sourceMappingURL=BannerViewManager.js.map