This commit is contained in:
Eduard Kuzmenko 2022-09-25 21:52:45 +04:00
commit afccc3d2b7
2 changed files with 17 additions and 8 deletions

View File

@ -259,7 +259,7 @@ export default class AppMediaViewer extends AppMediaViewerBase<'caption', 'delet
const fromId = (message as Message.message).fwd_from && !message.fromId ? (message as Message.message).fwd_from.from_name : message.fromId;
const media = getMediaFromMessage(message);
const cantForwardMessage = message._ === 'messageService' || !this.managers.appMessagesManager.canForward(message);
const cantForwardMessage = message._ === 'messageService' || ! await this.managers.appMessagesManager.canForward(message);
[this.buttons.forward, this.btnMenuForward.element].forEach((button) => {
button.classList.toggle('hide', cantForwardMessage);
});
@ -271,7 +271,7 @@ export default class AppMediaViewer extends AppMediaViewerBase<'caption', 'delet
button.classList.toggle('hide', cantDownloadMessage);
});
const canDeleteMessage = this.managers.appMessagesManager.canDeleteMessage(message);
const canDeleteMessage = await this.managers.appMessagesManager.canDeleteMessage(message);
[this.buttons.delete, this.btnMenuDelete.element].forEach((button) => {
button.classList.toggle('hide', !canDeleteMessage);
});

View File

@ -432,19 +432,28 @@ export default class ChatContextMenu {
icon: 'download',
text: 'MediaViewer.Context.Download',
onClick: () => {
appDownloadManager.downloadToDisc({media: (this.message as any).media.document});
appDownloadManager.downloadToDisc({media: (this.message as any).media?.document || (this.message as any).media.photo});
},
verify: () => {
if(this.message.pFlags.is_outgoing) {
if(this.message.pFlags.is_outgoing || this.noForwards) {
return false;
}
const doc: MyDocument = ((this.message as Message.message).media as MessageMedia.messageMediaDocument)?.document as any;
if(!doc) return false;
const isPhoto: boolean = !!((this.message as Message.message).media as MessageMedia.messageMediaPhoto)?.photo;
let isGoodType = false
if(isPhoto) {
isGoodType = true;
} else {
const doc: MyDocument = ((this.message as Message.message).media as MessageMedia.messageMediaDocument)?.document as any;
if(!doc) return false;
isGoodType = doc.type && (['gif', 'video'/* , 'sticker' */] as MyDocument['type'][]).includes(doc.type)
}
let hasTarget = !!IS_TOUCH_SUPPORTED;
const isGoodType = !doc.type || !(['gif', 'video'/* , 'sticker' */] as MyDocument['type'][]).includes(doc.type);
if(isGoodType) hasTarget ||= !!findUpClassName(this.target, 'document') || !!findUpClassName(this.target, 'audio') || !!findUpClassName(this.target, 'media-sticker-wrapper');
if(isGoodType) hasTarget ||= !!findUpClassName(this.target, 'document') || !!findUpClassName(this.target, 'audio') || !!findUpClassName(this.target, 'media-sticker-wrapper') || !!findUpClassName(this.target, 'media-photo') || !!findUpClassName(this.target, 'media-video');
return isGoodType && hasTarget;
}
}, {