react-native-invitereferrals
Version:
InviteReferrals is a powerful and yet simple to integrate referral software
250 lines (211 loc) • 4.94 kB
JavaScript
;
import { NativeModules, NativeEventEmitter, Platform } from 'react-native';
const { RNInvitereferrals } = NativeModules;
const irEventEmitter = new NativeEventEmitter(RNInvitereferrals);
const IR_CLOSE_BUTTON_CLICK_EVENT = 'ir_close_button_click';
const IR_TRACKING_CALLBACK_EVENT = 'ir_tracking_event';
const eventsCallbackFunction = {};
const registerCloseButtonListener = function(){
if (RNInvitereferrals != null) {
irEventEmitter.addListener(IR_CLOSE_BUTTON_CLICK_EVENT, (data)=>{
try{
if(data != null && typeof eventsCallbackFunction[IR_CLOSE_BUTTON_CLICK_EVENT] == "function"){
if(Platform.OS == "ios"){
eventsCallbackFunction[IR_CLOSE_BUTTON_CLICK_EVENT](data.data);
}else{
eventsCallbackFunction[IR_CLOSE_BUTTON_CLICK_EVENT](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{
registerCloseButtonListener();
} catch(e){
console.log("ERROR : "+ e);
}
try{
registerTrackingCallbackListener();
} catch(e){
console.log("ERROR : "+ e);
}
export default class Invitereferrals{
//AUTO LOGIN
static userDetails(name,
email,
mobile,
campaignID,
subscriptionID,
customValues,
callback)
{
try{
if(Platform.OS == "ios"){
campaignID = campaignID+"";
}
else{
campaignID = parseInt(campaignID);
}
RNInvitereferrals.userDetails(
name,
email,
mobile,
campaignID,
subscriptionID,
customValues,
callback);
} catch(e){
console.log("ERROR : "+ e);
}
}
//GET SHARING DETAILS
static getSharingDetails(name, email, mobile, campaignID, callback){
try{
if(Platform.OS == "android"){
campaignID = parseInt(campaignID);
}
if(Platform.OS == "ios"){
campaignID = campaignID+"";
}
RNInvitereferrals.getSharingDetails(name, email, mobile, campaignID, callback);
} catch(e){
console.log("ERROR : "+ e);
}
}
// sharing screen
static inline_btn(campaignId){
try{
if(Platform.OS == "ios"){
campaignId = campaignId+"";
}
else{
campaignId = parseInt(campaignId);
}
RNInvitereferrals.inline_btn(campaignId);
} catch(e){
console.log("ERROR : "+ e);
}
}
// LOGIN POPUP
static invite(showRule){
try{
RNInvitereferrals.invite(showRule);
} catch(e){
console.log("ERROR : "+ e);
}
}
// Show Welcome Message after Referring
static showWelcomeMessage(){
try{
RNInvitereferrals.showWelcomeMessage();
} catch(e){
console.log("ERROR : "+ e);
}
}
// insatll register sale tracking
static tracking(
eventName,
orderID,
purchaseValue,
referCode,
unique_code,
customValue,
userData,
irCallback){
try{
if(Platform.OS == "ios"){
purchaseValue = purchaseValue+"";
eventsCallbackFunction[IR_TRACKING_CALLBACK_EVENT] = irCallback;
RNInvitereferrals.tracking(
eventName,
orderID,
purchaseValue,
referCode,
unique_code);
}
else{
purchaseValue = parseInt(purchaseValue);
RNInvitereferrals.tracking(
eventName,
orderID,
purchaseValue,
referCode,
unique_code,
customValue,
userData,
irCallback);
}
} catch(e){
console.log("ERROR : "+ e);
}
}
// show welcome message
static closeButtonListener(irCallback){
try{
eventsCallbackFunction[IR_CLOSE_BUTTON_CLICK_EVENT] = irCallback;
RNInvitereferrals.closeButtonListener();
} catch(e){
console.log("ERROR : "+ e);
}
}
// INCREASE INVITE COUNT MANNUALY
static trackInvite(inviteParameter){
try{
RNInvitereferrals.trackInvite(inviteParameter);
} catch(e){
console.log("ERROR : "+ e);
}
}
// Get the Referrals Code
static getReferrerCode(callback){
try{
RNInvitereferrals.getReferrerCode(callback);
} catch(e){
console.log("ERROR : "+ e);
}
}
// Get the Referrals Code, Popup for How-It-Works, Terms-&-Conditions
static showPopup(popupType, campaignID){
try{
RNInvitereferrals.showPopup(popupType, campaignID);
} catch(e){
console.log("ERROR : "+ e);
}
}
//CHANGE LANGUAGE
static setLocale(locale){
try{
RNInvitereferrals.showPopup(locale);
} catch(e){
console.log("ERROR : "+ e);
}
}
//GET REFERRALS PARAMETERS
static getReferringParams(callback){
try{
RNInvitereferrals.getReferringParams(callback);
} catch(e){
console.log("ERROR : "+ e);
}
}
}