usabilla-react-native
Version:
Usabilla SDK for React Native
152 lines (127 loc) • 5.1 kB
JavaScript
import { NativeEventEmitter, NativeModules, Platform, DeviceEventEmitter } from 'react-native';
const rnUsabilla = NativeModules.UsabillaBridge;
const usabillaEventEmitter = (Platform.OS == 'android') ? DeviceEventEmitter : new NativeEventEmitter(rnUsabilla);
export default {
initialize(appId) {
if (Platform.OS == 'android') {
usabillaEventEmitter.addListener(
'UBFormNotFoundFragmentActivity',
() => console.log("The Activity does not extend FragmentActivity and cannot call getSupportFragmentManager()")
)
}
return rnUsabilla.initialize(appId)
},
setDebugEnabled(debugEnabled){
return rnUsabilla.setDebugEnabled(debugEnabled)
},
onBackPressed() {
if (Platform.OS == 'android') {
return rnUsabilla.onBackPressed()
} else {
console.warn('onBackPressed is not available for iOS');
return true
}
},
areNavigationButtonsVisible() {
if (Platform.OS == 'android') {
return rnUsabilla.areNavigationButtonsVisible()
} else {
console.warn('areNavigationButtonsVisible is not available for iOS');
return true
}
},
setDefaultNavigationButtonsVisibility(visible) {
if (Platform.OS == 'android') {
return rnUsabilla.setDefaultNavigationButtonsVisibility(visible)
} else {
console.warn('setDefaultNavigationButtonsVisibility is not available for iOS');
}
},
/**
* This method will load the localisation string file with all the properties
* @param {String} localizedStringFile : custom string file name
*/
loadLocalizedStringFile(localizedStringFile) {
if (Platform.OS == 'ios') {
return rnUsabilla.loadLocalizedStringFile(localizedStringFile)
} else {
console.warn('loadLocalizedStringFile is not available for android');
}
},
/**
* This method will load the feedback with no screenshot attachement
* @param {String} formId : feedback form Id
* @param selectedEmoticonImages Array of enabled emoticon images names (optional, nullable).
* @param unselectedEmoticonImages Array of disabled emoticon images names(optional, nullable).
*/
loadFeedbackForm(formId, selectedEmoticonImages, unselectedEmoticonImages) {
return rnUsabilla.loadFeedbackForm(formId, selectedEmoticonImages, unselectedEmoticonImages)
},
/**
* This method will load the feedback form and attach
* the current view screenshot to it.
* @param {String} formId : feedback form Id
* @param selectedEmoticonImages Array of enabled emoticon images names (optional, nullable).
* @param unselectedEmoticonImages Array of disabled emoticon images names(optional, nullable).
*/
loadFeedbackFormWithCurrentViewScreenshot(formId, selectedEmoticonImages, unselectedEmoticonImages) {
return rnUsabilla.loadFeedbackFormWithCurrentViewScreenshot(formId, selectedEmoticonImages, unselectedEmoticonImages)
},
/**
* This method will pre load the feedback forms and
* with no screenshot attachement
* @param {Array} formIds : feedback form Ids
*/
preloadFeedbackForms(formIds) {
return rnUsabilla.preloadFeedbackForms(formIds)
},
removeCachedForms() {
return rnUsabilla.removeCachedForms()
},
sendEvent(event) {
return rnUsabilla.sendEvent(event)
},
resetCampaignData(callback) {
if (Platform.OS == 'android') {
return rnUsabilla.resetCampaignData()
} else {
if (callback) {
return rnUsabilla.resetCampaignData(callback)
}
return rnUsabilla.resetCampaignData(()=> {
console.log("Campaign data is successfully reset!")
})
}
},
setCustomVariables(customVariables) {
return rnUsabilla.setCustomVariables(customVariables)
},
setFormDidLoadSuccessfully(callback) {
return usabillaEventEmitter.addListener('UBFormLoadingSucceeded', callback)
},
setFormDidFailLoading(callback) {
usabillaEventEmitter.addListener('UBFormLoadingFailed', callback)
},
setFormDidClose(callback) {
usabillaEventEmitter.addListener('UBFormDidClose', callback)
},
setCampaignDidClose(callback) {
usabillaEventEmitter.addListener('UBCampaignDidClose', callback)
},
dismiss() {
rnUsabilla.dismiss()
},
setDataMasking(masks, character) {
rnUsabilla.setDataMasking(masks, character)
},
getDefaultDataMasks() {
return rnUsabilla.DEFAULT_DATA_MASKS
},
isUBInitialised(callback) {
if (Platform.OS == 'android') {
usabillaEventEmitter.addListener('isUBInitialised', callback)
} else {
console.warn('isUBInitialised is not available for iOS');
}
}
};