fix(settings): use Kumo toasts for save feedback#1823
Conversation
🦋 Changeset detectedLatest commit: cf32e27 The changes in this PR will be included in the next version bump. This PR includes changesets to release 16 packages
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 |
@emdash-cms/admin
@emdash-cms/auth
@emdash-cms/auth-atproto
@emdash-cms/blocks
@emdash-cms/cloudflare
@emdash-cms/contentful-to-portable-text
emdash
create-emdash
@emdash-cms/gutenberg-to-portable-text
@emdash-cms/plugin-cli
@emdash-cms/plugin-types
@emdash-cms/registry-client
@emdash-cms/registry-lexicons
@emdash-cms/sandbox-workerd
@emdash-cms/x402
@emdash-cms/plugin-ai-moderation
@emdash-cms/plugin-atproto
@emdash-cms/plugin-audit-log
@emdash-cms/plugin-color
@emdash-cms/plugin-embeds
@emdash-cms/plugin-field-kit
@emdash-cms/plugin-forms
@emdash-cms/plugin-webhook-notifier
commit: |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
emdash-demo-cache | cf32e27 | Jul 04 2026, 11:13 PM |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
emdash-demo-do | cf32e27 | Jul 04 2026, 11:13 PM |
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| ✅ Deployment successful! View logs |
emdash-playground | cf32e27 | Jul 04 2026, 11:12 PM |
There was a problem hiding this comment.
This PR is a focused, well-scoped bug fix: it replaces bespoke inline save-feedback banners on the admin settings pages with Kumo toasts, which aligns with the design system and removes raw-color / dark: banner styling. The approach is sound and fits EmDash's architecture — Toasty is already mounted at the app root in App.tsx, so useKumoToastManager() will have a provider at runtime.
I checked:
- All changed settings components (
AllowedDomainsSettings,EmailSettings,GeneralSettings,SecuritySettings,SeoSettings,SocialSettings) - Icon imports: removed
CheckCircle/WarningCircleonly where they became unused; remaining icons (WarningCircleinEmailSettings/GeneralSettings/SeoSettings,CheckCircleinEmailSettingspipeline status) are still referenced - The
Toastyprovider inApp.tsxand the newToastywrapper in the one affected test file - The added test assertions for success and error toast text
- The changeset (
@emdash-cms/admin: patch) - Lingui wrapping: all user-visible toast strings are wrapped with
t\...`` - No remaining
saveStatus/setSaveStatusreferences in the settings components
The timeouts mirror the previous auto-dismiss behavior (3s / 5s), success/error handling preserves the existing user-facing messages, and the diff is clean. No blockers or bugs found.
There was a problem hiding this comment.
Pull request overview
Updates the admin settings UI to use Kumo toast notifications for save/mutation feedback instead of inline success/error banners, aligning settings pages with the admin design system and removing bespoke banner styling.
Changes:
- Replaced per-page “save status” banners with Kumo toast notifications across settings pages.
- Updated
AllowedDomainsSettingstests to mount a toast provider and assert success/error toast messages. - Added a changeset to ship the settings feedback UX update as an
@emdash-cms/adminpatch.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 10 comments.
Show a summary per file
| File | Description |
|---|---|
| packages/admin/src/components/settings/GeneralSettings.tsx | Switches save success/error feedback from inline banner state to toast notifications. |
| packages/admin/src/components/settings/SeoSettings.tsx | Replaces SEO settings save banner with toast-based feedback. |
| packages/admin/src/components/settings/SocialSettings.tsx | Replaces social links save banner with toast-based feedback. |
| packages/admin/src/components/settings/SecuritySettings.tsx | Replaces passkey mutation banners with toast notifications for add/rename/delete flows. |
| packages/admin/src/components/settings/AllowedDomainsSettings.tsx | Replaces allowed-domain mutation banners with toast notifications for add/update/delete flows. |
| packages/admin/src/components/settings/EmailSettings.tsx | Replaces test-email status banner with toast-based success/error feedback. |
| packages/admin/tests/components/settings/AllowedDomainsSettings.test.tsx | Wraps render with Toasty and adds assertions for toast messages on success/failure. |
| .changeset/settings-notice-styling.md | Publishes the UX change as a patch changeset for @emdash-cms/admin. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
What does this PR do?
Replaces inline admin settings success/error banners with Kumo toasts across the settings pages. This keeps feedback consistent with the admin design system and removes bespoke raw-color/dark-mode banner styling.
Closes: N/A
Type of change
Checklist
pnpm typecheckpasses (verified withpnpm --filter @emdash-cms/admin typecheck)pnpm lintpasses (verified withpnpm --silent lint:json | jq '.diagnostics | length'->0)pnpm testpasses (or targeted tests for my change)pnpm formathas been runmessages.pochanges except in translation PRs -- a workflow extracts catalogs on merge tomain.AI-generated code disclosure
Screenshots / test output
pnpm --silent lint:json | jq '.diagnostics | length'->0pnpm --filter @emdash-cms/admin typecheck-> passedpnpm --filter @emdash-cms/admin test -- tests/components/settings/AllowedDomainsSettings.test.tsx->83test files passed,1028tests passedTry this PR
Open a fresh playground →
A full working EmDash site, deployed from this branch. Each visit gets its own session-scoped sandbox: no login needed and no shared state. Try the admin, edit content, hit the public site.
Tracks
pr/settings-toast-feedback. Updated automatically when the playground redeploys.