@intercom/intercom-react-native
Version:
React Native wrapper to bridge our iOS and Android SDK
160 lines (159 loc) • 7.52 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = exports.Visibility = exports.ThemeMode = exports.Space = exports.LogLevel = exports.IntercomEvents = exports.IntercomContent = exports.ContentType = void 0;
var _reactNative = require("react-native");
var _nativeModules = require("./nativeModules.js");
let Visibility = exports.Visibility = /*#__PURE__*/function (Visibility) {
Visibility["GONE"] = "GONE";
Visibility["VISIBLE"] = "VISIBLE";
return Visibility;
}({});
let LogLevel = exports.LogLevel = /*#__PURE__*/function (LogLevel) {
LogLevel["ASSERT"] = "ASSERT";
LogLevel["DEBUG"] = "DEBUG";
LogLevel["DISABLED"] = "DISABLED";
LogLevel["ERROR"] = "ERROR";
LogLevel["INFO"] = "INFO";
LogLevel["VERBOSE"] = "VERBOSE";
LogLevel["WARN"] = "WARN";
return LogLevel;
}({});
let ThemeMode = exports.ThemeMode = /*#__PURE__*/function (ThemeMode) {
ThemeMode["LIGHT"] = "LIGHT";
ThemeMode["DARK"] = "DARK";
ThemeMode["SYSTEM"] = "SYSTEM";
return ThemeMode;
}({});
const IntercomEvents = exports.IntercomEvents = {
IntercomUnreadCountDidChange: _nativeModules.IntercomEventEmitter.UNREAD_COUNT_CHANGE_NOTIFICATION,
IntercomWindowDidHide: _nativeModules.IntercomEventEmitter.WINDOW_DID_HIDE_NOTIFICATION,
IntercomWindowDidShow: _nativeModules.IntercomEventEmitter.WINDOW_DID_SHOW_NOTIFICATION,
IntercomHelpCenterWindowDidShow: _nativeModules.IntercomEventEmitter.WINDOW_DID_SHOW_NOTIFICATION,
IntercomHelpCenterWindowDidHide: _nativeModules.IntercomEventEmitter.WINDOW_DID_HIDE_NOTIFICATION
};
let Space = exports.Space = /*#__PURE__*/function (Space) {
Space["home"] = "HOME";
Space["helpCenter"] = "HELP_CENTER";
Space["messages"] = "MESSAGES";
Space["tickets"] = "TICKETS";
return Space;
}({});
const Intercom = {
initialize: (apiKey, appId) => {
if (!apiKey || typeof apiKey !== 'string' || apiKey.trim() === '') {
return Promise.reject(new Error('Intercom: apiKey is required and must be a string'));
}
if (!appId || typeof appId !== 'string' || appId.trim() === '') {
return Promise.reject(new Error('Intercom: appId is required and must be a string'));
}
const platform = _reactNative.Platform.OS;
const platformRules = {
ios: {
prefix: 'ios_sdk-',
minLength: 48
},
android: {
prefix: 'android_sdk-',
minLength: 52
}
};
const rules = platformRules[platform];
if (!rules) {
return Promise.reject(new Error(`Intercom: Platform "${platform}" is not supported. Only iOS and Android are supported.`));
}
if (!apiKey.startsWith(rules.prefix)) {
return Promise.reject(new Error(`Intercom: ${platform} API key must start with "${rules.prefix}"`));
}
if (apiKey.length < rules.minLength) {
return Promise.reject(new Error(`Intercom: ${platform} API key must be at least ${rules.minLength} characters long`));
}
return _nativeModules.IntercomModule.initialize(apiKey, appId);
},
loginUnidentifiedUser: () => _nativeModules.IntercomModule.loginUnidentifiedUser(),
loginUserWithUserAttributes: userAttributes => _nativeModules.IntercomModule.loginUserWithUserAttributes(userAttributes),
logout: () => _nativeModules.IntercomModule.logout(),
setUserHash: hash => _nativeModules.IntercomModule.setUserHash(hash),
updateUser: userAttributes => _nativeModules.IntercomModule.updateUser(userAttributes),
isUserLoggedIn: () => _nativeModules.IntercomModule.isUserLoggedIn(),
fetchLoggedInUserAttributes: () => _nativeModules.IntercomModule.fetchLoggedInUserAttributes(),
logEvent: (eventName, metaData = undefined) => _nativeModules.IntercomModule.logEvent(eventName, metaData),
fetchHelpCenterCollections: () => _nativeModules.IntercomModule.fetchHelpCenterCollections(),
fetchHelpCenterCollection: (id = '') => _nativeModules.IntercomModule.fetchHelpCenterCollection(id),
searchHelpCenter: (term = '') => _nativeModules.IntercomModule.searchHelpCenter(term),
present: () => _nativeModules.IntercomModule.presentIntercom(),
presentSpace: space => _nativeModules.IntercomModule.presentIntercomSpace(space),
presentContent: content => _nativeModules.IntercomModule.presentContent(content),
presentMessageComposer: (initialMessage = undefined) => _nativeModules.IntercomModule.presentMessageComposer(initialMessage),
getUnreadConversationCount: () => _nativeModules.IntercomModule.getUnreadConversationCount(),
hideIntercom: () => _nativeModules.IntercomModule.hideIntercom(),
setBottomPadding: paddingBottom => _nativeModules.IntercomModule.setBottomPadding(paddingBottom),
setInAppMessageVisibility: visibility => _nativeModules.IntercomModule.setInAppMessageVisibility(visibility),
setLauncherVisibility: visibility => _nativeModules.IntercomModule.setLauncherVisibility(visibility),
setNeedsStatusBarAppearanceUpdate: _reactNative.Platform.select({
ios: _nativeModules.IntercomModule.setNeedsStatusBarAppearanceUpdate,
default: async () => true
}),
handlePushMessage: _reactNative.Platform.select({
android: _nativeModules.IntercomModule.handlePushMessage,
default: async () => true
}),
sendTokenToIntercom: token => _nativeModules.IntercomModule.sendTokenToIntercom(token),
setLogLevel: logLevel => _nativeModules.IntercomModule.setLogLevel(logLevel),
setThemeMode: themeMode => _nativeModules.IntercomModule.setThemeMode(themeMode),
setUserJwt: jwt => _nativeModules.IntercomModule.setUserJwt(jwt),
setAuthTokens: authTokens => _nativeModules.IntercomModule.setAuthTokens(authTokens),
bootstrapEventListeners: () => {
if (_reactNative.Platform.OS === 'android' && _nativeModules.IntercomEventEmitter?.startEventListener) {
_nativeModules.IntercomEventEmitter.startEventListener();
}
return () => {
if (_reactNative.Platform.OS === 'android' && _nativeModules.IntercomEventEmitter?.removeEventListener) {
_nativeModules.IntercomEventEmitter.removeEventListener();
}
};
}
};
var _default = exports.default = Intercom;
let ContentType = exports.ContentType = /*#__PURE__*/function (ContentType) {
ContentType["Article"] = "ARTICLE";
ContentType["Carousel"] = "CAROUSEL";
ContentType["Survey"] = "SURVEY";
ContentType["HelpCenterCollections"] = "HELP_CENTER_COLLECTIONS";
ContentType["Conversation"] = "CONVERSATION";
return ContentType;
}({});
const IntercomContent = exports.IntercomContent = {
articleWithArticleId(articleId) {
let articleContent = {};
articleContent.type = ContentType.Article;
articleContent.id = articleId;
return articleContent;
},
carouselWithCarouselId(carouselId) {
let carouselContent = {};
carouselContent.type = ContentType.Carousel;
carouselContent.id = carouselId;
return carouselContent;
},
surveyWithSurveyId(surveyId) {
let surveyContent = {};
surveyContent.type = ContentType.Survey;
surveyContent.id = surveyId;
return surveyContent;
},
helpCenterCollectionsWithIds(collectionIds) {
let helpCenterCollectionsContent = {};
helpCenterCollectionsContent.type = ContentType.HelpCenterCollections;
helpCenterCollectionsContent.ids = collectionIds;
return helpCenterCollectionsContent;
},
conversationWithConversationId(conversationId) {
let conversationContent = {};
conversationContent.type = ContentType.Conversation;
conversationContent.id = conversationId;
return conversationContent;
}
};
//# sourceMappingURL=index.js.map