Skip to content

Improved theme validation modals#28254

Draft
ErisDS wants to merge 1 commit into
TryGhost:mainfrom
ErisDS:spike-gscan-theme-validation-ui
Draft

Improved theme validation modals#28254
ErisDS wants to merge 1 commit into
TryGhost:mainfrom
ErisDS:spike-gscan-theme-validation-ui

Conversation

@ErisDS
Copy link
Copy Markdown
Member

@ErisDS ErisDS commented May 29, 2026

Summary

  • Makes theme validation outcomes clearer by separating blocking fatal GScan issues from secondary non-blocking issues.
  • Updates failed upload/save/activation modals to show blocking issues first, and successful upload/save/activation modals to keep optional compatibility issues secondary.
  • Adds a shared validation details disclosure and Storybook spike coverage for fatal/success scenarios without changing GScan levels, validation behavior, or API data shape.

Implementation notes

  • Uses problem.fatal === true as the blocking discriminator.
  • Keeps non-fatal errors/warnings/recommendations in a “non-blocking issues” disclosure.
  • Defaults secondary details to collapsed outside development and expanded in development.
  • Adds sticky footer support and ReactNode titles to the Admin-X confirmation modal shell so long validation content does not hide modal actions.
  • Keeps the Shade Storybook spike as a visual reference for scenario coverage.

Screenshots

Scenario Before After
Fatal only Before: fatal only After: fatal only
Fatal with non-blocking issues Before: fatal with non-blocking issues After: fatal with non-blocking issues
Success only Before: success only After: success only
Success with non-blocking issues Before: success with non-blocking issues After: success with non-blocking issues

Development mode

Secondary details are expanded by default in development.

After: development mode expanded

Testing

  • CI=true pnpm install using Node 22.22.2
  • pnpm --filter @tryghost/shade lint using Node 22.22.2
    • Passes with an existing unrelated filters.tsx warning.
  • pnpm --filter @tryghost/admin-x-settings lint using Node 22.22.2
    • Passes with existing unrelated any warnings.
  • pnpm --filter @tryghost/admin-x-settings build using Node 22.22.2
    • Passes with an existing package export warning.
  • pnpm --filter @tryghost/admin-x-design-system lint using Node 22.22.2
  • pnpm --filter @tryghost/admin-x-design-system build using Node 22.22.2

Separates blocking GScan failures from non-blocking theme issues so upload, save, and activation outcomes are clear before optional compatibility details.

Adds the shared validation disclosure used by failed and successful theme flows, keeps secondary issues collapsed outside development, and documents the treatment in Shade Storybook.
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 29, 2026

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 3fc3d95c-e49e-4b26-82b9-dfd770199b58

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants