diff --git a/frontend/src/components/SessionTree.vue b/frontend/src/components/SessionTree.vue index 33e35d6..9f12277 100644 --- a/frontend/src/components/SessionTree.vue +++ b/frontend/src/components/SessionTree.vue @@ -8,7 +8,7 @@ import { useTreeSearch } from '../composables/useTreeSearch' import SessionTreeNode from './SessionTreeNode.vue' import ContextMenu from './ContextMenu.vue' import type { ContextMenuItem } from './ContextMenu.vue' -import { FolderPlus, Edit2, Trash2, Search, X } from 'lucide-vue-next' +import { FolderPlus, Edit2, Trash2, Search, X, ChevronDown, ChevronRight } from 'lucide-vue-next' const treeStore = useSessionTreeStore() const workspaceStore = useWorkspaceStore() @@ -18,6 +18,7 @@ const newFolderName = ref('') const showRenameDialog = ref(false) const renameNodeId = ref(null) const renameValue = ref('') +const allExpanded = ref(true) // Search functionality const nodesRef = computed(() => treeStore.nodes) @@ -175,6 +176,16 @@ function deleteNode(nodeId: string) { treeStore.deleteNode(nodeId) } } + +function toggleExpandAll() { + if (allExpanded.value) { + treeStore.collapseAll() + allExpanded.value = false + } else { + treeStore.expandAll() + allExpanded.value = true + } +}