tweb/public/6.fcc4f6420b303e25e8ce.chun...

2 lines
296 KiB
JavaScript
Raw Normal View History

2022-04-16 19:15:57 +02:00
(this.webpackJsonp=this.webpackJsonp||[]).push([[6],Array(59).concat([function(e,t,s){"use strict";var i=s(1),a=s(154),n=s(38),r=s(74),o=s(10),d=s(149);function c(e){return e&&e.toLowerCase()||""}var l=s(36),h=s(118),u=s(19),p=s(120),g=s(43),f=s(7),m=s(8),v=s(20),_=s(85),y=s(27),I=s(0),P=s(133),M=s(77),S=s(66),b=s(62),w=s(34);const C=new class{constructor(){this.storage=w.c.storages.users,this.updateUsersStatuses=()=>{const e=Object(l.h)(!0);for(const t in this.users){const s=this.users[t];this.updateUserStatus(s,e)}},this.clear(!0),setInterval(this.updateUsersStatuses,6e4),I.a.addEventListener("state_synchronized",this.updateUsersStatuses),I.a.addMultipleEventsListeners({updateUserStatus:e=>{const t=e.user_id,s=this.users[t];s&&(s.status=e.status,s.status&&("expires"in s.status&&(s.status.expires-=_.a.serverTimeOffset),"was_online"in s.status&&(s.status.was_online-=_.a.serverTimeOffset)),I.a.dispatchEvent("user_update",t),this.setUserToStateIfNeeded(s))},updateUserPhoto:e=>{var t,s;const i=e.user_id,a=this.users[i];if(a){if((null===(t=a.photo)||void 0===t?void 0:t.photo_id)===(null===(s=e.photo)||void 0===s?void 0:s.photo_id))return;this.forceUserOnline(i,e.date),"userProfilePhotoEmpty"===e.photo._?delete a.photo:a.photo=Object(p.a)(a.photo,e.photo),this.setUserToStateIfNeeded(a),I.a.dispatchEvent("user_update",i),I.a.dispatchEvent("avatar_update",i.toPeerId())}else console.warn("No user by id:",i)},updateUserName:e=>{const t=e.user_id,s=this.users[t];s&&(this.forceUserOnline(t),this.saveApiUser(Object.assign(Object.assign({},s),{first_name:e.first_name,last_name:e.last_name,username:e.username}),!0))}}),I.a.addEventListener("language_change",e=>{const t=this.getSelf().id;this.contactsIndex.indexObject(t,this.getUserSearchText(t))}),w.c.getState().then(e=>{const t=w.c.storagesResults.users;if(t.length)for(let e=0,s=t.length;e<s;++e){const s=t[e];s&&(this.users[s.id]=s,this.setUserNameToCache(s))}const s=e.contactsList;s&&Array.isArray(s)&&(s.forEach(e=>{this.pushContact(e)}),s.length&&(this.contactsFillPromise=Object(o.a)(),this.contactsFillPromise.resolve(this.contactsList))),w.c.addEventListener("peerNeeded",e=>{if(!b.a.isUser(e))return;const t=e.toUserId();this.storage.getFromCache(t)||this.storage.set({[t]:this.getUser(t)})}),w.c.addEventListener("peerUnneeded",e=>{if(!b.a.isUser(e))return;const t=e.toUserId();this.storage.getFromCache(t)&&this.storage.delete(t)})})}clear(e=!1){if(e)this.users={},this.usernames={};else{const e=w.c.storagesResults.users;for(const t in this.users){if(!t)continue;const s=t.toPeerId();if(!w.c.isPeerNeeded(s)){const s=this.users[t];s.username&&delete this.usernames[c(s.username)],Object(n.a)(e,e=>e.id===t),this.storage.delete(t),delete this.users[t]}}}this.getTopPeersPromises={},this.contactsIndex=this.createSearchIndex(),this.contactsFillPromise=void 0,this.contactsList=new Set,this.updatedContactsList=!1}onContactsModified(){const e=[...this.contactsList];w.c.pushToState("contactsList",e)}fillContacts(){var e;if(this.contactsFillPromise&&this.updatedContactsList)return{cached:this.contactsFillPromise.isFulfilled,promise:this.contactsFillPromise};this.updatedContactsList=!0;const t=Object(o.a)();return m.a.invokeApi("contacts.getContacts").then(e=>{"contacts.contacts"===e._&&(this.contactsList.clear(),this.saveApiUsers(e.users),e.contacts.forEach(e=>{this.pushContact(e.user_id)}),this.onContactsModified(),this.contactsFillPromise=t),t.resolve(this.contactsList)},()=>{this.updatedContactsList=!1}),{cached:null===(e=this.contactsFillPromise)||void 0===e?void 0:e.isFulfilled,promise:this.contactsFillPromise||(this.contactsFillPromise=t)}}resolveUsername(e){return"@"===e[0]&&(e=e.slice(1)),e=e.toLowerCase(),this.usernames[e]?Promise.resolve(this.users[this.usernames[e]]):m.a.invokeApi("contacts.resolveUsername",{username:e}).then(e=>this.processResolvedPeer(e))}processResolvedPeer(e){return this.saveApiUsers(e.users),S.a.saveApiChats(e.chats),b.a.getPeer(b.a.getPeerId(e.peer))}resolvePhone(e){return m.a.invokeApi("contacts.resolvePhone",{phone:e}).then(e=>this.processResolvedPeer(e))}pushC
//# sourceMappingURL=6.fcc4f6420b303e25e8ce.chunk.js.map