diff --git a/src/components/MessageReader.vue b/src/components/MessageReader.vue index fbfff3c..56f782e 100644 --- a/src/components/MessageReader.vue +++ b/src/components/MessageReader.vue @@ -3,6 +3,7 @@ import { computed, ref, watch } from 'vue' import { useUser } from '@KTXC' import type { EntityObject, MessageObject } from '@MailManager/models' import { SecurityLevel } from '@/utile/emailSanitizer' +import { useMailStore } from '@/stores/mailStore' import ReaderEmpty from './reader/ReaderEmpty.vue' import ReaderToolbar from './reader/ReaderToolbar.vue' import ReaderHeader from './reader/ReaderHeader.vue' @@ -25,6 +26,7 @@ const emit = defineEmits<{ // User settings const { getSetting } = useUser() +const mailStore = useMailStore() // Per-message overrides const allowImages = ref(false) @@ -94,6 +96,14 @@ const handleMove = () => { } } +const handleDownload = async (partIndex?: number) => { + if (!props.entity) { + return + } + + await mailStore.downloadMessage(props.entity, partIndex) +} + const handleFlag = () => { if (props.entity) { emit('flag', props.entity) @@ -125,13 +135,17 @@ const handleCompose = () => { @move="handleMove" @delete="handleDelete" @flag="handleFlag" + @download="handleDownload()" @toggle-images="toggleImages" @set-security-level="setSecurityLevel" />
- + diff --git a/src/components/reader/ReaderHeader.vue b/src/components/reader/ReaderHeader.vue index 94f2f6b..d1d5df9 100644 --- a/src/components/reader/ReaderHeader.vue +++ b/src/components/reader/ReaderHeader.vue @@ -1,16 +1,25 @@