UNPKG

react-native-adbrix-remaster-preview

Version:
389 lines (354 loc) 14.2 kB
/** * @format */ import {NativeModules, NativeEventEmitter} from 'react-native'; import EventEmitter from 'react-native/Libraries/vendor/emitter/EventEmitter'; const AdbrixRmReact = new EventEmitter(); const {AdbrixRm} = NativeModules; const AdbrixRmCallBack = new NativeEventEmitter(NativeModules.AdbrixRm); const AdbrixDeferredDeeplinkEventEmitter = AdbrixRmCallBack.addListener("AdbrixDeferredDeeplinkListener", (deeplink) => { AdbrixRmReact.emit("AdbrixDeferredDeeplinkListener", deeplink); }); const AdbrixDeeplinkEventEmitter = AdbrixRmCallBack.addListener("AdbrixDeeplinkListener", (deeplink) => { AdbrixRmReact.emit("AdbrixDeeplinkListener", deeplink); }); // model var deferredDeeplinkListener = null; var deeplinkListener = null; AdbrixRmReact.UserProperties = class { constructor() { this.obj = {}; } setProperty = (key, value) => { this.obj[key] = value; } getProperties = () => { return this.obj; } } AdbrixRmReact.AttrModel = class { constructor() { this.obj = {}; } setAttrs = (key, value) => { this.obj[key] = value; } getAttrs = () => { return this.obj; } } AdbrixRmReact.CategoryModel = class { constructor() { this.categories = []; } setCategory = (category) => { this.categories.push(category); } getCategory = () => { return this.categories; } } AdbrixRmReact.ProductModel = class { constructor() { this.obj = {}; } setProductId = (productId) => { this.obj["productId"] = productId; } setProductName = (productName) => { this.obj["productName"] = productName; } setPrice = (price) => { this.obj["price"] = price; } setQuantity = (quantity) => { this.obj["quantity"] = quantity; } setCurreny = (currency) => { this.obj["currency"] = currency; } setCategory = (category) => { var categoryArray = Object.assign(AdbrixRmReact.CategoryModel, category); this.obj["category"] = category.getCategory(); } setDiscount = (discount) => { this.obj["discount"] = discount; } getProductModel = () => { return this.obj; } } AdbrixRmReact.ProductModelList = class { constructor() { this.list = []; } setProduct = (product) => { var productElement = Object.assign(AdbrixRmReact.ProductModel, product); this.list.push(productElement.getProductModel()); } getProductList = () => { return this.list; } } AdbrixRmReact.testDictionary = (attr) => { AdbrixRm.testDictionary(assignAttrModel(attr)); } //V2 API AdbrixRmReact.initRNPlugin = () => { console.log("Called initRNPlugin"); AdbrixRm.initRNPlugin(); } AdbrixRmReact.gdprForgetMe = () => { return AdbrixRm.gdprForgetMe(); } AdbrixRmReact.setDeviceId = (deviceId) => { // return AdbrixRm.setDeviceId(deviceId) } AdbrixRmReact.setAge = (age) => { return AdbrixRm.setAge(age); } AdbrixRmReact.setGender = (gender) => { return AdbrixRm.setGender(gender); } AdbrixRmReact.setLogLevel = (logLevel) => { return AdbrixRm.setLogLevel(logLevel); } AdbrixRmReact.setEventUploadCountInterval = (interval) => { return AdbrixRm.setEventUploadCountInterval(interval); } AdbrixRmReact.setEventUploadTimeInterval = (interval) => { return AdbrixRm.setEventUploadCountInterval(interval); } AdbrixRmReact.setEnableLocationListening = (option) => { return AdbrixRm.setEnableLocationListening(option); } AdbrixRmReact.setLocation = (lat, lon) => { return AdbrixRm.setLocation(lat, lon); } AdbrixRmReact.setUserProperties = (userProperties) => { return AdbrixRm.setUserProperties(assignUserProperties(userProperties)); } AdbrixRmReact.clearUserProperties = () => { return AdbrixRm.clearUserProperties(); } AdbrixRmReact.event = (eventName, attrs) => { AdbrixRm.event(eventName, assignAttrModel(attrs)); } AdbrixRmReact.login = (userId) => { return AdbrixRm.login(userId); } AdbrixRmReact.logout = () => { return AdbrixRm.logout(); } AdbrixRmReact.commerceViewHome = (attrs) => { if (attrs == null) return AdbrixRm.commerceViewHome(null); else return AdbrixRm.commerceViewHome(JSON.stringify(attrs)); } //array, jsonArray, json AdbrixRmReact.commerceCategoryView = (category, productList, extraAttrs) => { console.log(assignProductModelList(productList)); return AdbrixRm.commerceCategoryView(assignCategoryModel(category), assignProductModelList(productList), assignAttrModel(extraAttrs)); } AdbrixRmReact.commerceProductView = (product, extraAttrs) => { console.log(assignProductModel(product)); return AdbrixRm.commerceProductView(assignProductModel(product), assignAttrModel(extraAttrs)); } AdbrixRmReact.commerceAddToCart = (productList, extraAttrs) => { return AdbrixRm.commerceAddToCart(assignProductModelList(productList), assignAttrModel(extraAttrs)); } AdbrixRmReact.commerceAddToWishList = (product, extraAttrs) => { return AdbrixRm.commerceAddToWishList(assignProductModel(product), assignAttrModel(extraAttrs)); } AdbrixRmReact.commerceReviewOrder = (orderId, productList, discount, deliveryCharge, extraAttrs) => { return AdbrixRm.commerceReviewOrder(orderId, assignProductModelList(productList), discount, deliveryCharge, assignAttrModel(extraAttrs)); } AdbrixRmReact.commerceRefund = (orderId, productList, penaltyCharge, extraAttrs) => { return AdbrixRm.commerceRefund(orderId, assignProductModelList(productList), penaltyCharge, assignAttrModel(extraAttrs)); } AdbrixRmReact.commerceSearch = (keyWord, productList, extraAttrs) => { return AdbrixRm.commerceSearch(keyWord, assignProductModelList(productList), assignAttrModel(extraAttrs)); } AdbrixRmReact.commerceShare = (sharingChannel, productModel, extraAttrs) => { return AdbrixRm.commerceShare(sharingChannel, assignProductModel(productModel), assignAttrModel(extraAttrs)); } AdbrixRmReact.commerceListView = (productList, extratAttrs) => { return AdbrixRm.commerceListView(assignProductModelList(productList), assignAttrModel(extratAttrs)); } AdbrixRmReact.commerceCartView = (productList, extraAttrs) => { return AdbrixRm.commerceCartView(assignProductModelList(productList), assignAttrModel(extraAttrs)); } AdbrixRmReact.commercePaymentInfoAdded = (extraAttrs) => { return AdbrixRm.commercePaymentInfoAdded(assignAttrModel(extraAttrs)); } AdbrixRmReact.gameTutorialCompleted = (isSkip, extraAttrs) => { return AdbrixRm.gameTutorialCompleted(isSkip, assignAttrModel(extraAttrs)); } AdbrixRmReact.gameLevelAchieved = (level, extraAttrs) => { return AdbrixRm.gameLevelAchieved(level, assignAttrModel(extraAttrs)); } AdbrixRmReact.gameCharacterCreated = (extraAttrs) => { return AdbrixRm.gameCharacterCreated(assignAttrModel(extraAttrs)); } AdbrixRmReact.gameStageCleared = (stageName, extraAttrs) => { return AdbrixRm.gameStageCleared(stageName, assignAttrModel(extraAttrs)); } //string, string, double, double, string, string AdbrixRmReact.commonPurchase = (orderId, productList, discount, deliveryCharge, paymentMethod, extraAttrs) => { return AdbrixRm.commonPurchase(orderId, assignProductModelList(productList), discount, deliveryCharge, paymentMethod, assignAttrModel(extraAttrs)); } AdbrixRmReact.commonSignUp = (channelName, extraAttrs) => { return AdbrixRm.commonSignUp(channelName, assignAttrModel(extraAttrs)); } AdbrixRmReact.commonUseCredit = (extraAttrs) => { return AdbrixRm.commonUseCredit(assignAttrModel(extraAttrs)); } AdbrixRmReact.commonAppUpdate = (prevVer, currentVer, extraAttrs) => { return AdbrixRm.commonAppUpdate(prevVer, currentVer, assignAttrModel(extraAttrs)); } AdbrixRmReact.commonInvite = (channelName, extraAttrs) => { return AdbrixRm.commonInvite(channelName, assignAttrModel(extraAttrs)); } AdbrixRmReact.setPushEnable = (enable) => { return AdbrixRm.setPushEnable(enable); } AdbrixRmReact.setRegistrationId = (token) => { return AdbrixRm.setRegistrationId(token); } /* Android Only */ AdbrixRmReact.setAppScanEnable = (enable) => { return AdbrixRm.setAppScanEnable(enable); } AdbrixRmReact.deepLinkEvent = (url) => { return AdbrixRm.deepLinkEvent(url); } AdbrixRmReact.setDeferredDeeplinkListener = (functionName) => { if( null != deferredDeeplinkListener){ deferredDeeplinkListener.remove(); deferredDeeplinkListener = null; } if (functionName != null){ deferredDeeplinkListener = AdbrixRmReact.addListener('AdbrixDeferredDeeplinkListener', functionName); } } function isDouble(value) { var temp = value.toString(); if (temp.indexOf('.') == -1) { return false; } else { return true; } } function assignUserProperties(userProperties) { if (userProperties == null) return null; else { let userPropertyObject = Object.assign(AdbrixRmReact.UserProperties, userProperties); return JSON.stringify(userPropertyObject.getProperties()); } } function assignAttrModel(attrs) { if (attrs == null) return null; else { let attrModel = Object.assign(AdbrixRmReact.AttrModel, attrs); return JSON.stringify(attrModel.getAttrs()); } } function assignCategoryModel(categoryModel) { if (categoryModel == null) return null; else { let categories = Object.assign(AdbrixRmReact.CategoryModel, categoryModel); return JSON.stringify(categories.getCategory()); } } function assignProductModel(productModel) { if (productModel == null) return null; else { let product = Object.assign(AdbrixRmReact.ProductModel, productModel); return JSON.stringify(product.getProductModel()); } } function assignProductModelList(productList) { if (productList == null) return null; else { let products = Object.assign(AdbrixRmReact.ProductModelList, productList); return JSON.stringify(products.getProductList()); } } //constant AdbrixRmReact.INVITE_CHANNEL_KAKAO = "Kakao"; AdbrixRmReact.INVITE_CHANNEL_NAVER = "Naver"; AdbrixRmReact.INVITE_CHANNEL_LINE = "Line"; AdbrixRmReact.INVITE_CHANNEL_GOOGLE = "Google"; AdbrixRmReact.INVITE_CHANNEL_FACEBOOK = "Facebook"; AdbrixRmReact.INVITE_CHANNEL_TWITTER = "Twitter"; AdbrixRmReact.INVITE_CHANNEL_WHATSAPP = "whatsApp"; AdbrixRmReact.INVITE_CHANNEL_QQ = "QQ"; AdbrixRmReact.INVITE_CHANNEL_WECHAT = "WeChat"; AdbrixRmReact.INVITE_CHANNEL_ETC = "ETC"; AdbrixRmReact.SHARING_CHANNEL_KAKAO = "Kakao"; AdbrixRmReact.SHARING_CHANNEL_KAKAOSTORY = "KakaoStory"; AdbrixRmReact.SHARING_CHANNEL_LINE = "Line"; AdbrixRmReact.SHARING_CHANNEL_TWITTER = "Twitter"; AdbrixRmReact.SHARING_CHANNEL_WHATSAPP = "whatsApp"; AdbrixRmReact.SHARING_CHANNEL_QQ = "QQ"; AdbrixRmReact.SHARING_CHANNEL_WECHAT = "WeChat"; AdbrixRmReact.SHARING_CHANNEL_SMS = "SMS"; AdbrixRmReact.SHARING_CHANNEL_EMAIL = "Email"; AdbrixRmReact.SHARING_CHANNEL_COPYURL = "CopyUrl"; AdbrixRmReact.SHARING_CHANNEL_ETC = "ETC"; AdbrixRmReact.SIGNUP_CHANNEL_KAKAO = "Kakao"; AdbrixRmReact.SIGNUP_CHANNEL_NAVER = "Naver"; AdbrixRmReact.SIGNUP_CHANNEL_LINE = "Line"; AdbrixRmReact.SIGNUP_CHANNEL_GOOGLE = "Google"; AdbrixRmReact.SIGNUP_CHANNEL_FACEBOOK = "Facebook"; AdbrixRmReact.SIGNUP_CHANNEL_TWITTER = "Twitter"; AdbrixRmReact.SIGNUP_CHANNEL_WHATSAPP = "whatsApp"; AdbrixRmReact.SIGNUP_CHANNEL_QQ = "QQ"; AdbrixRmReact.SIGNUP_CHANNEL_WECHAT = "WeChat"; AdbrixRmReact.SIGNUP_CHANNEL_USERID = "UserId"; AdbrixRmReact.SIGNUP_CHANNEL_ETC = "ETC"; AdbrixRmReact.PAYMENT_METHOD_CREDIT_CARD = "CreditCard"; AdbrixRmReact.PAYMENT_METHOD_BANK_TRASNFER = "BankTransfer"; AdbrixRmReact.PAYMENT_METHOD_MOBILE_PAYMENT = "MobilePayment"; AdbrixRmReact.PAYMENT_METHOD_ETC = "ETC"; AdbrixRmReact.CURRENCY_KR_KRW = "KRW"; AdbrixRmReact.CURRENCY_US_USD = "USD"; AdbrixRmReact.CURRENCY_JP_JPY = "JPY"; AdbrixRmReact.CURRENCY_EU_EUR = "EUR"; AdbrixRmReact.CURRENCY_UK_GBP = "GBP"; AdbrixRmReact.CURRENCY_CN_CNY = "CNY"; AdbrixRmReact.CURRENCY_TW_TWD = "TWD"; AdbrixRmReact.CURRENCY_HK_HKD = "HKD"; AdbrixRmReact.CURRENCY_ID_IDR = "IDR"; AdbrixRmReact.CURRENCY_IN_INR = "INR"; AdbrixRmReact.CURRENCY_RU_RUB = "RUB"; AdbrixRmReact.CURRENCY_TH_THB = "THB"; AdbrixRmReact.CURRENCY_VN_VND = "VND"; AdbrixRmReact.CURRENCY_MY_MYR = "MYR"; AdbrixRmReact.GENDER_MALE = 2; AdbrixRmReact.GENDER_FEMALE = 1; AdbrixRmReact.GENDER_UNKOWN = 0; AdbrixRmReact.UPLOAD_COUNT_INTERVAL_MIN = 10; AdbrixRmReact.UPLOAD_COUNT_INTERVAL_NORMAL = 30; AdbrixRmReact.UPLOAD_COUNT_INTERVAL_MAX = 1000; AdbrixRmReact.UPLOAD_TIME_INTERVAL_MIN = 60; AdbrixRmReact.UPLOAD_TIME_INTERVAL_NORMAL = 60; AdbrixRmReact.UPLOAD_TIME_INTERVAL_MAX = 120; // ******************** For v1 backward compatibility only. Please use new API ********************* // Depreciated: Should implement on native side AdbrixRmReact.startAdbrixSDK = (appKey, secretKey) => { console.log("startAdbrixSDK was removed from plugin version 2. Please use initRNPlugin. Check new integration guide at: https://help.dfinery.io/hc/en-us/articles/360033981253-Adbrix-Integration-React-Native-") return AdbrixRm.startAdbrixSDK(appKey, secretKey); } AdbrixRmReact.setDeeplinkListener = (functionName) => { if( null != deeplinkListener){ deeplinkListener.remove(); deeplinkListener = null; } if (functionName != null){ deeplinkListener = AdbrixRmReact.addListener('AdbrixDeeplinkListener', functionName); } } // ******************** END v1 backward compatibility ************* export default AdbrixRmReact;