feat: collection move

Signed-off-by: Sebastian <krupinski01@gmail.com>
This commit is contained in:
2026-05-06 12:21:23 -04:00
parent 7f63c3383f
commit 47b3fbc9da
6 changed files with 148 additions and 10 deletions

View File

@@ -1,7 +1,6 @@
<script setup lang="ts">
import { computed, ref, watch } from 'vue'
import { useCollectionsStore } from '@MailManager/stores/collectionsStore'
import { useServicesStore } from '@MailManager/stores/servicesStore'
import { useMailStore } from '@/stores/mailStore'
import type { ServiceObject, CollectionObject } from '@MailManager/models'
import FolderSelectionTreeNode from './FolderSelectionTreeNode.vue'
@@ -12,6 +11,8 @@ interface Props {
title?: string
confirmText?: string
emptyText?: string
service?: ServiceObject | null
disabledFolderKeys?: string[]
}
const props = withDefaults(defineProps<Props>(), {
@@ -19,6 +20,8 @@ const props = withDefaults(defineProps<Props>(), {
title: 'Move To',
confirmText: 'Move',
emptyText: 'No folders are available.',
service: null,
disabledFolderKeys: () => [],
})
const emit = defineEmits<{
@@ -28,7 +31,6 @@ const emit = defineEmits<{
}>()
const collectionsStore = useCollectionsStore()
const servicesStore = useServicesStore()
const mailStore = useMailStore()
const selectedFolderKey = ref<string | null>(null)
@@ -50,13 +52,7 @@ interface ServiceGroup {
}
const serviceGroups = computed<ServiceGroup[]>(() => {
const context = mailStore.moveDialogService
if (!context) {
return []
}
const service = servicesStore.serviceByIdentifier(mailStore.moveDialogService)
const service = props.service ?? mailStore.moveDialogService
if (!service) {
return []
@@ -173,6 +169,7 @@ const handleConfirm = () => {
:folder="folder"
:service="group.service"
:selected-folder-key="selectedFolderKey"
:disabled-folder-keys="disabledFolderKeys"
@select="handleSelect"
/>