@@ -8,6 +8,7 @@ interface Props {
|
||||
folder: CollectionObject
|
||||
service: ServiceObject
|
||||
selectedFolderKey: string | null
|
||||
disabledFolderKeys?: string[]
|
||||
}
|
||||
|
||||
const props = defineProps<Props>()
|
||||
@@ -66,6 +67,7 @@ const folderColorFor = (folder: CollectionObject): string | undefined => {
|
||||
}
|
||||
|
||||
const key = computed(() => folderKeyFor(props.folder))
|
||||
const isDisabled = computed(() => (props.disabledFolderKeys ?? []).includes(key.value))
|
||||
|
||||
const childFolders = computed(() => {
|
||||
const serviceIdentifier = props.service.identifier
|
||||
@@ -89,6 +91,10 @@ const hasChildren = computed(() => {
|
||||
const isSelected = computed(() => props.selectedFolderKey === key.value)
|
||||
|
||||
const onSelect = () => {
|
||||
if (isDisabled.value) {
|
||||
return
|
||||
}
|
||||
|
||||
emit('select', props.folder)
|
||||
}
|
||||
|
||||
@@ -111,6 +117,7 @@ const onGroupDoubleClick = () => {
|
||||
class="folder-node"
|
||||
:title="folderLabelFor(folder)"
|
||||
:active="isSelected"
|
||||
:disabled="isDisabled"
|
||||
@click="onSelect"
|
||||
@dblclick.stop="onGroupDoubleClick"
|
||||
>
|
||||
@@ -152,6 +159,7 @@ const onGroupDoubleClick = () => {
|
||||
class="folder-node"
|
||||
:title="folderLabelFor(folder)"
|
||||
:active="isSelected"
|
||||
:disabled="isDisabled"
|
||||
@click="onSelect"
|
||||
>
|
||||
<template #prepend>
|
||||
|
||||
Reference in New Issue
Block a user