Browse Source

Better local dialog draft dropping

Fix emoji margin
master
morethanwords 3 years ago
parent
commit
4ed47d722d
  1. 13
      src/lib/appManagers/appDialogsManager.ts
  2. 13
      src/lib/appManagers/appMessagesManager.ts
  3. 2
      src/lib/rootScope.ts
  4. 10
      src/scss/style.scss

13
src/lib/appManagers/appDialogsManager.ts

@ -301,14 +301,15 @@ export class AppDialogsManager { @@ -301,14 +301,15 @@ export class AppDialogsManager {
this.setUnreadMessages(dialog); // возможно это не нужно, но нужно менять is-muted
});
rootScope.addEventListener('dialog_draft', ({peerId}) => {
const dialog = appMessagesManager.getDialogOnly(peerId);
if(dialog) {
rootScope.addEventListener('dialog_draft', ({dialog, drop, peerId}) => {
if(drop) {
this.sortedList.delete(peerId);
} else {
this.updateDialog(dialog);
}
if(this.processContact) {
this.processContact(peerId);
}
if(this.processContact) {
this.processContact(peerId);
}
});

13
src/lib/appManagers/appMessagesManager.ts

@ -299,16 +299,19 @@ export class AppMessagesManager { @@ -299,16 +299,19 @@ export class AppMessagesManager {
if(!threadId) {
dialog.draft = draft;
let drop = false;
if(!draft && !appMessagesIdsManager.getServerMessageId(dialog.top_message)) {
this.dialogsStorage.dropDialogWithEvent(peerId);
return;
this.dialogsStorage.dropDialog(peerId);
drop = true;
} else {
this.dialogsStorage.generateIndexForDialog(dialog);
this.dialogsStorage.pushDialog(dialog);
}
this.dialogsStorage.generateIndexForDialog(dialog);
this.dialogsStorage.pushDialog(dialog);
rootScope.dispatchEvent('dialog_draft', {
peerId,
dialog,
drop,
draft,
index: dialog.index
});

2
src/lib/rootScope.ts

@ -36,7 +36,7 @@ export type BroadcastEvents = { @@ -36,7 +36,7 @@ export type BroadcastEvents = {
'filter_update': MyDialogFilter,
'filter_order': number[],
'dialog_draft': {peerId: number, draft: MyDraftMessage | undefined, index: number},
'dialog_draft': {peerId: number, dialog: Dialog, drop: boolean, draft: MyDraftMessage | undefined, index: number},
'dialog_unread': {peerId: number},
'dialog_flush': {peerId: number},
'dialog_drop': {peerId: number, dialog?: Dialog},

10
src/scss/style.scss

@ -860,8 +860,14 @@ not screen and ( -o-min-device-pixel-ratio: 2/1), @@ -860,8 +860,14 @@ not screen and ( -o-min-device-pixel-ratio: 2/1),
not screen and ( min-device-pixel-ratio: 2),
not screen and ( min-resolution: 192dpi),
not screen and ( min-resolution: 2dppx) {
span.emoji {
margin-right: 5px;
html:not(.is-safari) {
span.emoji {
margin-right: 5px;
}
avatar-element span.emoji {
margin-right: 0;
}
}
}

Loading…
Cancel
Save