Clean up admin hub UX: tabs, chrome, and redundant headers.
Local Build and Deploy / deploy (push) Failing after 53s
Local Build and Deploy / deploy (push) Failing after 53s
Wire orphan routes into hub tabs, group Radio into primary/tools rows, show theme/language once on desktop, and remove duplicate page titles under AdminHubChrome. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
1 parent
378705dd73
commit
d2c0619f2f
75 files changed
+244
-915
No files matched your search
+39
-15
@@ -4,6 +4,7 @@ import {
|
||||
Calendar,
|
||||
Cog,
|
||||
Compass,
|
||||
Gavel,
|
||||
LayoutDashboard,
|
||||
Monitor,
|
||||
Newspaper,
|
||||
@@ -20,6 +21,8 @@ export interface AdminHubTab {
|
||||
href: string;
|
||||
label: string;
|
||||
match?: string[];
|
||||
/** Optional group id for multi-row tab strips (e.g. Radio primary/tools). */
|
||||
group?: string;
|
||||
}
|
||||
|
||||
export interface AdminHubDefinition {
|
||||
@@ -103,12 +106,14 @@ export const ADMIN_HUBS: AdminHubDefinition[] = [
|
||||
prefixes: ["/admin/events", "/admin/polls", "/admin/tickets"],
|
||||
tabs: [
|
||||
{ href: "/admin/events", label: "Events", match: ["/admin/events"] },
|
||||
{ href: "/admin/events/types", label: "Event types" },
|
||||
{ href: "/admin/polls", label: "Polls", match: ["/admin/polls"] },
|
||||
{
|
||||
href: "/admin/tickets",
|
||||
label: "Tickets",
|
||||
match: ["/admin/tickets"],
|
||||
},
|
||||
{ href: "/admin/tickets/templates", label: "Templates" },
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -123,7 +128,12 @@ export const ADMIN_HUBS: AdminHubDefinition[] = [
|
||||
"/admin/teams",
|
||||
],
|
||||
tabs: [
|
||||
{ href: "/admin/users", label: "Directory", match: ["/admin/users"] },
|
||||
{
|
||||
href: "/admin/users",
|
||||
label: "Directory",
|
||||
match: ["/admin/users"],
|
||||
},
|
||||
{ href: "/admin/users/multi-accounts", label: "Multi-accounts" },
|
||||
{ href: "/admin/online", label: "Online" },
|
||||
{ href: "/admin/applications", label: "Applications" },
|
||||
{ href: "/admin/teams", label: "Teams" },
|
||||
@@ -157,7 +167,7 @@ export const ADMIN_HUBS: AdminHubDefinition[] = [
|
||||
id: "moderation",
|
||||
title: "Moderation",
|
||||
subtitle: "Reports, actions and moderation team",
|
||||
icon: Shield,
|
||||
icon: Gavel,
|
||||
prefixes: ["/admin/moderation"],
|
||||
tabs: [
|
||||
{ href: "/admin/moderation", label: "Overview" },
|
||||
@@ -221,17 +231,25 @@ export const ADMIN_HUBS: AdminHubDefinition[] = [
|
||||
icon: Radio,
|
||||
prefixes: ["/admin/radio"],
|
||||
tabs: [
|
||||
{ href: "/admin/radio", label: "Overview" },
|
||||
{ href: "/admin/radio/history", label: "History" },
|
||||
{ href: "/admin/radio/banners", label: "Banners" },
|
||||
{ href: "/admin/radio/embed", label: "Embed" },
|
||||
{ href: "/admin/radio/api-keys", label: "API keys" },
|
||||
{ href: "/admin/radio/moderation", label: "Moderation" },
|
||||
{ href: "/admin/radio/settings", label: "Settings" },
|
||||
{ href: "/admin/radio/monitoring", label: "Monitoring" },
|
||||
{ href: "/admin/radio/points", label: "Points" },
|
||||
{ href: "/admin/radio/ranks", label: "Ranks" },
|
||||
{ href: "/admin/radio/autodj", label: "Auto DJ" },
|
||||
{ href: "/admin/radio", label: "Overview", group: "primary" },
|
||||
{ href: "/admin/radio/history", label: "History", group: "primary" },
|
||||
{
|
||||
href: "/admin/radio/moderation",
|
||||
label: "Moderation",
|
||||
group: "primary",
|
||||
},
|
||||
{
|
||||
href: "/admin/radio/monitoring",
|
||||
label: "Monitoring",
|
||||
group: "primary",
|
||||
},
|
||||
{ href: "/admin/radio/settings", label: "Settings", group: "primary" },
|
||||
{ href: "/admin/radio/banners", label: "Banners", group: "tools" },
|
||||
{ href: "/admin/radio/embed", label: "Embed", group: "tools" },
|
||||
{ href: "/admin/radio/api-keys", label: "API keys", group: "tools" },
|
||||
{ href: "/admin/radio/points", label: "Points", group: "tools" },
|
||||
{ href: "/admin/radio/ranks", label: "Ranks", group: "tools" },
|
||||
{ href: "/admin/radio/autodj", label: "Auto DJ", group: "tools" },
|
||||
],
|
||||
},
|
||||
{
|
||||
@@ -292,14 +310,20 @@ export const ADMIN_HUBS: AdminHubDefinition[] = [
|
||||
"/admin/alerts",
|
||||
],
|
||||
tabs: [
|
||||
{ href: "/admin/logs", label: "Logs", match: ["/admin/logs"] },
|
||||
{ href: "/admin/logs", label: "Logs" },
|
||||
{ href: "/admin/logs/audit", label: "Audit" },
|
||||
{ href: "/admin/logs/chat", label: "Chat" },
|
||||
{ href: "/admin/logs/commands", label: "Commands" },
|
||||
{ href: "/admin/logs/trades", label: "Trades" },
|
||||
{
|
||||
href: "/admin/analytics",
|
||||
label: "Analytics",
|
||||
match: ["/admin/analytics"],
|
||||
},
|
||||
{ href: "/admin/analytics/activity", label: "Activity" },
|
||||
{ href: "/admin/analytics/economy", label: "Economy" },
|
||||
{ href: "/admin/devops", label: "DevOps", match: ["/admin/devops"] },
|
||||
{ href: "/admin/devops/errors", label: "Errors" },
|
||||
{ href: "/admin/alerts", label: "Alerts" },
|
||||
],
|
||||
},
|
||||
@@ -373,7 +397,7 @@ export const ADMIN_NAV_GROUPS: AdminNavGroup[] = [
|
||||
{
|
||||
href: "/admin/moderation",
|
||||
labelKey: "moderation",
|
||||
icon: Shield,
|
||||
icon: Gavel,
|
||||
matchPrefixes: hubPrefixes("moderation"),
|
||||
},
|
||||
],
|
||||
|
||||
Reference in new issue
Block a user