1
- import { Tabs } from "@douyinfe/semi-ui" ;
1
+ import { Tabs , TabPane } from "@douyinfe/semi-ui" ;
2
2
import { Tab } from "../../data/constants" ;
3
3
import { useLayout , useSelect } from "../../hooks" ;
4
4
import RelationshipsTab from "./RelationshipsTab/RelationshipsTab" ;
@@ -13,19 +13,11 @@ export default function SidePanel({ width, resize, setResize }) {
13
13
const { selectedElement, setSelectedElement } = useSelect ( ) ;
14
14
15
15
const tabList = [
16
- { tab : "Tables" , itemKey : Tab . TABLES } ,
17
- { tab : "Relationships" , itemKey : Tab . RELATIONSHIPS } ,
18
- { tab : "Subject Areas" , itemKey : Tab . AREAS } ,
19
- { tab : "Notes" , itemKey : Tab . NOTES } ,
20
- { tab : "Types" , itemKey : Tab . TYPES } ,
21
- ] ;
22
-
23
- const contentList = [
24
- < TablesTab key = "tables" /> ,
25
- < RelationshipsTab key = "relationships" /> ,
26
- < AreasTab key = "areas" /> ,
27
- < NotesTab key = "notes" /> ,
28
- < TypesTab key = "types" /> ,
16
+ { tab : "Tables" , itemKey : Tab . TABLES , component : < TablesTab /> } ,
17
+ { tab : "Relationships" , itemKey : Tab . RELATIONSHIPS , component : < RelationshipsTab /> } ,
18
+ { tab : "Subject Areas" , itemKey : Tab . AREAS , component : < AreasTab /> } ,
19
+ { tab : "Notes" , itemKey : Tab . NOTES , component : < NotesTab /> } ,
20
+ { tab : "Types" , itemKey : Tab . TYPES , component : < TypesTab /> } ,
29
21
] ;
30
22
31
23
return (
@@ -38,15 +30,19 @@ export default function SidePanel({ width, resize, setResize }) {
38
30
< Tabs
39
31
type = "card"
40
32
activeKey = { selectedElement . currentTab }
41
- tabList = { tabList }
33
+ lazyRender
42
34
onChange = { ( key ) =>
43
35
setSelectedElement ( ( prev ) => ( { ...prev , currentTab : key } ) )
44
36
}
45
37
collapsible
46
38
>
47
- < div className = "p-2" >
48
- { contentList [ parseInt ( selectedElement . currentTab ) - 1 ] }
49
- </ div >
39
+ { tabList . length && tabList . map ( tab =>
40
+ < TabPane tab = { tab . tab } itemKey = { tab . itemKey } key = { tab . itemKey } >
41
+ < div className = "p-2" >
42
+ { tab . component }
43
+ </ div >
44
+ </ TabPane >
45
+ ) }
50
46
</ Tabs >
51
47
</ div >
52
48
{ layout . issues && (
0 commit comments