@@ -7,14 +7,13 @@ 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' ;
1410import { useTranslation } from 'react-i18next' ;
1511import { useGraph } from './useGraph' ;
1612import { ManagedResourceItem } from '../../lib/shared/types' ;
1713import { useTheme } from '../../hooks/useTheme' ;
14+ import { useSplitter } from '../Splitter/SplitterContext.tsx' ;
15+ import { YamlSidePanel } from '../Yaml/YamlSidePanel.tsx' ;
16+ import { Resource } from '../../utils/removeManagedFieldsAndFilterData.ts' ;
1817
1918const nodeTypes = {
2019 custom : ( props : NodeProps < Node < NodeData , 'custom' > > ) => (
@@ -31,33 +30,22 @@ const nodeTypes = {
3130
3231const Graph : React . FC = ( ) => {
3332 const { t } = useTranslation ( ) ;
33+ const { openInAside } = useSplitter ( ) ;
3434 const { isDarkTheme } = useTheme ( ) ;
3535 const [ colorBy , setColorBy ] = useState < ColorBy > ( 'provider' ) ;
36- const [ yamlDialogOpen , setYamlDialogOpen ] = useState ( false ) ;
37- const [ yamlResource , setYamlResource ] = useState < ManagedResourceItem | null > ( null ) ;
3836
39- const handleYamlClick = useCallback ( ( item : ManagedResourceItem ) => {
40- setYamlResource ( item ) ;
41- setYamlDialogOpen ( true ) ;
42- } , [ ] ) ;
37+ const handleYamlClick = useCallback (
38+ ( item : ManagedResourceItem ) => {
39+ const yamlFilename = item
40+ ? `${ item . kind ?? '' } ${ item . metadata ?. name ? '_' : '' } ${ item . metadata ?. name ?? '' } `
41+ : '' ;
4342
44- const { nodes, edges, colorMap, loading, error } = useGraph ( colorBy , handleYamlClick ) ;
45-
46- const yamlString = useMemo (
47- ( ) => ( yamlResource ? stringify ( removeManagedFieldsAndFilterData ( yamlResource as unknown as Resource , true ) ) : '' ) ,
48- [ yamlResource ] ,
43+ openInAside ( < YamlSidePanel resource = { item as unknown as Resource } filename = { yamlFilename } /> ) ;
44+ } ,
45+ [ openInAside ] ,
4946 ) ;
5047
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 ] ) ;
48+ const { nodes, edges, colorMap, loading, error } = useGraph ( colorBy , handleYamlClick ) ;
6149
6250 const legendItems : LegendItem [ ] = useMemo (
6351 ( ) =>
@@ -136,13 +124,6 @@ const Graph: React.FC = () => {
136124 </ Panel >
137125 </ ReactFlow >
138126 </ div >
139- < YamlViewDialog
140- isOpen = { yamlDialogOpen }
141- setIsOpen = { setYamlDialogOpen }
142- dialogContent = {
143- < YamlViewer yamlString = { yamlString } yamlStringToCopy = { yamlStringToCopy } filename = { yamlFilename } />
144- }
145- />
146127 </ div >
147128 ) ;
148129} ;
0 commit comments