fix: Display native context menu on image, video preview modals (#6756)
This commit is contained in:
@@ -1,7 +1,11 @@
|
||||
<template>
|
||||
<li v-if="shouldRenderMessage" :class="alignBubble">
|
||||
<div :class="wrapClass" @contextmenu="openContextMenu($event)">
|
||||
<div v-tooltip.top-start="messageToolTip" :class="bubbleClass">
|
||||
<div :class="wrapClass">
|
||||
<div
|
||||
v-tooltip.top-start="messageToolTip"
|
||||
:class="bubbleClass"
|
||||
@contextmenu="openContextMenu($event)"
|
||||
>
|
||||
<bubble-mail-head
|
||||
:email-attributes="contentAttributes.email"
|
||||
:cc="emailHeadAttributes.cc"
|
||||
@@ -32,7 +36,11 @@
|
||||
:url="attachment.data_url"
|
||||
@error="onImageLoadError"
|
||||
/>
|
||||
<audio v-else-if="attachment.file_type === 'audio'" controls>
|
||||
<audio
|
||||
v-else-if="attachment.file_type === 'audio'"
|
||||
controls
|
||||
class="skip-context-menu"
|
||||
>
|
||||
<source :src="attachment.data_url" />
|
||||
</audio>
|
||||
<bubble-video
|
||||
@@ -429,9 +437,13 @@ export default {
|
||||
this.hasImageError = true;
|
||||
},
|
||||
openContextMenu(e) {
|
||||
if (getSelection().toString()) {
|
||||
const shouldSkipContextMenu = e.target?.classList.contains(
|
||||
'skip-context-menu'
|
||||
);
|
||||
if (shouldSkipContextMenu || getSelection().toString()) {
|
||||
return;
|
||||
}
|
||||
|
||||
e.preventDefault();
|
||||
if (e.type === 'contextmenu') {
|
||||
this.$track(ACCOUNT_EVENTS.OPEN_MESSAGE_CONTEXT_MENU);
|
||||
@@ -479,7 +491,8 @@ export default {
|
||||
}
|
||||
}
|
||||
|
||||
&.is-image.is-text > .message-text__wrap {
|
||||
&.is-image.is-text > .message-text__wrap,
|
||||
&.is-video.is-text > .message-text__wrap {
|
||||
max-width: 32rem;
|
||||
padding: var(--space-small) var(--space-normal);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user