tweb/public/5.1f95188bd7654e18b24a.chunk.js

2 lines
285 KiB
JavaScript
Raw Normal View History

2022-03-24 18:33:44 +01:00
(this.webpackJsonp=this.webpackJsonp||[]).push([[5],Array(37).concat([function(e,t,s){"use strict";var i=s(30),a=s(172),n=s(59),r=s(52),o=s(145);function d(e){return e&&e.toLowerCase()||""}var c=s(58),l=s(94),h=s(86),u=s(119),p=s(128),g=s(16),f=s(32),m=s(43),v=s(79),_=s(31),y=s(15),I=s(132),S=s(65),P=s(47),M=s(40),b=s(17);const w=new class{constructor(){this.storage=b.default.storages.users,this.updateUsersStatuses=()=>{const e=Object(c.h)(!0);for(const t in this.users){const s=this.users[t];this.updateUserStatus(s,e)}},this.clear(!0),setInterval(this.updateUsersStatuses,6e4),y.default.addEventListener("state_synchronized",this.updateUsersStatuses),y.default.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-=v.a.serverTimeOffset),"was_online"in s.status&&(s.status.was_online-=v.a.serverTimeOffset)),y.default.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(u.a)(a.photo,e.photo),this.setUserToStateIfNeeded(a),y.default.dispatchEvent("user_update",i),y.default.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))}}),y.default.addEventListener("language_change",e=>{const t=this.getSelf().id;this.contactsIndex.indexObject(t,this.getUserSearchText(t))}),b.default.getState().then(e=>{const t=b.default.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(r.a)(),this.contactsFillPromise.resolve(this.contactsList))),b.default.addEventListener("peerNeeded",e=>{if(!M.a.isUser(e))return;const t=e.toUserId();this.storage.getFromCache(t)||this.storage.set({[t]:this.getUser(t)})}),b.default.addEventListener("peerUnneeded",e=>{if(!M.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=b.default.storagesResults.users;for(const t in this.users){if(!t)continue;const s=t.toPeerId();if(!b.default.isPeerNeeded(s)){const s=this.users[t];s.username&&delete this.usernames[d(s.username)],e.findAndSplice(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];b.default.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(r.a)();return f.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]]):f.a.invokeApi("contacts.resolveUsername",{username:e}).then(e=>(this.saveApiUsers(e.users),P.a.saveApiChats(e.chats),M.a.getPeer(M.a.getPeerId(e.peer))))}pushContact(e){this.contactsList.add(e),this.contactsIndex.indexObject(e,this.getUserSea
//# sourceMappingURL=5.1f95188bd7654e18b24a.chunk.js.map