Exemple #1
0
 connection.addHandler(safeCB(presenceEl => {
   const showEl = presenceEl.querySelector('show');
   let show = 'online';
   if (presenceEl.getAttribute('type') === 'unavailable') {
     show = 'offline';
   }
   else if (showEl) {
     show = showEl.textContent;
   }
   const statusEl = presenceEl.querySelector('status');
   const bareJID = Strophe.getBareJidFromJid(presenceEl.getAttribute('from'));
   const presence = {
     jid: presenceEl.getAttribute('from'),
     show,
     status: statusEl ? statusEl.textContent : undefined
   };
   if (this.state.presences.bareJID) {
     this.setState({ presences: update(this.state.presences, { 
       [bareJID]: { [presence.jid]: { $set: presence } }
     })});
   }
   else {
     this.setState({ presences: update(this.state.presences, { 
       [bareJID]: { $set: { [presence.jid]: presence } }
     })});
   }
   return true;
 }), null, 'presence', null, null, null);