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 RLottiePlayer from "../../../lib/rlottie/rlottiePlayer";
|
||||||
import copy from "../../../helpers/object/copy";
|
import copy from "../../../helpers/object/copy";
|
||||||
import deepEqual from "../../../helpers/object/deepEqual";
|
import deepEqual from "../../../helpers/object/deepEqual";
|
||||||
|
import appUsersManager from "../../../lib/appManagers/appUsersManager";
|
||||||
|
import forEachReverse from "../../../helpers/array/forEachReverse";
|
||||||
|
|
||||||
const MAX_FOLDER_NAME_LENGTH = 12;
|
const MAX_FOLDER_NAME_LENGTH = 12;
|
||||||
|
|
||||||
@ -291,11 +293,27 @@ export default class AppEditFolderTab extends SliderSuperTab {
|
|||||||
const section = this[key];
|
const section = this[key];
|
||||||
const ul = appDialogsManager.createChatList();
|
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) => {
|
const renderMore = (_length: number) => {
|
||||||
for(let i = 0, length = Math.min(peers.length, _length); i < length; ++i) {
|
for(let i = 0, length = Math.min(peers.length, _length); i < length; ++i) {
|
||||||
const peerId = peers.shift();
|
const peerId = peers.shift();
|
||||||
|
if(peerId.isUser() ? false : !appMessagesManager.getDialogOnly(peerId)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
const {dom} = appDialogsManager.addDialogNew({
|
const {dom} = appDialogsManager.addDialogNew({
|
||||||
dialog: peerId,
|
dialog: peerId,
|
||||||
|
@ -2260,12 +2260,16 @@ export class AppMessagesManager {
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
// fullfillLeft();
|
||||||
|
// resolve();
|
||||||
|
}, (err) => {
|
||||||
|
// fullfillLeft();
|
||||||
|
// resolve();
|
||||||
|
// reject(err);
|
||||||
|
}).finally(() => {
|
||||||
fullfillLeft();
|
fullfillLeft();
|
||||||
resolve();
|
resolve();
|
||||||
}, (err) => {
|
|
||||||
fullfillLeft();
|
|
||||||
reject(err);
|
|
||||||
}).finally(() => {
|
|
||||||
this.reloadConversationsPromise = null;
|
this.reloadConversationsPromise = null;
|
||||||
|
|
||||||
if(this.reloadConversationsPeers.size) {
|
if(this.reloadConversationsPeers.size) {
|
||||||
|
@ -552,7 +552,7 @@ export class AppUsersManager {
|
|||||||
return id;
|
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() {
|
public getSelf() {
|
||||||
|
@ -322,29 +322,29 @@ export default class FiltersStorage {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private p(filterId: number, type: ArgumentTypes<FiltersStorage['reloadMissingPeerIds']>[1], missingPeerIds: PeerId[]) {
|
// private spliceMissingPeerIds(filterId: number, type: ArgumentTypes<FiltersStorage['reloadMissingPeerIds']>[1], missingPeerIds: PeerId[]) {
|
||||||
const filter = this.getFilter(filterId);
|
// const filter = this.getFilter(filterId);
|
||||||
const peers = filter && filter[type];
|
// const peers = filter && filter[type];
|
||||||
if(!peers?.length) {
|
// if(!peers?.length) {
|
||||||
return;
|
// return;
|
||||||
}
|
// }
|
||||||
|
|
||||||
let spliced = false;
|
// let spliced = false;
|
||||||
missingPeerIds.forEach((peerId) => {
|
// missingPeerIds.forEach((peerId) => {
|
||||||
const inputPeer = findAndSplice(peers, (inputPeer) => this.appPeersManager.getPeerId(inputPeer) === peerId);
|
// const inputPeer = findAndSplice(peers, (inputPeer) => this.appPeersManager.getPeerId(inputPeer) === peerId);
|
||||||
if(inputPeer) {
|
// if(inputPeer) {
|
||||||
spliced = true;
|
// spliced = true;
|
||||||
}
|
// }
|
||||||
});
|
// });
|
||||||
|
|
||||||
if(spliced) {
|
// if(spliced) {
|
||||||
this.onUpdateDialogFilter({
|
// this.onUpdateDialogFilter({
|
||||||
_: 'updateDialogFilter',
|
// _: 'updateDialogFilter',
|
||||||
id: filterId,
|
// id: filterId,
|
||||||
filter
|
// filter
|
||||||
});
|
// });
|
||||||
}
|
// }
|
||||||
}
|
// }
|
||||||
|
|
||||||
public reloadMissingPeerIds(filterId: number, type: 'pinned_peers' | 'include_peers' | 'exclude_peers' = 'pinned_peers') {
|
public reloadMissingPeerIds(filterId: number, type: 'pinned_peers' | 'include_peers' | 'exclude_peers' = 'pinned_peers') {
|
||||||
const filter = this.getFilter(filterId);
|
const filter = this.getFilter(filterId);
|
||||||
@ -353,23 +353,23 @@ export default class FiltersStorage {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const missingPeerIds: PeerId[] = [];
|
// const missingPeerIds: PeerId[] = [];
|
||||||
const reloadDialogs = peers.filter((inputPeer) => {
|
const reloadDialogs = peers.filter((inputPeer) => {
|
||||||
const peerId = this.appPeersManager.getPeerId(inputPeer);
|
const peerId = this.appPeersManager.getPeerId(inputPeer);
|
||||||
const isAlreadyReloaded = this.reloadedPeerIds.has(peerId);
|
const isAlreadyReloaded = this.reloadedPeerIds.has(peerId);
|
||||||
const dialog = this.appMessagesManager.getDialogOnly(peerId);
|
const dialog = this.appMessagesManager.getDialogOnly(peerId);
|
||||||
if(isAlreadyReloaded && !dialog) {
|
// if(isAlreadyReloaded && !dialog) {
|
||||||
missingPeerIds.push(peerId);
|
// missingPeerIds.push(peerId);
|
||||||
}
|
// }
|
||||||
|
|
||||||
const reload = !isAlreadyReloaded && !dialog;
|
const reload = !isAlreadyReloaded && !dialog;
|
||||||
return reload;
|
return reload;
|
||||||
});
|
});
|
||||||
|
|
||||||
if(!reloadDialogs.length) {
|
if(!reloadDialogs.length) {
|
||||||
if(missingPeerIds.length) {
|
// if(missingPeerIds.length) {
|
||||||
this.p(filterId, type, missingPeerIds);
|
// this.spliceMissingPeerIds(filterId, type, missingPeerIds);
|
||||||
}
|
// }
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -392,7 +392,7 @@ export default class FiltersStorage {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
this.p(filterId, type, missingPeerIds);
|
// this.spliceMissingPeerIds(filterId, type, missingPeerIds);
|
||||||
});
|
});
|
||||||
|
|
||||||
return reloadPromise;
|
return reloadPromise;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user