@pinnacle0/web-ui 0.7.5 → 0.7.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/admin/AdminApp/Menu.d.ts
CHANGED
package/admin/AdminApp/Menu.js
CHANGED
|
@@ -19,16 +19,27 @@ export function Menu({ siteName, permissions, superAdminPermission, navigationGr
|
|
|
19
19
|
*/
|
|
20
20
|
const shouldAlertNewBadge = React.useCallback((badges) => {
|
|
21
21
|
for (const [key, badge] of Object.entries(badges)) {
|
|
22
|
-
if (prevBadges
|
|
22
|
+
if (!prevBadges)
|
|
23
|
+
continue;
|
|
24
|
+
if (prevBadges[key] === undefined)
|
|
25
|
+
return true;
|
|
26
|
+
if (typeof prevBadges[key] === "number" && typeof badge === "number" && badge > prevBadges[key])
|
|
27
|
+
return true;
|
|
28
|
+
if (Array.isArray(prevBadges[key]) && Array.isArray(badge) && badgeHasUpdate(prevBadges[key], badge))
|
|
23
29
|
return true;
|
|
24
|
-
}
|
|
25
30
|
}
|
|
26
31
|
return false;
|
|
27
32
|
}, [prevBadges]);
|
|
28
33
|
const calculateTotalBadge = React.useCallback((badges) => {
|
|
29
34
|
let totalCount = 0;
|
|
30
35
|
shownNavigationGroups.forEach(({ modules }) => {
|
|
31
|
-
modules.forEach(_ =>
|
|
36
|
+
modules.forEach(_ => {
|
|
37
|
+
const badge = badges[_.url];
|
|
38
|
+
if (typeof badge === "number")
|
|
39
|
+
totalCount += badge;
|
|
40
|
+
if (Array.isArray(badge))
|
|
41
|
+
totalCount += badge.reduce((acc, curr) => acc + curr, 0);
|
|
42
|
+
});
|
|
32
43
|
});
|
|
33
44
|
return totalCount;
|
|
34
45
|
}, [shownNavigationGroups]);
|
|
@@ -77,9 +88,18 @@ export function Menu({ siteName, permissions, superAdminPermission, navigationGr
|
|
|
77
88
|
let totalCount = 0;
|
|
78
89
|
const children = groupItem.modules.map(({ title, url }) => {
|
|
79
90
|
const count = badges?.[url] || 0;
|
|
80
|
-
totalCount += count;
|
|
91
|
+
totalCount += typeof count === "number" ? count : count.reduce((acc, curr) => acc + curr, 0);
|
|
92
|
+
let label;
|
|
93
|
+
if (typeof count === "number") {
|
|
94
|
+
label = React.createElement(Badge, { count: count }, title);
|
|
95
|
+
}
|
|
96
|
+
else if (Array.isArray(count)) {
|
|
97
|
+
label = (React.createElement("div", { className: "g-admin-menu-badge-list" },
|
|
98
|
+
React.createElement("span", null, title),
|
|
99
|
+
count.map((item, index) => (React.createElement(Badge, { key: index, count: item })))));
|
|
100
|
+
}
|
|
81
101
|
return {
|
|
82
|
-
label
|
|
102
|
+
label,
|
|
83
103
|
key: url,
|
|
84
104
|
onClick() {
|
|
85
105
|
history.push(url);
|
|
@@ -106,4 +126,12 @@ export function Menu({ siteName, permissions, superAdminPermission, navigationGr
|
|
|
106
126
|
}, [badges]);
|
|
107
127
|
return (React.createElement(AntMenu, { theme: "dark", mode: "inline", openKeys: currentOpenedMenuKey ? [currentOpenedMenuKey] : [], selectedKeys: currentSelectedMenuKey ? [currentSelectedMenuKey] : [], onOpenChange: onMenuOpenChange, items: shownNavigationGroups.map(renderMenuGroup) }));
|
|
108
128
|
}
|
|
129
|
+
function badgeHasUpdate(a, b) {
|
|
130
|
+
// assume a.length == b.length
|
|
131
|
+
for (let i = 0; i < a.length; i++) {
|
|
132
|
+
if (a[i] !== b[i])
|
|
133
|
+
return true;
|
|
134
|
+
}
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
109
137
|
//# sourceMappingURL=Menu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../src/admin/AdminApp/Menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAC,UAAU,EAAE,WAAW,EAAC,MAAM,kBAAkB,CAAC;AACzD,OAAO,OAAO,MAAM,cAAc,CAAC;AACnC,OAAO,EAAC,gBAAgB,EAAC,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAC,SAAS,EAAC,MAAM,sBAAsB,CAAC;AAC/C,OAAO,EAAC,KAAK,EAAC,MAAM,kBAAkB,CAAC;AACvC,OAAO,EAAC,mBAAmB,EAAC,MAAM,gCAAgC,CAAC;AAenE,MAAM,iBAAiB,GAAG,qBAAqB,CAAC;AAEhD,MAAM,UAAU,IAAI,CAAiB,EAAC,QAAQ,EAAE,WAAW,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,EAAwB;IAC7I,MAAM,CAAC,oBAAoB,EAAE,uBAAuB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAC5F,MAAM,CAAC,sBAAsB,EAAE,yBAAyB,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAgB,IAAI,CAAC,CAAC;IAChG,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAqB,SAAS,CAAC,CAAC;IAClF,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,QAAQ,GAAG,WAAW,EAAE,CAAC;IAE/B,MAAM,qBAAqB,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,MAAM,CAAC,gBAAgB,EAAE,WAAW,EAAE,oBAAoB,EAAE,KAAK,CAAC,EAAE,CAAC,gBAAgB,EAAE,WAAW,EAAE,oBAAoB,CAAC,CAAC,CAAC;IACjM,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,mBAAmB,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC,qBAAqB,CAAC,CAAC,CAAC;IAEjH;;OAEG;IACH,MAAM,mBAAmB,GAAG,KAAK,CAAC,WAAW,CACzC,CAAC,MAAc,EAAW,EAAE;QACxB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAChD,IAAI,UAAU,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,
|
|
1
|
+
{"version":3,"file":"Menu.js","sourceRoot":"","sources":["../../../src/admin/AdminApp/Menu.tsx"],"names":[],"mappings":"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"}
|
|
@@ -16,7 +16,7 @@ export interface Props<Feature, Field> {
|
|
|
16
16
|
WelcomeComponent?: React.ComponentType;
|
|
17
17
|
sideMenuWidth?: number;
|
|
18
18
|
badges?: {
|
|
19
|
-
[key: string]: number;
|
|
19
|
+
[key: string]: number | number[];
|
|
20
20
|
};
|
|
21
21
|
noBrowserRouter?: boolean;
|
|
22
22
|
onLifecycleError?: (error: unknown, componentStack: string) => void;
|
|
@@ -132,6 +132,16 @@
|
|
|
132
132
|
height: ~"calc(100vh - 45px)"; // Minus header height
|
|
133
133
|
overflow-y: auto;
|
|
134
134
|
}
|
|
135
|
+
|
|
136
|
+
.ant-menu-item {
|
|
137
|
+
.g-admin-menu-badge-list {
|
|
138
|
+
display: flex;
|
|
139
|
+
|
|
140
|
+
> .ant-badge {
|
|
141
|
+
width: 24px;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
135
145
|
}
|
|
136
146
|
|
|
137
147
|
// Submenu popup is put directly under <body> in collapse mode
|