feat: implement patch and settings store

Signed-off-by: Sebastian <krupinski01@gmail.com>
This commit is contained in:
2026-05-19 22:27:51 -04:00
parent c3c41f7ba0
commit 8ba40a971e
9 changed files with 560 additions and 330 deletions

View File

@@ -35,7 +35,6 @@ const mailUiStore = useMailUiStore()
// storeToRefs preserves reactivity for state and computed properties
const {
loading,
selectedFolder,
selectedMessage,
currentMessages,
} = storeToRefs(mailStore)
@@ -43,6 +42,7 @@ const {
const {
sidebarVisible,
settingsDialogVisible,
selectedFolder,
composeMode,
composeSource,
composeVisible,
@@ -83,7 +83,7 @@ const lastSyncLabel = computed(() => {
// Initialize
onMounted(async () => {
if (!isManagerAvailable.value) return
await mailStore.initialize()
await mailUiStore.initialize()
})
// Handlers — thin wrappers that delegate to the store
@@ -92,7 +92,11 @@ const {
validateRenameFolderName,
} = mailUiStore
const handleFolderSelect = (folder: CollectionObject) => mailStore.selectFolder(folder)
const sidebarToggle = () => mailUiStore.sidebarToggle()
const handleSettingsOpen = () => mailUiStore.settingsOpen()
const handleFolderSelect = (folder: CollectionObject) => mailUiStore.selectFolder(folder)
const handleFolderCreateConfirm = async (folderName: string) => {
try {
@@ -141,7 +145,7 @@ const handleMessageOpen = (message: EntityObject) => {
mailStore.selectMessage(message)
if (isMobile.value) {
mailUiStore.closeSidebar()
mailUiStore.sidebarHide()
}
}
@@ -153,6 +157,10 @@ const handleMessageComposeForward = (message: EntityObject) => mailUiStore.openC
const handleMessageComposeClose = () => mailUiStore.closeCompose()
const handleMessageFlag = (message: EntityObject, flag: string, value: boolean) => {
mailStore.flagMessages([message.identifier], { [flag]: value })
}
const handleMessageDelete = (message: EntityObject) => {
mailStore.deleteMessages([message.identifier])
}
@@ -175,12 +183,10 @@ const handleMessageSelectionClear = () => mailUiStore.messageSelectionModeDeacti
const handleMessageSelectionMove = () => mailUiStore.openMoveMessagesDialog()
const handleMessageSelectionFlag = (flag: string, value: boolean) => mailUiStore.flagSelectedMessages(flag, value)
const handleMessageSelectionDelete = () => mailUiStore.deleteSelectedMessages()
const toggleSidebar = () => mailUiStore.toggleSidebar()
const handleSettingsOpen = () => mailUiStore.openSettings()
</script>
<template>
@@ -210,7 +216,7 @@ const handleSettingsOpen = () => mailUiStore.openSettings()
<v-app-bar class="mail-toolbar" elevation="0" density="compact">
<v-app-bar-nav-icon
v-if="isMobile"
@click="toggleSidebar"
@click="sidebarToggle"
/>
<v-app-bar-title>Mail</v-app-bar-title>
@@ -296,6 +302,7 @@ const handleSettingsOpen = () => mailUiStore.openSettings()
@selection-toggle-one="handleMessageSelectionToggleOne"
@selection-toggle-all="handleMessageSelectionToggleAll"
@selection-clear="handleMessageSelectionClear"
@selection-flag="handleMessageSelectionFlag"
@selection-move="handleMessageSelectionMove"
@selection-delete="handleMessageSelectionDelete"
/>