1- import { useEffect , useState } from 'react' ;
2- import { useAdviser } from 'src/features/adviser/context' ;
31import { Tabs } from 'src/components' ;
2+ import { Route , Routes , useParams } from 'react-router-dom' ;
3+ import { useMemo } from 'react' ;
4+ import useAdviserTexts from 'src/features/adviser/useAdviserTexts' ;
45import { useRobotContext } from '../robot.context' ;
56import TreedView from './ui/TreedView' ;
67import styles from './Brain.module.scss' ;
7- import { LIMIT_GRAPH } from './utils' ;
88import GraphView from './ui/GraphView' ;
9+ import { LIMIT_GRAPH } from './utils' ;
910
1011enum TabsKey {
1112 list = 'list' ,
@@ -14,41 +15,54 @@ enum TabsKey {
1415
1516function Brain ( ) {
1617 const { address } = useRobotContext ( ) ;
17- const [ selected , setSelected ] = useState ( TabsKey . list ) ;
18- const { setAdviser } = useAdviser ( ) ;
19-
20- useEffect ( ( ) => {
21- setAdviser (
22- < >
23- neurons public knowledge cybergraph < br />
24- { selected === TabsKey . graph && (
25- < > that is how last { LIMIT_GRAPH } cyberlinks looks like </ >
26- ) }
27- </ >
28- ) ;
29- } , [ setAdviser , selected ] ) ;
30-
31- let content ;
32-
33- if ( selected === TabsKey . list ) {
34- content = < TreedView address = { address } /> ;
35- }
36-
37- if ( selected === TabsKey . graph ) {
38- content = < GraphView address = { address } /> ;
39- }
18+
19+ const params = useParams ( ) ;
20+
21+ const selected = params [ '*' ] || TabsKey . graph ;
22+
23+ useAdviserTexts ( {
24+ defaultText : useMemo (
25+ ( ) => (
26+ < >
27+ neurons public knowledge cybergraph < br />
28+ { selected === TabsKey . graph && (
29+ < > that is how last { LIMIT_GRAPH } cyberlinks looks like </ >
30+ ) }
31+ </ >
32+ ) ,
33+ [ selected ]
34+ ) ,
35+ } ) ;
4036
4137 return (
4238 < div className = { styles . wrapper } >
4339 < div className = { styles . tabs } >
4440 < Tabs
45- options = { [ TabsKey . list , TabsKey . graph ] . map ( ( item ) => {
46- return { key : item , onClick : ( ) => setSelected ( item ) } ;
47- } ) }
41+ options = { [
42+ {
43+ key : TabsKey . graph ,
44+ to : './graph' ,
45+ } ,
46+ {
47+ key : TabsKey . list ,
48+ to : './list' ,
49+ } ,
50+ ] }
4851 selected = { selected }
4952 />
5053 </ div >
51- { content }
54+
55+ < Routes >
56+ { [ '/' , 'graph' ] . map ( ( path ) => (
57+ < Route
58+ key = { path }
59+ path = { path }
60+ element = { < GraphView address = { address } /> }
61+ />
62+ ) ) }
63+
64+ < Route path = "list" element = { < TreedView address = { address } /> } />
65+ </ Routes >
5266 </ div >
5367 ) ;
5468}
0 commit comments