11import React , { useState , useCallback , useRef , useEffect , memo } from 'react' ;
22import { Box , Alert , Snackbar } from '@mui/material' ;
33import useTheme from '../stores/themeStore' ;
4+ import { useTreeViewSidebar } from './Layout' ;
45import ContextDropdown from './ContextDropdown' ;
56import CreateOptions from './CreateOptions' ;
67import TreeViewHeader from './treeView/TreeViewHeader' ;
@@ -24,6 +25,7 @@ interface TreeViewComponentProps {
2425
2526const TreeViewComponent = memo < TreeViewComponentProps > ( props => {
2627 const theme = useTheme ( state => state . theme ) ;
28+ const { isTreeViewSidebarCollapsed, toggleTreeViewSidebar } = useTreeViewSidebar ( ) ;
2729
2830 // State management
2931 const [ showCreateOptions , setShowCreateOptions ] = useState ( false ) ;
@@ -37,11 +39,6 @@ const TreeViewComponent = memo<TreeViewComponentProps>(props => {
3739 groupItems ?: TreeResourceItem [ ] ;
3840 initialTab ?: number ;
3941 } | null > ( null ) ;
40- // Initialize sidebar collapsed state with persistence
41- const [ isCollapsed , setIsCollapsed ] = useState < boolean > ( ( ) => {
42- const saved = localStorage . getItem ( 'treeViewSidebarCollapsed' ) ;
43- return saved !== null ? JSON . parse ( saved ) : true ; // Default to collapsed
44- } ) ;
4542 const [ isExpanded , setIsExpanded ] = useState < boolean > ( true ) ;
4643 const [ isFullscreen , setIsFullscreen ] = useState < boolean > ( false ) ;
4744 const [ filteredContext , setFilteredContext ] = useState < string > ( 'all' ) ;
@@ -86,7 +83,7 @@ const TreeViewComponent = memo<TreeViewComponentProps>(props => {
8683 getDescendantEdges,
8784 } = useTreeViewData ( {
8885 filteredContext,
89- isCollapsed,
86+ isCollapsed : isTreeViewSidebarCollapsed ,
9087 isExpanded,
9188 onNodeSelect : handleNodeSelect ,
9289 onMenuOpen : handleMenuOpen || ( ( ) => { } ) ,
@@ -146,14 +143,6 @@ const TreeViewComponent = memo<TreeViewComponentProps>(props => {
146143 setActiveOption ( 'option1' ) ;
147144 } , [ ] ) ;
148145
149- // Collapse/Expand handlers
150- const handleToggleCollapse = useCallback ( ( ) => {
151- setIsCollapsed ( prev => {
152- const newState = ! prev ;
153- localStorage . setItem ( 'treeViewSidebarCollapsed' , JSON . stringify ( newState ) ) ;
154- return newState ;
155- } ) ;
156- } , [ ] ) ;
157146
158147 const handleExpandAll = useCallback ( ( ) => {
159148 setIsExpanded ( true ) ;
@@ -253,10 +242,10 @@ const TreeViewComponent = memo<TreeViewComponentProps>(props => {
253242 filteredContext = { filteredContext }
254243 onCreateWorkload = { handleCreateWorkloadClick }
255244 onResourceDataChange = { handleResourceDataChange }
256- onToggleCollapse = { handleToggleCollapse }
245+ onToggleCollapse = { toggleTreeViewSidebar }
257246 onExpandAll = { handleExpandAll }
258247 onCollapseAll = { handleCollapseAll }
259- isCollapsed = { isCollapsed }
248+ isCollapsed = { isTreeViewSidebarCollapsed }
260249 containerRef = { containerRef }
261250 resourceFilters = { resourceFilters }
262251 onResourceFiltersChange = { handleResourceFiltersChange }
0 commit comments