refactor: split stores and use events
Signed-off-by: Sebastian <krupinski01@gmail.com>
This commit is contained in:
@@ -8,20 +8,22 @@ interface Props {
|
||||
modelValue: boolean
|
||||
service: ServiceObject
|
||||
folder: CollectionObject
|
||||
loading?: boolean
|
||||
errorMessage?: string
|
||||
}
|
||||
|
||||
const props = defineProps<Props>()
|
||||
const props = withDefaults(defineProps<Props>(), {
|
||||
loading: false,
|
||||
errorMessage: '',
|
||||
})
|
||||
|
||||
const emit = defineEmits<{
|
||||
'update:modelValue': [value: boolean]
|
||||
deleted: [folder: CollectionObject]
|
||||
confirm: []
|
||||
}>()
|
||||
|
||||
const collectionsStore = useCollectionsStore()
|
||||
|
||||
const loading = ref(false)
|
||||
const errorMessage = ref('')
|
||||
|
||||
const dialogValue = computed({
|
||||
get: () => props.modelValue,
|
||||
set: (value: boolean) => emit('update:modelValue', value),
|
||||
@@ -33,37 +35,17 @@ const hasChildren = computed(() => {
|
||||
return collectionsStore.hasChildrenInCollection(props.folder.provider, props.folder.service, props.folder.identifier)
|
||||
})
|
||||
|
||||
const resetState = () => {
|
||||
loading.value = false
|
||||
errorMessage.value = ''
|
||||
}
|
||||
|
||||
watch(dialogValue, isOpen => {
|
||||
if (isOpen) {
|
||||
resetState()
|
||||
}
|
||||
})
|
||||
|
||||
const handleDelete = async () => {
|
||||
loading.value = true
|
||||
errorMessage.value = ''
|
||||
|
||||
try {
|
||||
await collectionsStore.delete(props.folder.provider, props.folder.service, props.folder.identifier)
|
||||
emit('deleted', props.folder)
|
||||
dialogValue.value = false
|
||||
resetState()
|
||||
} catch (error: any) {
|
||||
console.error('[DeleteFolderDialog] Failed to delete folder:', error)
|
||||
errorMessage.value = error.message || 'Failed to delete folder. Please try again.'
|
||||
} finally {
|
||||
loading.value = false
|
||||
}
|
||||
const handleDelete = () => {
|
||||
emit('confirm')
|
||||
}
|
||||
|
||||
const handleCancel = () => {
|
||||
dialogValue.value = false
|
||||
resetState()
|
||||
}
|
||||
</script>
|
||||
|
||||
|
||||
Reference in New Issue
Block a user