11import { Tabs , TabPane } from "@douyinfe/semi-ui" ;
22import { Tab } from "../../data/constants" ;
3- import { useLayout , useSelect , useDiagram } from "../../hooks" ;
3+ import {
4+ useLayout ,
5+ useSelect ,
6+ useDiagram ,
7+ useAreas ,
8+ useNotes ,
9+ useEnums ,
10+ useTypes ,
11+ } from "../../hooks" ;
412import RelationshipsTab from "./RelationshipsTab/RelationshipsTab" ;
513import TypesTab from "./TypesTab/TypesTab" ;
614import Issues from "./Issues" ;
@@ -17,39 +25,64 @@ import i18n from "../../i18n/i18n";
1725export default function SidePanel ( { width, resize, setResize } ) {
1826 const { layout } = useLayout ( ) ;
1927 const { selectedElement, setSelectedElement } = useSelect ( ) ;
20- const { database } = useDiagram ( ) ;
28+ const { database, tablesCount, relationshipsCount } = useDiagram ( ) ;
29+ const { areasCount } = useAreas ( ) ;
30+ const { notesCount } = useNotes ( ) ;
31+ const { typesCount } = useTypes ( ) ;
32+ const { enumsCount } = useEnums ( ) ;
2133 const { t } = useTranslation ( ) ;
2234
2335 const tabList = useMemo ( ( ) => {
2436 const tabs = [
25- { tab : t ( "tables" ) , itemKey : Tab . TABLES , component : < TablesTab /> } ,
2637 {
27- tab : t ( "relationships" ) ,
38+ tab : `${ t ( "tables" ) } (${ tablesCount } )` ,
39+ itemKey : Tab . TABLES ,
40+ component : < TablesTab /> ,
41+ } ,
42+ {
43+ tab : `${ t ( "relationships" ) } (${ relationshipsCount } )` ,
2844 itemKey : Tab . RELATIONSHIPS ,
2945 component : < RelationshipsTab /> ,
3046 } ,
31- { tab : t ( "subject_areas" ) , itemKey : Tab . AREAS , component : < AreasTab /> } ,
32- { tab : t ( "notes" ) , itemKey : Tab . NOTES , component : < NotesTab /> } ,
47+ {
48+ tab : `${ t ( "subject_areas" ) } (${ areasCount } )` ,
49+ itemKey : Tab . AREAS ,
50+ component : < AreasTab /> ,
51+ } ,
52+ {
53+ tab : `${ t ( "notes" ) } (${ notesCount } )` ,
54+ itemKey : Tab . NOTES ,
55+ component : < NotesTab /> ,
56+ } ,
3357 ] ;
3458
3559 if ( databases [ database ] . hasTypes ) {
3660 tabs . push ( {
37- tab : t ( "types" ) ,
61+ tab : ` ${ t ( "types" ) } ( ${ typesCount } )` ,
3862 itemKey : Tab . TYPES ,
3963 component : < TypesTab /> ,
4064 } ) ;
4165 }
4266
4367 if ( databases [ database ] . hasEnums ) {
4468 tabs . push ( {
45- tab : t ( "enums" ) ,
69+ tab : ` ${ t ( "enums" ) } ( ${ enumsCount } )` ,
4670 itemKey : Tab . ENUMS ,
4771 component : < EnumsTab /> ,
4872 } ) ;
4973 }
5074
5175 return isRtl ( i18n . language ) ? tabs . reverse ( ) : tabs ;
52- } , [ t , database ] ) ;
76+ } , [
77+ t ,
78+ database ,
79+ tablesCount ,
80+ relationshipsCount ,
81+ areasCount ,
82+ typesCount ,
83+ enumsCount ,
84+ notesCount ,
85+ ] ) ;
5386
5487 return (
5588 < div className = "flex h-full" >
0 commit comments