Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 9d24e23bea |
+5
-49
@@ -1,5 +1,5 @@
|
|||||||
<script setup lang="ts">
|
<script setup lang="ts">
|
||||||
import { computed, onMounted, ref, unref } from 'vue'
|
import { computed, onMounted, unref } from 'vue'
|
||||||
import { storeToRefs } from 'pinia'
|
import { storeToRefs } from 'pinia'
|
||||||
import { useDisplay } from 'vuetify'
|
import { useDisplay } from 'vuetify'
|
||||||
import { useModuleStore } from '@KTXC'
|
import { useModuleStore } from '@KTXC'
|
||||||
@@ -75,21 +75,6 @@ const {
|
|||||||
// Complex store/composable objects accessed directly (not simple refs)
|
// Complex store/composable objects accessed directly (not simple refs)
|
||||||
const { mailSync, entitiesStore } = mailOperationsStore
|
const { mailSync, entitiesStore } = mailOperationsStore
|
||||||
|
|
||||||
// Message search (filters the current message list by subject/sender)
|
|
||||||
const searchQuery = ref('')
|
|
||||||
|
|
||||||
const filteredMessages = computed(() => {
|
|
||||||
const query = (searchQuery.value ?? '').trim().toLowerCase()
|
|
||||||
if (!query) return currentMessages.value
|
|
||||||
|
|
||||||
return currentMessages.value.filter((message: EntityObject) => {
|
|
||||||
const subject = (message.properties.subject || '').toLowerCase()
|
|
||||||
const fromLabel = (message.properties.from?.label || '').toLowerCase()
|
|
||||||
const fromAddress = (message.properties.from?.address || '').toLowerCase()
|
|
||||||
return subject.includes(query) || fromLabel.includes(query) || fromAddress.includes(query)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
|
|
||||||
const lastSyncLabel = computed(() => {
|
const lastSyncLabel = computed(() => {
|
||||||
const lastSync = unref(unref(mailSync.lastSync))
|
const lastSync = unref(unref(mailSync.lastSync))
|
||||||
|
|
||||||
@@ -231,34 +216,17 @@ const handleMessageSelectionDelete = () => mailUiStore.deleteSelectedMessages()
|
|||||||
<div v-else class="mail-container">
|
<div v-else class="mail-container">
|
||||||
<!-- Top toolbar -->
|
<!-- Top toolbar -->
|
||||||
<v-toolbar class="mail-toolbar" elevation="0" density="compact">
|
<v-toolbar class="mail-toolbar" elevation="0" density="compact">
|
||||||
<template #prepend>
|
|
||||||
<v-btn
|
<v-btn
|
||||||
|
v-if="isMobile"
|
||||||
icon="mdi-menu"
|
icon="mdi-menu"
|
||||||
variant="text"
|
variant="text"
|
||||||
@click="sidebarToggle"
|
@click="sidebarToggle"
|
||||||
/>
|
/>
|
||||||
</template>
|
|
||||||
|
|
||||||
<v-toolbar-title class="d-flex align-center">
|
<v-toolbar-title>Mail</v-toolbar-title>
|
||||||
<v-icon size="24" color="primary" class="mr-2">mdi-email</v-icon>
|
|
||||||
<span class="text-subtitle-1 font-weight-bold">Mail</span>
|
|
||||||
</v-toolbar-title>
|
|
||||||
|
|
||||||
<v-spacer />
|
<v-spacer />
|
||||||
|
|
||||||
<!-- Search -->
|
|
||||||
<v-text-field
|
|
||||||
v-model="searchQuery"
|
|
||||||
density="compact"
|
|
||||||
variant="outlined"
|
|
||||||
placeholder="Search messages..."
|
|
||||||
prepend-inner-icon="mdi-magnify"
|
|
||||||
hide-details
|
|
||||||
single-line
|
|
||||||
clearable
|
|
||||||
class="mail-toolbar-search mx-4"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<v-btn
|
<v-btn
|
||||||
icon="mdi-pencil"
|
icon="mdi-pencil"
|
||||||
@click="handleMessageComposeFresh()"
|
@click="handleMessageComposeFresh()"
|
||||||
@@ -297,7 +265,7 @@ const handleMessageSelectionDelete = () => mailUiStore.deleteSelectedMessages()
|
|||||||
<v-navigation-drawer
|
<v-navigation-drawer
|
||||||
v-model="sidebarVisible"
|
v-model="sidebarVisible"
|
||||||
contained
|
contained
|
||||||
:permanent="sidebarVisible && !isMobile"
|
:permanent="!isMobile"
|
||||||
:temporary="isMobile"
|
:temporary="isMobile"
|
||||||
width="280"
|
width="280"
|
||||||
class="mail-sidebar"
|
class="mail-sidebar"
|
||||||
@@ -331,7 +299,7 @@ const handleMessageSelectionDelete = () => mailUiStore.deleteSelectedMessages()
|
|||||||
:style="{ '--mail-list-width': messageListWidth + '%' }"
|
:style="{ '--mail-list-width': messageListWidth + '%' }"
|
||||||
>
|
>
|
||||||
<MessageList
|
<MessageList
|
||||||
:messages="filteredMessages"
|
:messages="currentMessages"
|
||||||
:selected-collection="selectedFolder"
|
:selected-collection="selectedFolder"
|
||||||
:selected-message="selectedMessage"
|
:selected-message="selectedMessage"
|
||||||
:selection-list="selectionList"
|
:selection-list="selectionList"
|
||||||
@@ -468,18 +436,6 @@ const handleMessageSelectionDelete = () => mailUiStore.deleteSelectedMessages()
|
|||||||
|
|
||||||
.mail-toolbar {
|
.mail-toolbar {
|
||||||
flex-shrink: 0;
|
flex-shrink: 0;
|
||||||
border-bottom: 1px solid rgb(var(--v-border-color)) !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mail-toolbar-search {
|
|
||||||
max-width: 300px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 960px) {
|
|
||||||
.mail-toolbar-search {
|
|
||||||
max-width: 180px;
|
|
||||||
margin-inline: 8px !important;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
.mail-content {
|
.mail-content {
|
||||||
|
|||||||
Reference in New Issue
Block a user