fix BUG of Right click to download media (#161)
This commit is contained in:
parent
274f611bdd
commit
a3212a9c5c
|
@ -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);
|
||||
});
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}, {
|
||||
|
|
Loading…
Reference in New Issue