UNPKG

react-native-context-center

Version:

React native package for Impekable context center customer app

68 lines (58 loc) 2.11 kB
import {NativeModules,NativeAppEventEmitter,Platform} from 'react-native'; const { CCManager } = NativeModules; function parseAccessManager(manager) { if (manager) { this.token = manager.token; } return true; } class ClientManager{ constructor(token){ this.token = token; this.setupEventHandler(); this.initEventHandler(); } setupEventHandler(){ this.onTokenExpired = null; this.onTokenWillExpire = null; this.onTokenInvalid = null; } initEventHandler(){ this._clientManagerTokenExpiredSubscription = NativeAppEventEmitter.addListener( 'accessManagerTokenExpired', () => { console.log('_clientManagerTokenExpiredSubscription') if (this.onTokenExpired) this.onTokenExpired(); }, ); this._clientManagerTokenWillExpireSubscription = NativeAppEventEmitter.addListener( 'accessManagerTokenWillExpire', (error) => { console.log('_clientManagerTokenWillExpireSubscription:',error) if (this.onTokenWillExpire) this.onTokenWillExpire(error); }, ); this._clientManagerTokenInvalidSubscription = NativeAppEventEmitter.addListener( 'accessManagerTokenInvalid', (error) => { console.log('_clientManagerTokenInvalidSubscription:',error) if (this.onTokenInvalid) this.onTokenInvalid(error); }, ); CCManager.initWithToken(this.token).then(parseAccessManager.bind(this)); } registerClient(){ if(Platform.OS === 'ios'){ CCManager.setupTwilio() } } updateToken(newToken){ CCManager.updateToken(newToken).then(parseAccessManager.bind(this)) } removeListeners() { this._clientManagerTokenExpiredSubscription.remove(); this._clientManagerTokenWillExpireSubscription.remove(); this._clientManagerTokenInvalidSubscription.remove(); } } export default ClientManager;