Skip to content

Commit e6a36cd

Browse files
committed
Add counts to tab titles
1 parent 40ef1ca commit e6a36cd

File tree

6 files changed

+62
-11
lines changed

6 files changed

+62
-11
lines changed

src/components/EditorSidePanel/SidePanel.jsx

Lines changed: 42 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,14 @@
11
import { Tabs, TabPane } from "@douyinfe/semi-ui";
22
import { 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";
412
import RelationshipsTab from "./RelationshipsTab/RelationshipsTab";
513
import TypesTab from "./TypesTab/TypesTab";
614
import Issues from "./Issues";
@@ -17,39 +25,64 @@ import i18n from "../../i18n/i18n";
1725
export 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">

src/context/AreasContext.jsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,14 @@ export default function AreasContextProvider({ children }) {
9292

9393
return (
9494
<AreasContext.Provider
95-
value={{ areas, setAreas, updateArea, addArea, deleteArea }}
95+
value={{
96+
areas,
97+
setAreas,
98+
updateArea,
99+
addArea,
100+
deleteArea,
101+
areasCount: areas.length,
102+
}}
96103
>
97104
{children}
98105
</AreasContext.Provider>

src/context/DiagramContext.jsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -262,6 +262,8 @@ export default function DiagramContextProvider({ children }) {
262262
deleteRelationship,
263263
database,
264264
setDatabase,
265+
tablesCount: tables.length,
266+
relationshipsCount: relationships.length,
265267
}}
266268
>
267269
{children}

src/context/EnumsContext.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ export default function EnumsContextProvider({ children }) {
7474
addEnum,
7575
updateEnum,
7676
deleteEnum,
77+
enumsCount: enums.length,
7778
}}
7879
>
7980
{children}

src/context/NotesContext.jsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,14 @@ export default function NotesContextProvider({ children }) {
9191

9292
return (
9393
<NotesContext.Provider
94-
value={{ notes, setNotes, updateNote, addNote, deleteNote }}
94+
value={{
95+
notes,
96+
setNotes,
97+
updateNote,
98+
addNote,
99+
deleteNote,
100+
notesCount: notes.length,
101+
}}
95102
>
96103
{children}
97104
</NotesContext.Provider>

src/context/TypesContext.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ export default function TypesContextProvider({ children }) {
7575
addType,
7676
updateType,
7777
deleteType,
78+
typesCount: types.length,
7879
}}
7980
>
8081
{children}

0 commit comments

Comments
 (0)