Browse Source

Fix clearing message input after sending comment

master
Eduard Kuzmenko 3 years ago
parent
commit
f6c9a2d327
  1. 4
      src/components/chat/input.ts
  2. 12
      src/lib/appManagers/appDraftsManager.ts

4
src/components/chat/input.ts

@ -1016,6 +1016,10 @@ export default class ChatInput {
}; };
public setUnreadCount() { public setUnreadCount() {
if(!this.goDownUnreadBadge) {
return;
}
const dialog = this.appMessagesManager.getDialogOnly(this.chat.peerId); const dialog = this.appMessagesManager.getDialogOnly(this.chat.peerId);
const count = dialog?.unread_count; const count = dialog?.unread_count;
this.goDownUnreadBadge.innerText = '' + (count || ''); this.goDownUnreadBadge.innerText = '' + (count || '');

12
src/lib/appManagers/appDraftsManager.ts

@ -23,6 +23,7 @@ import { isObject } from "../mtproto/bin_utils";
import { MOUNT_CLASS_TO } from "../../config/debug"; import { MOUNT_CLASS_TO } from "../../config/debug";
import stateStorage from "../stateStorage"; import stateStorage from "../stateStorage";
import appMessagesIdsManager from "./appMessagesIdsManager"; import appMessagesIdsManager from "./appMessagesIdsManager";
import assumeType from "../../helpers/assumeType";
export type MyDraftMessage = DraftMessage.draftMessage; export type MyDraftMessage = DraftMessage.draftMessage;
@ -182,7 +183,7 @@ export class AppDraftsManager {
return draft; return draft;
} }
public async syncDraft(peerId: PeerId, threadId: number, localDraft?: MyDraftMessage, saveOnServer = true, force = false) { public async syncDraft(peerId: PeerId, threadId: number, localDraft?: DraftMessage, saveOnServer = true, force = false) {
// console.warn(dT(), 'sync draft', peerID) // console.warn(dT(), 'sync draft', peerID)
const serverDraft = this.getDraft(peerId, threadId); const serverDraft = this.getDraft(peerId, threadId);
if(this.draftsAreEqual(serverDraft, localDraft)) { if(this.draftsAreEqual(serverDraft, localDraft)) {
@ -200,6 +201,7 @@ export class AppDraftsManager {
if(this.isEmptyDraft(localDraft)) { if(this.isEmptyDraft(localDraft)) {
draftObj = {_: 'draftMessageEmpty'}; draftObj = {_: 'draftMessageEmpty'};
} else { } else {
assumeType<DraftMessage.draftMessage>(localDraft);
let message = localDraft.message; let message = localDraft.message;
let entities: MessageEntity[] = localDraft.entities; let entities: MessageEntity[] = localDraft.entities;
@ -248,10 +250,14 @@ export class AppDraftsManager {
} }
public clearDraft(peerId: PeerId, threadId: number) { public clearDraft(peerId: PeerId, threadId: number) {
const emptyDraft: DraftMessage.draftMessageEmpty = {
_: 'draftMessageEmpty'
};
if(threadId) { if(threadId) {
this.syncDraft(peerId, threadId); this.syncDraft(peerId, threadId, emptyDraft as any, false, true);
} else { } else {
this.saveDraft(peerId, threadId, null, {notify: true, force: true}); this.saveDraft(peerId, threadId, emptyDraft, {notify: true, force: true});
} }
} }

Loading…
Cancel
Save