Skip to content

fix: default adminPages and dashboardWidgets to empty arrays in manifest#357

Open
Vallhalen wants to merge 2 commits intoemdash-cms:mainfrom
Vallhalen:fix/plugin-admin-pages-undefined
Open

fix: default adminPages and dashboardWidgets to empty arrays in manifest#357
Vallhalen wants to merge 2 commits intoemdash-cms:mainfrom
Vallhalen:fix/plugin-admin-pages-undefined

Conversation

@Vallhalen
Copy link
Copy Markdown

Summary

  • Adds ?? [] fallback for adminPages and dashboardWidgets in all three manifest code paths (node_modules plugins, sandboxed plugins, marketplace plugins)
  • Prevents admin UI crash when a plugin descriptor doesn't explicitly declare these properties

Context

While debugging a separate plugin bug (wrong Block Kit property name), we discovered that emdash-runtime.ts passes undefined to the admin manifest when plugins omit adminPages/adminWidgets. The admin components (Sidebar.tsx, Dashboard.tsx) already guard with if (config.adminPages && ...), but this defensive fix ensures the manifest always contains arrays.

Changes

One file: packages/core/src/emdash-runtime.ts — 6 lines changed (3 locations)

Test plan

  • Build passes
  • Admin loads with plugins that have adminPages
  • Admin loads with plugins that omit adminPages

🤖 Generated with Claude Code

When a plugin descriptor has `adminPages` or `adminWidgets` set to
`undefined` (e.g. not declared), the manifest passes `undefined` to the
admin UI, which then crashes with "Cannot read properties of undefined
(reading 'map')" when iterating over them.

This applies the `?? []` fallback in all three code paths that populate
the manifest: node_modules plugins, sandboxed (standard format) plugins,
and marketplace plugins.

Fixes emdash-cms#355
@changeset-bot
Copy link
Copy Markdown

changeset-bot bot commented Apr 7, 2026

🦋 Changeset detected

Latest commit: e765677

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 9 packages
Name Type
emdash Patch
@emdash-cms/cloudflare Patch
@emdash-cms/plugin-ai-moderation Patch
@emdash-cms/plugin-atproto Patch
@emdash-cms/plugin-audit-log Patch
@emdash-cms/plugin-color Patch
@emdash-cms/plugin-embeds Patch
@emdash-cms/plugin-forms Patch
@emdash-cms/plugin-webhook-notifier Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@github-actions
Copy link
Copy Markdown
Contributor

github-actions bot commented Apr 7, 2026

All contributors have signed the CLA ✍️ ✅
Posted by the CLA Assistant Lite bot.

@Vallhalen
Copy link
Copy Markdown
Author

I have read the CLA Document and I hereby sign the CLA

github-actions bot added a commit that referenced this pull request Apr 8, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant