Skip to content

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

Merged
ascorbic merged 3 commits intoemdash-cms:mainfrom
Vallhalen:fix/plugin-admin-pages-undefined
Apr 11, 2026
Merged

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

Conversation

@Vallhalen
Copy link
Copy Markdown
Contributor

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: 1c28d47

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
Contributor 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
Copy link
Copy Markdown
Collaborator

@ascorbic ascorbic left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks!

@ascorbic ascorbic enabled auto-merge (squash) April 11, 2026 12:06
@pkg-pr-new
Copy link
Copy Markdown

pkg-pr-new bot commented Apr 11, 2026

Open in StackBlitz

@emdash-cms/admin

npm i https://pkg.pr.new/@emdash-cms/admin@357

@emdash-cms/auth

npm i https://pkg.pr.new/@emdash-cms/auth@357

@emdash-cms/blocks

npm i https://pkg.pr.new/@emdash-cms/blocks@357

@emdash-cms/cloudflare

npm i https://pkg.pr.new/@emdash-cms/cloudflare@357

emdash

npm i https://pkg.pr.new/emdash@357

create-emdash

npm i https://pkg.pr.new/create-emdash@357

@emdash-cms/gutenberg-to-portable-text

npm i https://pkg.pr.new/@emdash-cms/gutenberg-to-portable-text@357

@emdash-cms/x402

npm i https://pkg.pr.new/@emdash-cms/x402@357

@emdash-cms/plugin-ai-moderation

npm i https://pkg.pr.new/@emdash-cms/plugin-ai-moderation@357

@emdash-cms/plugin-atproto

npm i https://pkg.pr.new/@emdash-cms/plugin-atproto@357

@emdash-cms/plugin-audit-log

npm i https://pkg.pr.new/@emdash-cms/plugin-audit-log@357

@emdash-cms/plugin-color

npm i https://pkg.pr.new/@emdash-cms/plugin-color@357

@emdash-cms/plugin-embeds

npm i https://pkg.pr.new/@emdash-cms/plugin-embeds@357

@emdash-cms/plugin-forms

npm i https://pkg.pr.new/@emdash-cms/plugin-forms@357

@emdash-cms/plugin-webhook-notifier

npm i https://pkg.pr.new/@emdash-cms/plugin-webhook-notifier@357

commit: 1c28d47

@ascorbic ascorbic merged commit 6474dae into emdash-cms:main Apr 11, 2026
24 of 25 checks passed
@emdashbot emdashbot bot mentioned this pull request Apr 11, 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.

2 participants