11import { useXoKubernetesTreeDefinitions } from '@/modules/kubernetes/composables/xo-kubernetes-tree-definitions.composable.ts'
22import { useXoSiteTreeDefinitions } from '@/modules/site/composables/xo-site-tree-definitions.composable.ts'
3- import type { TreeNodeId } from '@core/packages /tree/types .ts'
3+ import { useTreeCollapse } from '@core/composables /tree-collapse.composable .ts'
44import { useTreeFilter } from '@core/composables/tree-filter.composable.ts'
55import { useTree } from '@core/packages/tree/use-tree.ts'
6- import { useLocalStorage } from '@vueuse/core'
76import { logicAnd } from '@vueuse/math'
8- import { computed , reactive , ref , watch } from 'vue'
7+ import { computed } from 'vue'
98
109export function useNavigationTree ( ) {
1110 const { filter, predicate, isSearching, hasFilter } = useTreeFilter ( )
@@ -19,23 +18,7 @@ export function useNavigationTree() {
1918
2019 const isReady = logicAnd ( isSiteTreeReady , areKubernetesObjectsReady )
2120
22- const collapseState = reactive ( {
23- default : useLocalStorage ( 'site.collapsed' , new Set < TreeNodeId > ( ) ) ,
24- filtered : ref ( new Set < TreeNodeId > ( ) ) ,
25- } )
26-
27- watch ( filter , ( ) => collapseState . filtered . clear ( ) )
28-
29- const collapsedIds = computed ( {
30- get : ( ) => ( hasFilter . value ? collapseState . filtered : collapseState . default ) ,
31- set : value => {
32- if ( hasFilter . value ) {
33- collapseState . filtered = value
34- } else {
35- collapseState . default = value
36- }
37- } ,
38- } )
21+ const collapsedIds = useTreeCollapse ( 'site.collapsed' , filter , hasFilter )
3922
4023 const { flatNodes, flatNodeIndexById, expandToNode } = useTree ( definitions , { collapsedIds } )
4124
0 commit comments