From 3cd606ad2152ab9489d9cdb0c02cb4a6059563b8 Mon Sep 17 00:00:00 2001 From: Denis Bykhov Date: Wed, 26 Apr 2023 00:32:07 +0600 Subject: [PATCH] Attachment click handler (#3077) Signed-off-by: Denis Bykhov --- .../src/components/AttachmentPresenter.svelte | 90 ++++++++----------- 1 file changed, 39 insertions(+), 51 deletions(-) diff --git a/plugins/attachment-resources/src/components/AttachmentPresenter.svelte b/plugins/attachment-resources/src/components/AttachmentPresenter.svelte index 4da7451b2a..e7395b4f9b 100644 --- a/plugins/attachment-resources/src/components/AttachmentPresenter.svelte +++ b/plugins/attachment-resources/src/components/AttachmentPresenter.svelte @@ -44,28 +44,48 @@ contentType.startsWith('application/msword') ) } + + function clickHandler (e: MouseEvent) { + if (!openEmbedded(value.type)) return + e.preventDefault() + e.stopPropagation() + if (e.metaKey || e.ctrlKey) { + window.open((e.target as HTMLAnchorElement).href, '_blank') + return + } + closeTooltip() + showPopup( + PDFViewer, + { file: value.file, name: value.name, contentType: value.type, value }, + isImage(value.type) ? 'centered' : 'float' + ) + } + + function middleClickHandler (e: MouseEvent) { + if (e.button !== 1) return + e.preventDefault() + e.stopPropagation() + window.open((e.target as HTMLAnchorElement).href, '_blank') + }
- {#if openEmbedded(value.type)} - -
{ - closeTooltip() - showPopup( - PDFViewer, - { file: value.file, name: value.name, contentType: value.type, value }, - isImage(value.type) ? 'centered' : 'float' - ) - }} - > + +
{iconLabel(value.name)} {#if removable} +
{ + on:click={(ev) => { ev.stopPropagation() + ev.preventDefault() dispatch('remove') }} > @@ -73,45 +93,13 @@
{/if}
- {:else} -
-
- {iconLabel(value.name)} - {#if removable} - -
{ - ev.stopPropagation() - ev.preventDefault() - dispatch('remove') - }} - > - -
- {/if} -
-
- {/if} +
- {#if openEmbedded(value.type)} - -
{ - closeTooltip() - showPopup( - PDFViewer, - { file: value.file, name: value.name, contentType: value.type, value }, - isImage(value.type) ? 'centered' : 'float' - ) - }} - > + - {:else} - - {/if} + +
{filesize(value.size)}