react-native-invitereferrals
Version:
InviteReferrals is a powerful and yet simple to integrate referral software
186 lines (164 loc) • 4.07 kB
JavaScript
;
import { NativeModules, NativeEventEmitter, Platform } from 'react-native';
const { RNInvitereferrals } = NativeModules;
const irEventEmitter = new NativeEventEmitter(RNInvitereferrals);
const CAMPAIGN_CALLBACKS = 'ir_campaign_callbacks';
const IR_TRACKING_CALLBACK_EVENT = 'ir_tracking_event';
const eventsCallbackFunction = {};
const campaignCallbacksListener = function () {
if (RNInvitereferrals != null) {
irEventEmitter.addListener(CAMPAIGN_CALLBACKS, (data) => {
try {
if (data != null && typeof eventsCallbackFunction[CAMPAIGN_CALLBACKS] == "function") {
if (Platform.OS == "ios") {
eventsCallbackFunction[CAMPAIGN_CALLBACKS](data.data);
} else {
eventsCallbackFunction[CAMPAIGN_CALLBACKS](data);
}
}
} catch (e) {
console.log("ERROR : " + e);
}
});
}
};
const registerTrackingCallbackListener = function () {
if (RNInvitereferrals != null) {
irEventEmitter.addListener(IR_TRACKING_CALLBACK_EVENT, (data) => {
try {
if (data != null && typeof eventsCallbackFunction[IR_TRACKING_CALLBACK_EVENT] == "function") {
if (Platform.OS == "ios") {
eventsCallbackFunction[IR_TRACKING_CALLBACK_EVENT](data.data);
} else {
eventsCallbackFunction[IR_TRACKING_CALLBACK_EVENT](data);
}
}
} catch (e) {
console.log("ERROR : " + e);
}
});
}
};
try {
campaignCallbacksListener();
} catch (e) {
console.log("ERROR : " + e);
}
try {
registerTrackingCallbackListener();
} catch (e) {
console.log("ERROR : " + e);
}
export default class Invitereferrals {
// # CAMPAIGN METHODS
static campaign(campaignInfo, userInfo, callback) {
try {
eventsCallbackFunction[CAMPAIGN_CALLBACKS] = callback;
if (userInfo != null) {
RNInvitereferrals.campaign(campaignInfo, userInfo)
} else {
RNInvitereferrals.campaignLogin(campaignInfo)
}
}
catch (e) {
console.log("ERROR : " + e);
}
}
static tracking(eventInfo, userInfo, callback) {
try {
RNInvitereferrals.tracking(eventInfo, userInfo, callback);
} catch (e) {
console.log("ERROR : " + e);
}
}
static campaignPopup(ruleName, campaignInfo, userInfo) {
try {
RNInvitereferrals.campaignPopup(ruleName, campaignInfo, userInfo);
} catch (e) {
console.log("ERROR : " + e);
}
}
static getSharingDetails(campaignInfo, userInfo, callback) {
try {
RNInvitereferrals.getSharingDetails(campaignInfo, userInfo, callback);
} catch (e) {
console.log("ERROR : " + e);
}
}
static showWelcomeMessage() {
try {
RNInvitereferrals.showWelcomeMessage();
} catch (e) {
console.log("ERROR : " + e);
}
}
static getReferrerCode(callback) {
try {
RNInvitereferrals.getReferrerCode(callback);
} catch (e) {
console.log("ERROR : " + e);
}
}
static getReferringParams(callback) {
try {
RNInvitereferrals.getReferringParams(callback);
} catch (e) {
console.log("ERROR : " + e);
}
}
static setLocale(locale) {
try {
RNInvitereferrals.setLocale(locale);
} catch (e) {
console.log("ERROR : " + e);
}
}
static trackInvite(inviteParameter, campaignID) {
try {
RNInvitereferrals.trackInvite(inviteParameter, campaignID);
} catch (e) {
console.log("ERROR : " + e);
}
}
static logout() {
try {
RNInvitereferrals.logout();
} catch (e) {
console.log("ERROR : " + e);
}
}
static closeButtonListener(irCallback) {
try {
eventsCallbackFunction[IR_CLOSE_BUTTON_CLICK_EVENT] = irCallback;
RNInvitereferrals.closeButtonListener();
} catch (e) {
console.log("ERROR : " + e);
}
}
}
export class RNIRCampaignInfo {
constructor() {
this.campaignID = 0;
this.templateID = 0;
}
}
export class RNIRUserInfo {
constructor() {
this.name = "";
this.email = "";
this.mobile = "";
this.subscriptionID = "";
this.customValueOne = "";
this.customValueTwo = "";
}
}
export class RNIREventInfo {
constructor() {
this.eventName = "";
this.orderID = "";
this.purchaseValue = "0";
this.referrerCode = "";
this.uniqueCode = "";
this.orderCustomValue = "";
}
}