@@ -7,14 +7,15 @@ import '@xyflow/react/dist/style.css';
77import { NodeData , ColorBy } from './types' ;
88import CustomNode from './CustomNode' ;
99import { Legend , LegendItem } from './Legend' ;
10- import { YamlViewDialog } from '../Yaml/YamlViewDialog' ;
11- import { YamlViewer } from '../Yaml/YamlViewer' ;
12- import { stringify } from 'yaml' ;
13- import { removeManagedFieldsAndFilterData , Resource } from '../../utils/removeManagedFieldsAndFilterData.ts' ;
10+
11+ import { Resource } from '../../utils/removeManagedFieldsAndFilterData.ts' ;
1412import { useTranslation } from 'react-i18next' ;
1513import { useGraph } from './useGraph' ;
1614import { ManagedResourceItem } from '../../lib/shared/types' ;
1715import { useTheme } from '../../hooks/useTheme' ;
16+ import { useSplitter } from '../Splitter/SplitterContext.tsx' ;
17+ import { YamlSidePanel } from '../Yaml/YamlSidePanel.tsx' ;
18+
1819
1920const nodeTypes = {
2021 custom : ( props : NodeProps < Node < NodeData , 'custom' > > ) => (
@@ -31,33 +32,22 @@ const nodeTypes = {
3132
3233const Graph : React . FC = ( ) => {
3334 const { t } = useTranslation ( ) ;
35+ const { openInAside } = useSplitter ( ) ;
3436 const { isDarkTheme } = useTheme ( ) ;
3537 const [ colorBy , setColorBy ] = useState < ColorBy > ( 'provider' ) ;
36- const [ yamlDialogOpen , setYamlDialogOpen ] = useState ( false ) ;
37- const [ yamlResource , setYamlResource ] = useState < ManagedResourceItem | null > ( null ) ;
3838
39- const handleYamlClick = useCallback ( ( item : ManagedResourceItem ) => {
40- setYamlResource ( item ) ;
41- setYamlDialogOpen ( true ) ;
42- } , [ ] ) ;
43-
44- const { nodes, edges, colorMap, loading, error } = useGraph ( colorBy , handleYamlClick ) ;
39+ const handleYamlClick = useCallback (
40+ ( item : ManagedResourceItem ) => {
41+ const yamlFilename = item
42+ ? `${ item . kind ?? '' } ${ item . metadata ?. name ? '_' : '' } ${ item . metadata ?. name ?? '' } `
43+ : '' ;
4544
46- const yamlString = useMemo (
47- ( ) => ( yamlResource ? stringify ( removeManagedFieldsAndFilterData ( yamlResource as unknown as Resource , true ) ) : '' ) ,
48- [ yamlResource ] ,
45+ openInAside ( < YamlSidePanel resource = { item as unknown as Resource } filename = { yamlFilename } /> ) ;
46+ } ,
47+ [ openInAside ] ,
4948 ) ;
5049
51- const yamlStringToCopy = useMemo (
52- ( ) => ( yamlResource ? stringify ( removeManagedFieldsAndFilterData ( yamlResource as unknown as Resource , false ) ) : '' ) ,
53- [ yamlResource ] ,
54- ) ;
55-
56- const yamlFilename = useMemo ( ( ) => {
57- if ( ! yamlResource ) return '' ;
58- const { kind, metadata } = yamlResource ;
59- return `${ kind ?? '' } ${ metadata ?. name ? '_' : '' } ${ metadata ?. name ?? '' } ` ;
60- } , [ yamlResource ] ) ;
50+ const { nodes, edges, colorMap, loading, error } = useGraph ( colorBy , handleYamlClick ) ;
6151
6252 const legendItems : LegendItem [ ] = useMemo (
6353 ( ) =>
@@ -136,13 +126,6 @@ const Graph: React.FC = () => {
136126 </ Panel >
137127 </ ReactFlow >
138128 </ div >
139- < YamlViewDialog
140- isOpen = { yamlDialogOpen }
141- setIsOpen = { setYamlDialogOpen }
142- dialogContent = {
143- < YamlViewer yamlString = { yamlString } yamlStringToCopy = { yamlStringToCopy } filename = { yamlFilename } />
144- }
145- />
146129 </ div >
147130 ) ;
148131} ;
0 commit comments