diff --git a/src/components/sidebarLeft/tabs/editFolder.ts b/src/components/sidebarLeft/tabs/editFolder.ts index ffb43bf5..46f5a327 100644 --- a/src/components/sidebarLeft/tabs/editFolder.ts +++ b/src/components/sidebarLeft/tabs/editFolder.ts @@ -62,7 +62,7 @@ export default class AppEditFolderTab implements SliderTab { lottieLoader.loadAnimationFromURL({ container: this.stickerContainer, - loop: true, + loop: false, autoplay: true, width: 86, height: 86 @@ -88,9 +88,7 @@ export default class AppEditFolderTab implements SliderTab { } let include = (Array.from(includedFlagsContainer.children) as HTMLElement[]).slice(1).reduce((acc, el) => acc + +!el.style.display, 0); - if(this.include_peers.lastElementChild.tagName == 'UL') { - include += this.include_peers.lastElementChild.childElementCount; - } + include += this.filter.include_peers.length; if(!include) { toast('Please choose at least one chat for this folder.'); diff --git a/src/components/sidebarLeft/tabs/includedChats.ts b/src/components/sidebarLeft/tabs/includedChats.ts index ceeb4d0d..1eee6fdd 100644 --- a/src/components/sidebarLeft/tabs/includedChats.ts +++ b/src/components/sidebarLeft/tabs/includedChats.ts @@ -60,7 +60,30 @@ export default class AppIncludedChatsTab implements SliderTab { } } + if(this.type == 'included') { + this.filter.pinned_peers = this.filter.pinned_peers.filter(peerID => { + return peers.includes(peerID); // * because I have pinned peer in include_peers too + /* const index = peers.indexOf(peerID); + if(index !== -1) { + peers.splice(index, 1); + return true; + } else { + return false; + } */ + }); + } else { + this.filter.pinned_peers = this.filter.pinned_peers.filter(peerID => { + return !peers.includes(peerID); + }); + } + + const other = this.type == 'included' ? 'exclude_peers' : 'include_peers'; + this.filter[other] = this.filter[other].filter(peerID => { + return !peers.includes(peerID); + }); + this.filter[this.type == 'included' ? 'include_peers' : 'exclude_peers'] = peers; + //this.filter.pinned_peers = this.filter.pinned_peers.filter(peerID => this.filter.include_peers.includes(peerID)); appSidebarLeft.editFolderTab.setFilter(this.filter, false); this.closeBtn.click(); @@ -72,10 +95,10 @@ export default class AppIncludedChatsTab implements SliderTab { } renderResults = (peerIDs: number[]) => { - const other = this.type == 'included' ? this.filter.exclude_peers : this.filter.include_peers; + //const other = this.type == 'included' ? this.filter.exclude_peers : this.filter.include_peers; peerIDs.forEach(peerID => { - if(other.includes(peerID)) return; + //if(other.includes(peerID)) return; const {dom} = appDialogsManager.addDialog(peerID, this.selector.scrollable, false, false); diff --git a/src/lib/appManagers/appDownloadManager.ts b/src/lib/appManagers/appDownloadManager.ts index eb99f4b3..67a2d348 100644 --- a/src/lib/appManagers/appDownloadManager.ts +++ b/src/lib/appManagers/appDownloadManager.ts @@ -85,6 +85,9 @@ export class AppDownloadManager { const bytes: ReferenceBytes = options?.location?.file_reference; if(bytes) { referenceDatabase.refreshReference(bytes).then(tryDownload); + /* referenceDatabase.refreshReference(bytes).then(() => { + console.log('FILE_REFERENCE_EXPIRED: refreshed reference', bytes); + }); */ break; } else { console.warn('FILE_REFERENCE_EXPIRED: no context for bytes:', bytes); diff --git a/src/lib/mtproto/referenceDatabase.ts b/src/lib/mtproto/referenceDatabase.ts index 2629333d..7eb1b6a0 100644 --- a/src/lib/mtproto/referenceDatabase.ts +++ b/src/lib/mtproto/referenceDatabase.ts @@ -49,7 +49,7 @@ class ReferenceDatabase { } public getContexts(reference: ReferenceBytes): [ReferenceContexts, ReferenceBytes] { - const contexts = this.contexts.get(reference) || (reference = this.getReferenceByLink(reference), this.contexts.get(reference)); + const contexts = this.contexts.get(reference) || (reference = this.getReferenceByLink(reference) || reference, this.contexts.get(reference)); return [contexts, reference]; } @@ -82,7 +82,7 @@ class ReferenceDatabase { case 'message': { return appMessagesManager.wrapSingleMessage(context.messageID, true); // .then(() => { - // console.log('FILE_REFERENCE_EXPIRED: got message', context, options, appMessagesManager.getMessage(context.messageID).media); + // console.log('FILE_REFERENCE_EXPIRED: got message', context, appMessagesManager.getMessage((context as ReferenceContext.referenceContextMessage).messageID).media, reference); // }); } diff --git a/src/lib/utils.ts b/src/lib/utils.ts index f818d81a..55afaf73 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -287,7 +287,7 @@ export function safeReplaceArrayInObject(key: K, wasObject: any, newObject: a wasObject[key].length = newObject[key].length; (newObject[key] as any[]).forEach((v, i) => { wasObject[key][i] = v; - }) + }); /* wasObject[key].set(newObject[key]); */ newObject[key] = wasObject[key];