@freshworks/react-native-freshdesk-sdk
Version:
React Native wrapper for Freshdesk Android and iOS SDKs
58 lines (57 loc) • 2.81 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.nativeModule = exports.isSupported = exports.isNativeModuleAvailable = exports.eventEmitter = void 0;
var _reactNative = require("react-native");
var _NativeFreshdesk = _interopRequireDefault(require("./NativeFreshdesk"));
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
/**
* NativeFreshdesk is the codegen spec's default export. It is `null` when the
* native module is not installed (TurboModuleRegistry.get, not getEnforcing).
* We substitute a no-op so JS-only environments (tests, missing pod install)
* degrade gracefully instead of throwing at import.
*/
const noOpModule = {
initialize: () => Promise.reject(new Error('Freshdesk native module not available')),
openSupport: () => Promise.reject(new Error('Freshdesk native module not available')),
openKnowledgeBase: () => Promise.reject(new Error('Freshdesk native module not available')),
openTopic: () => Promise.reject(new Error('Freshdesk native module not available')),
getUnreadCount: () => Promise.resolve(0),
trackEvent: () => Promise.resolve(),
setUserProperties: () => Promise.resolve(),
setTicketProperties: () => Promise.resolve(),
authenticateAndUpdate: () => Promise.resolve(),
resetUser: () => Promise.resolve({
success: false,
message: '',
error: 'Native module not available'
}),
dismiss: () => Promise.resolve(),
setLinkHandlerEnabled: () => Promise.resolve(),
getSDKVersion: () => Promise.resolve('unknown'),
getUser: () => Promise.resolve('{}'),
setContentConfiguration: () => Promise.resolve(),
enableDebugLogs: () => Promise.resolve(),
runDiagnostics: () => Promise.resolve({
platform: _reactNative.Platform.OS,
overallStatus: 'fail',
checks: [{
id: 'runtime.nativeModule',
status: 'fail',
details: 'Freshdesk native module not available',
fixHint: 'Install @freshworks/react-native-freshdesk-sdk, run pod install (iOS) or rebuild Android, then restart Metro.'
}],
prettyPrinted: ''
}),
addListener: () => {},
removeListeners: () => {}
};
const isNativeModuleAvailable = exports.isNativeModuleAvailable = _NativeFreshdesk.default != null;
if (!isNativeModuleAvailable) {
console.warn('FreshdeskReactNative native module not found. ' + 'Make sure the library is properly linked. ' + 'Falling back to no-op implementation.');
}
const nativeModule = exports.nativeModule = _NativeFreshdesk.default ?? noOpModule;
const eventEmitter = exports.eventEmitter = isNativeModuleAvailable ? new _reactNative.NativeEventEmitter(nativeModule) : null;
const isSupported = exports.isSupported = _reactNative.Platform.OS === 'ios' || _reactNative.Platform.OS === 'android';
//# sourceMappingURL=FreshdeskModule.js.map