UNPKG

react-native-firebase-compiled

Version:

A well tested, feature rich Firebase implementation for React Native, supporting iOS & Android. Individual module support for Admob, Analytics, Auth, Crash Reporting, Cloud Firestore, Database, Dynamic Links, Functions, Messaging (FCM), Remote Config, Sto

99 lines (75 loc) 2.65 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.statics = exports.default = exports.NAMESPACE = exports.MODULE_NAME = void 0; var _reactNative = require("react-native"); var _events = require("../../utils/events"); var _log = require("../../utils/log"); var _ModuleBase = _interopRequireDefault(require("../../utils/ModuleBase")); var _native = require("../../utils/native"); var _Invitation = _interopRequireDefault(require("./Invitation")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } /** * * Invites representation wrapper */ const MODULE_NAME = 'RNFirebaseInvites'; exports.MODULE_NAME = MODULE_NAME; const NAMESPACE = 'invites'; exports.NAMESPACE = NAMESPACE; const NATIVE_EVENTS = ['invites_invitation_received']; class Invites extends _ModuleBase.default { constructor(app) { super(app, { events: NATIVE_EVENTS, hasCustomUrlSupport: false, moduleName: MODULE_NAME, hasMultiAppSupport: false, namespace: NAMESPACE }); _events.SharedEventEmitter.addListener( // sub to internal native event - this fans out to // public event name: onMessage 'invites_invitation_received', invitation => { _events.SharedEventEmitter.emit('onInvitation', invitation); }); // Tell the native module that we're ready to receive events if (_reactNative.Platform.OS === 'ios') { (0, _native.getNativeModule)(this).jsInitialised(); } } /** * Returns the invitation that triggered application open * @returns {Promise.<InvitationOpen>} */ getInitialInvitation() { return (0, _native.getNativeModule)(this).getInitialInvitation(); } /** * Subscribe to invites * @param listener * @returns {Function} */ onInvitation(listener) { (0, _log.getLogger)(this).info('Creating onInvitation listener'); _events.SharedEventEmitter.addListener('onInvitation', listener); return () => { (0, _log.getLogger)(this).info('Removing onInvitation listener'); _events.SharedEventEmitter.removeListener('onInvitation', listener); }; } sendInvitation(invitation) { if (!(invitation instanceof _Invitation.default)) { return Promise.reject(new Error(`Invites:sendInvitation expects an 'Invitation' but got type ${typeof invitation}`)); } try { return (0, _native.getNativeModule)(this).sendInvitation(invitation.build()); } catch (error) { return Promise.reject(error); } } } exports.default = Invites; const statics = { Invitation: _Invitation.default }; exports.statics = statics;