Fix folders again
This commit is contained in:
parent
070bdfa8d8
commit
ff3ee75bcc
@ -23,6 +23,8 @@ import PopupPeer from "../../popups/peer";
|
||||
import RLottiePlayer from "../../../lib/rlottie/rlottiePlayer";
|
||||
import copy from "../../../helpers/object/copy";
|
||||
import deepEqual from "../../../helpers/object/deepEqual";
|
||||
import appUsersManager from "../../../lib/appManagers/appUsersManager";
|
||||
import forEachReverse from "../../../helpers/array/forEachReverse";
|
||||
|
||||
const MAX_FOLDER_NAME_LENGTH = 12;
|
||||
|
||||
@ -291,11 +293,27 @@ export default class AppEditFolderTab extends SliderSuperTab {
|
||||
const section = this[key];
|
||||
const ul = appDialogsManager.createChatList();
|
||||
|
||||
const peers = filter[key].slice();
|
||||
let peers = filter[key];
|
||||
|
||||
// filter peers where we're kicked
|
||||
const hasPeer = (peerId: PeerId) => {
|
||||
return !!appMessagesManager.getDialogOnly(peerId) || (peerId.isUser() ? appUsersManager.getUser(peerId.toUserId())._ === 'user' : false);
|
||||
};
|
||||
|
||||
forEachReverse(peers, (peerId, idx, arr) => {
|
||||
if(!hasPeer(peerId)) {
|
||||
arr.splice(idx, 1);
|
||||
}
|
||||
});
|
||||
|
||||
peers = peers.slice();
|
||||
|
||||
const renderMore = (_length: number) => {
|
||||
for(let i = 0, length = Math.min(peers.length, _length); i < length; ++i) {
|
||||
const peerId = peers.shift();
|
||||
if(peerId.isUser() ? false : !appMessagesManager.getDialogOnly(peerId)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const {dom} = appDialogsManager.addDialogNew({
|
||||
dialog: peerId,
|
||||
|
@ -2260,12 +2260,16 @@ export class AppMessagesManager {
|
||||
}
|
||||
});
|
||||
|
||||
// fullfillLeft();
|
||||
// resolve();
|
||||
}, (err) => {
|
||||
// fullfillLeft();
|
||||
// resolve();
|
||||
// reject(err);
|
||||
}).finally(() => {
|
||||
fullfillLeft();
|
||||
resolve();
|
||||
}, (err) => {
|
||||
fullfillLeft();
|
||||
reject(err);
|
||||
}).finally(() => {
|
||||
|
||||
this.reloadConversationsPromise = null;
|
||||
|
||||
if(this.reloadConversationsPeers.size) {
|
||||
|
@ -552,7 +552,7 @@ export class AppUsersManager {
|
||||
return id;
|
||||
}
|
||||
|
||||
return this.users[id] || {id, pFlags: {deleted: true}, access_hash: ''} as User;
|
||||
return this.users[id] || {_: 'userEmpty', id, pFlags: {deleted: true}, access_hash: ''} as any as User;
|
||||
}
|
||||
|
||||
public getSelf() {
|
||||
|
@ -322,29 +322,29 @@ export default class FiltersStorage {
|
||||
});
|
||||
}
|
||||
|
||||
private p(filterId: number, type: ArgumentTypes<FiltersStorage['reloadMissingPeerIds']>[1], missingPeerIds: PeerId[]) {
|
||||
const filter = this.getFilter(filterId);
|
||||
const peers = filter && filter[type];
|
||||
if(!peers?.length) {
|
||||
return;
|
||||
}
|
||||
// private spliceMissingPeerIds(filterId: number, type: ArgumentTypes<FiltersStorage['reloadMissingPeerIds']>[1], missingPeerIds: PeerId[]) {
|
||||
// const filter = this.getFilter(filterId);
|
||||
// const peers = filter && filter[type];
|
||||
// if(!peers?.length) {
|
||||
// return;
|
||||
// }
|
||||
|
||||
let spliced = false;
|
||||
missingPeerIds.forEach((peerId) => {
|
||||
const inputPeer = findAndSplice(peers, (inputPeer) => this.appPeersManager.getPeerId(inputPeer) === peerId);
|
||||
if(inputPeer) {
|
||||
spliced = true;
|
||||
}
|
||||
});
|
||||
// let spliced = false;
|
||||
// missingPeerIds.forEach((peerId) => {
|
||||
// const inputPeer = findAndSplice(peers, (inputPeer) => this.appPeersManager.getPeerId(inputPeer) === peerId);
|
||||
// if(inputPeer) {
|
||||
// spliced = true;
|
||||
// }
|
||||
// });
|
||||
|
||||
if(spliced) {
|
||||
this.onUpdateDialogFilter({
|
||||
_: 'updateDialogFilter',
|
||||
id: filterId,
|
||||
filter
|
||||
});
|
||||
}
|
||||
}
|
||||
// if(spliced) {
|
||||
// this.onUpdateDialogFilter({
|
||||
// _: 'updateDialogFilter',
|
||||
// id: filterId,
|
||||
// filter
|
||||
// });
|
||||
// }
|
||||
// }
|
||||
|
||||
public reloadMissingPeerIds(filterId: number, type: 'pinned_peers' | 'include_peers' | 'exclude_peers' = 'pinned_peers') {
|
||||
const filter = this.getFilter(filterId);
|
||||
@ -353,23 +353,23 @@ export default class FiltersStorage {
|
||||
return;
|
||||
}
|
||||
|
||||
const missingPeerIds: PeerId[] = [];
|
||||
// const missingPeerIds: PeerId[] = [];
|
||||
const reloadDialogs = peers.filter((inputPeer) => {
|
||||
const peerId = this.appPeersManager.getPeerId(inputPeer);
|
||||
const isAlreadyReloaded = this.reloadedPeerIds.has(peerId);
|
||||
const dialog = this.appMessagesManager.getDialogOnly(peerId);
|
||||
if(isAlreadyReloaded && !dialog) {
|
||||
missingPeerIds.push(peerId);
|
||||
}
|
||||
// if(isAlreadyReloaded && !dialog) {
|
||||
// missingPeerIds.push(peerId);
|
||||
// }
|
||||
|
||||
const reload = !isAlreadyReloaded && !dialog;
|
||||
return reload;
|
||||
});
|
||||
|
||||
if(!reloadDialogs.length) {
|
||||
if(missingPeerIds.length) {
|
||||
this.p(filterId, type, missingPeerIds);
|
||||
}
|
||||
// if(missingPeerIds.length) {
|
||||
// this.spliceMissingPeerIds(filterId, type, missingPeerIds);
|
||||
// }
|
||||
|
||||
return;
|
||||
}
|
||||
@ -392,7 +392,7 @@ export default class FiltersStorage {
|
||||
return;
|
||||
}
|
||||
|
||||
this.p(filterId, type, missingPeerIds);
|
||||
// this.spliceMissingPeerIds(filterId, type, missingPeerIds);
|
||||
});
|
||||
|
||||
return reloadPromise;
|
||||
|
Loading…
Reference in New Issue
Block a user