refactor(admin): remove legacy menu editor

This commit is contained in:
Simo committed 2026-09-05 20:08:19 +02:00
1 parent 98b0009206
commit 667637f8da
12 files changed
+13 -461

No files matched your search

+1 -4
View File
@@ -64,10 +64,7 @@ describe("admin-nav-config", () => {
hiddenItems: ["/admin/photos", "/admin", "/admin/menu"],
});
expect(applied.map((g) => g.labelKey)).toEqual(["overview", "content"]);
expect(applied[0]?.items.map((i) => i.href)).toEqual([
"/admin",
"/admin/menu",
]);
expect(applied[0]?.items.map((i) => i.href)).toEqual(["/admin"]);
expect(applied[1]?.items.map((i) => i.href)).toEqual(["/admin/articles"]);
expect(ADMIN_NAV_PINNED_HREFS.has("/admin")).toBe(true);
});
+2 -2
View File
@@ -3,8 +3,8 @@ import type { AdminNavGroup } from "@/lib/admin-nav";
/** website_settings key storing JSON overlay for the admin sidebar. */
export const ADMIN_NAV_CONFIG_KEY = "admin_nav_config";
/** Hrefs that cannot be hidden (dashboard + menu editor). */
export const ADMIN_NAV_PINNED_HREFS = new Set(["/admin", "/admin/menu"]);
/** Hrefs that cannot be hidden (dashboard). */
export const ADMIN_NAV_PINNED_HREFS = new Set(["/admin"]);
export type AdminNavConfig = {
/** Group labelKeys in display order. Missing groups append in catalog order. */
-7
View File
@@ -16,7 +16,6 @@ import {
KeyRound,
Languages,
LayoutDashboard,
ListOrdered,
type LucideIcon,
Megaphone,
Monitor,
@@ -541,12 +540,6 @@ export const ADMIN_NAV_GROUPS: AdminNavGroup[] = [
icon: Cog,
permission: PERMS.SETTINGS_VIEW,
},
{
href: "/admin/menu",
labelKey: "adminMenu",
icon: ListOrdered,
permission: PERMS.SETTINGS_VIEW,
},
{
href: "/admin/theme",
labelKey: "theme",
+3 -3
View File
@@ -75,10 +75,10 @@ describe("staff smoke contract", () => {
expect(existsSync("src/lib/admin/ops-online-users.ts")).toBe(true);
});
it("ships dynamic admin menu overlay", () => {
it("keeps sidebar configuration without exposing the retired menu editor", () => {
expect(existsSync("src/lib/admin-nav-config.ts")).toBe(true);
expect(existsSync("src/app/admin/menu/page.tsx")).toBe(true);
expect(readFileSync("src/lib/admin-nav.ts", "utf8")).toContain(
expect(existsSync("src/app/admin/menu/page.tsx")).toBe(false);
expect(readFileSync("src/lib/admin-nav.ts", "utf8")).not.toContain(
"/admin/menu",
);
expect(