Browse Source

Fix sending voice messages

Fix unneeded reading of bottom messages
master
Eduard Kuzmenko 3 years ago
parent
commit
ea195b380a
  1. 6
      src/components/audio.ts
  2. 11
      src/components/chat/bubbles.ts
  3. 4
      src/helpers/scrollSaver.ts

6
src/components/audio.ts

@ -692,6 +692,7 @@ export default class AudioElement extends HTMLElement {
} }
disconnectedCallback() { disconnectedCallback() {
setTimeout(() => {
if(this.isConnected) { if(this.isConnected) {
return; return;
} }
@ -705,11 +706,16 @@ export default class AudioElement extends HTMLElement {
this.readyPromise.reject(); this.readyPromise.reject();
} }
if(this.listenerSetter) {
this.listenerSetter.removeAll(); this.listenerSetter.removeAll();
this.listenerSetter = null; this.listenerSetter = null;
}
if(this.preloader) {
this.preloader = null; this.preloader = null;
} }
}, 100);
}
} }
customElements.define("audio-element", AudioElement); customElements.define("audio-element", AudioElement);

11
src/components/chat/bubbles.ts

@ -323,7 +323,7 @@ export default class ChatBubbles {
const _items = this.bubbleGroups.itemsArr.slice(); const _items = this.bubbleGroups.itemsArr.slice();
indexOfAndSplice(_items, item); indexOfAndSplice(_items, item);
const foundItem = this.bubbleGroups.findGroupSiblingByItem(newItem, _items); const foundItem = this.bubbleGroups.findGroupSiblingByItem(newItem, _items);
if(group === foundItem?.group/* && false */) { if(group === foundItem?.group || (group === this.bubbleGroups.getLastGroup() && group.items.length === 1)/* && false */) {
log && log('item has correct position', item); log && log('item has correct position', item);
this.bubbleGroups.changeBubbleMid(bubble, mid); this.bubbleGroups.changeBubbleMid(bubble, mid);
return; return;
@ -2902,21 +2902,22 @@ export default class ChatBubbles {
this.chat.dispatchEvent('setPeer', lastMsgId, !isJump); this.chat.dispatchEvent('setPeer', lastMsgId, !isJump);
this.setFetchReactionsInterval(afterSetPromise); Promise.all([
this.setFetchReactionsInterval(afterSetPromise),
this.setFetchHistoryInterval({ this.setFetchHistoryInterval({
afterSetPromise, afterSetPromise,
lastMsgId, lastMsgId,
samePeer, samePeer,
savedPosition, savedPosition,
topMessage topMessage
}); }),
]).then(() => {
log('scrolledAllDown:', scrollable.loadedAll.bottom); log('scrolledAllDown:', scrollable.loadedAll.bottom);
//if(!this.unreaded.length && dialog) { // lol //if(!this.unreaded.length && dialog) { // lol
if(scrollable.loadedAll.bottom && topMessage && !this.unreaded.size) { // lol if(scrollable.loadedAll.bottom && topMessage && !this.unreaded.size) { // lol
this.onScrolledAllDown(); this.onScrolledAllDown();
} }
});
if(chatType === 'chat') { if(chatType === 'chat') {
const dialog = await m(this.managers.appMessagesManager.getDialogOnly(peerId)); const dialog = await m(this.managers.appMessagesManager.getDialogOnly(peerId));

4
src/helpers/scrollSaver.ts

@ -85,7 +85,7 @@ export default class ScrollSaver {
public save() { public save() {
this.findAndSetElements(); this.findAndSetElements();
console.warn('scroll save', this.elements); // console.warn('scroll save', this.elements);
this._save(); this._save();
} }
@ -152,7 +152,7 @@ export default class ScrollSaver {
const diff = newRect.bottom - rect.bottom; const diff = newRect.bottom - rect.bottom;
this.setScrollTop(scrollTop + diff, useReflow); this.setScrollTop(scrollTop + diff, useReflow);
// if(diff) debugger; // if(diff) debugger;
console.warn('scroll restore', rect, diff, newRect); // console.warn('scroll restore', rect, diff, newRect);
} }
public _restore(useReflow?: boolean) { public _restore(useReflow?: boolean) {

Loading…
Cancel
Save