UNPKG

inbrain-surveys

Version:

In-App monetization via surveys, powered by inBrain.ai.

187 lines 7.17 kB
import { Platform, NativeModules, NativeEventEmitter, } from 'react-native'; import { assertIsColor, assertNotNullNorEmpty, wrapPromise } from './Utils'; import { mapRewards, mapSurveys } from './MappingUtils'; import { InBrainWallOption, } from './Models'; var InBrainSurveys = NativeModules.InBrainSurveys; var inbrainEmitter = new NativeEventEmitter(InBrainSurveys); // ----------------------- Setup InBrain ------------------------------- /** * Initial inBrain SDK configuration. * @param apiClientId The client ID provided in inBrain.ai dashboard * @param apiSecret The client secret provided in inBrain.ai dashboard * @param userId: The string value that uniquely identifies each user within your application. Can be provided later, using `setUserID` method */ var setInBrain = function (apiClientId, apiSecret, userId) { validateClientData(apiClientId, apiSecret); InBrainSurveys.setInBrain(apiClientId, apiSecret); InBrainSurveys.setUserID(userId); }; /** * Set uniq identifier of user within your application. If value not set (or empty) - `deviceId` will be used * @param userID The string value that uniquely identifies each user within your application */ var setUserID = function (userID) { return InBrainSurveys.setUserID(userID); }; /** * Set the value to track user session. This value is provided via S2S Callbacks as SessionId. * @param sessionId Session identifier */ var setSessionID = function (sessionId) { return InBrainSurveys.setSessionID(sessionId); }; /** * Provide information about the user * @param dataPoints User information */ var setDataOptions = function (dataPoints) { return InBrainSurveys.setDataOptions(dataPoints); }; /** * Customize Status Bar to match your application style * @param config Status Bar configuration */ var setStatusBarConfig = function (config) { var _a, _b; if (Platform.OS == 'ios') { InBrainSurveys.setStatusBarLight((_a = config.lightStatusBar) !== null && _a !== void 0 ? _a : true); } else { config.statusBarColor && assertIsColor(config.statusBarColor); InBrainSurveys.setStatusBarConfig((_b = config.lightStatusBar) !== null && _b !== void 0 ? _b : false, config.statusBarColor); } }; /** * Customize Navigation Bar to match your application style * @param config Navigation Bar configuration */ var setNavigationBarConfig = function (config) { var _a; config.backgroundColor && assertIsColor(config.backgroundColor); config.buttonsColor && assertIsColor(config.buttonsColor); config.titleColor && assertIsColor(config.titleColor); InBrainSurveys.setNavigationBarConfig(config.backgroundColor, config.buttonsColor, config.titleColor, config.title, (_a = config.hasShadow) !== null && _a !== void 0 ? _a : false); }; /** * Set the listener when the webview is dismissed or webview is dismissed from within the webview * @param callback Callback to execute */ var setOnSurveysCloseLister = function (callback) { return inbrainEmitter.addListener('OnSurveysClose', function (data) { if (data === null || data === void 0 ? void 0 : data.rewards) { data.rewards = mapRewards(data === null || data === void 0 ? void 0 : data.rewards); } callback(data); }); }; /** * Check if surveys are available to show */ var checkSurveysAvailable = function () { return wrapPromise(function () { return InBrainSurveys.checkSurveysAvailable(); }); }; /** * Opens the InBrain survey wall * @param option Indicates which feature is available at the dashboard: Surveys, Offers, or both */ var openWall = function (option) { if (option === void 0) { option = InBrainWallOption.surveys; } return wrapPromise(function () { return InBrainSurveys.openWall(option); }); }; /** * Get Native Surveys * @param filter an optional parameter */ var getNativeSurveys = function (filter) { return wrapPromise(function () { return InBrainSurveys.getNativeSurveys(filter === null || filter === void 0 ? void 0 : filter.placementId, filter === null || filter === void 0 ? void 0 : filter.categoryIds, filter === null || filter === void 0 ? void 0 : filter.excludedCategoryIds).then(function (surveys) { return mapSurveys(surveys); }); }); }; /** * Show a specific Native Survey. All the configs should be done `BEFORE` calling `showNativeSurvey()`. * @param id the survey's identifier * @param searchId a mandatory identifier * @param offersEnabled Specifies whether to enable Offers feature at the dashboard or not */ var showNativeSurvey = function (id, searchId, offersEnabled) { if (offersEnabled === void 0) { offersEnabled = false; } return wrapPromise(function () { return InBrainSurveys.showNativeSurvey(id, searchId, offersEnabled); }); }; /** * Get the rewards */ var getRewards = function () { return wrapPromise(function () { return InBrainSurveys.getRewards(); }); }; /** * Manually confirm a list of rewards * @param rewards The rewards to confirm */ var confirmRewards = function (rewards) { return wrapPromise(function () { return InBrainSurveys.confirmRewards(rewards); }); }; /** * Get Currency Sale */ var getCurrencySale = function () { return wrapPromise(function () { return InBrainSurveys.getCurrencySale(); }); }; // ----------------------- Deprecated ------------------------------- /** * @deprecated Use openWall() instead */ var showSurveys = function () { return wrapPromise(function () { return openWall(InBrainWallOption.surveys); }); }; // ----------------------- Unsupported ------------------------------- /** * @unsupported Please, use setInBrain fucntion instead */ var init = function () { }; /** * @unsupported Please, use setSessionID and setDataOptions instead */ var setSessionParameters = function () { }; // ------ Callbacks ----- /** * @unsupported Please, use setOnSurveysCloseLister instead */ var setOnCloseListener = function () { }; /** * @unsupported Please, use setOnSurveysCloseLister instead */ var setOnCloseListenerFromPage = function () { }; // ----------------------- Private ------------------------------- /** * Validation for apiClientId and apiSecret. */ var validateClientData = function (apiClientId, apiSecret) { assertNotNullNorEmpty("apiClientId", apiClientId); assertNotNullNorEmpty("apiSecret", apiSecret); }; export default { setInBrain: setInBrain, setUserID: setUserID, setSessionID: setSessionID, setDataOptions: setDataOptions, setStatusBarConfig: setStatusBarConfig, setNavigationBarConfig: setNavigationBarConfig, setOnSurveysCloseLister: setOnSurveysCloseLister, checkSurveysAvailable: checkSurveysAvailable, showSurveys: showSurveys, openWall: openWall, getNativeSurveys: getNativeSurveys, showNativeSurvey: showNativeSurvey, getCurrencySale: getCurrencySale, getRewards: getRewards, confirmRewards: confirmRewards, init: init, setSessionParameters: setSessionParameters, setOnCloseListener: setOnCloseListener, setOnCloseListenerFromPage: setOnCloseListenerFromPage, }; //# sourceMappingURL=InBrain.js.map