diff --git a/.changeset/fix-plugin-admin-pages.md b/.changeset/fix-plugin-admin-pages.md new file mode 100644 index 000000000..8d90e24a9 --- /dev/null +++ b/.changeset/fix-plugin-admin-pages.md @@ -0,0 +1,5 @@ +--- +"emdash": patch +--- + +Fix: default adminPages and dashboardWidgets to empty arrays in manifest to prevent admin UI crash when plugins omit these properties. diff --git a/packages/core/src/emdash-runtime.ts b/packages/core/src/emdash-runtime.ts index c20d6d312..f37def639 100644 --- a/packages/core/src/emdash-runtime.ts +++ b/packages/core/src/emdash-runtime.ts @@ -1244,8 +1244,8 @@ export class EmDashRuntime { version: plugin.version, enabled, adminMode, - adminPages: plugin.admin?.pages, - dashboardWidgets: plugin.admin?.widgets, + adminPages: plugin.admin?.pages ?? [], + dashboardWidgets: plugin.admin?.widgets ?? [], portableTextBlocks: plugin.admin?.portableTextBlocks, fieldWidgets: plugin.admin?.fieldWidgets, }; @@ -1267,8 +1267,8 @@ export class EmDashRuntime { enabled, sandboxed: true, adminMode: hasAdminPages || hasWidgets ? "blocks" : "none", - adminPages: entry.adminPages, - dashboardWidgets: entry.adminWidgets, + adminPages: entry.adminPages ?? [], + dashboardWidgets: entry.adminWidgets ?? [], }; } @@ -1290,8 +1290,8 @@ export class EmDashRuntime { enabled, sandboxed: true, adminMode: hasAdminPages || hasWidgets ? "blocks" : "none", - adminPages: pages, - dashboardWidgets: widgets, + adminPages: pages ?? [], + dashboardWidgets: widgets ?? [], }; }