Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

fix: migrate all custom dialogs to Radix UI#403

Merged
breaking-brake merged 1 commit intomainbreaking-brake/cc-wf-studio:mainfrom
fix/dialog-radix-migrationbreaking-brake/cc-wf-studio:fix/dialog-radix-migrationCopy head branch name to clipboard
Jan 8, 2026
Merged

fix: migrate all custom dialogs to Radix UI#403
breaking-brake merged 1 commit intomainbreaking-brake/cc-wf-studio:mainfrom
fix/dialog-radix-migrationbreaking-brake/cc-wf-studio:fix/dialog-radix-migrationCopy head branch name to clipboard

Conversation

@breaking-brake
Copy link
Copy Markdown
Owner

Problem

Current Behavior

  1. Several dialog components use custom implementations instead of Radix UI Dialog
  2. ❌ z-index values are inconsistent across dialogs (some missing, some using 1000)
  3. ❌ Nested dialogs don't layer correctly (Issue The new skill creation modal layer does not appear at the top. #402: SkillCreationDialog not appearing on top)

Expected Behavior

  1. All dialogs use @radix-ui/react-dialog for consistency and accessibility
  2. ✅ z-index follows 3-layer hierarchy: Base (9999) → Nested (10000) → Confirm (10001)
  3. ✅ Nested dialogs layer correctly

Solution

Migrate all custom dialog implementations to Radix UI Dialog and standardize z-index values.

Changes

Migrated to Radix UI Dialog:

  • SlackConnectionRequiredDialog.tsx (z-index: 9999)
  • TermsOfUseDialog.tsx (z-index: 10000)
  • McpNodeEditDialog.tsx (z-index: 9999)
  • SlackShareDialog.tsx (z-index: 9999)
  • SlackManualTokenDialog.tsx (z-index: 10000)

z-index fixes for existing Radix UI dialogs:

Documentation:

  • Updated CLAUDE.md dialog status table to reflect all dialogs as migrated

Migration Pattern

// Before (Custom implementation)
if (!isOpen) return null;
return (
  <div style={{ position: 'fixed', zIndex: 9999, ... }} onClick={onClose}>
    <div onClick={(e) => e.stopPropagation()}>
      {/* content */}
    </div>
  </div>
);

// After (Radix UI)
return (
  <Dialog.Root open={isOpen} onOpenChange={(open) => !open && onClose()}>
    <Dialog.Portal>
      <Dialog.Overlay style={{ ..., zIndex: 9999 }}>
        <Dialog.Content>
          <Dialog.Title>{title}</Dialog.Title>
          <Dialog.Description>{description}</Dialog.Description>
          {/* content */}
        </Dialog.Content>
      </Dialog.Overlay>
    </Dialog.Portal>
  </Dialog.Root>
);

Impact

  • Accessibility: Radix UI provides automatic ARIA attributes, focus management, and keyboard navigation
  • Consistency: All dialogs now follow the same implementation pattern
  • z-index layering: Nested dialogs (child dialogs, confirmation dialogs) now display correctly on top
  • No breaking changes: External API (props) remains unchanged

Testing

  • Manual E2E testing completed
    • SlackConnectionRequiredDialog: open/close, ESC key, overlay click
    • TermsOfUseDialog: open/close, checkbox, agree button state
    • McpNodeEditDialog: open/close, mode-specific UI
    • SlackShareDialog: open/close, nested SlackManualTokenDialog layering
    • SlackManualTokenDialog: open/close, delete confirmation dialog (ConfirmDialog)
    • SkillCreationDialog: appears on top of SkillBrowserDialog (Issue The new skill creation modal layer does not appear at the top. #402 fix verified)
  • Code quality checks passed (npm run format && npm run lint && npm run check)
  • Build succeeded (npm run build)

Related

🤖 Generated with Claude Code

- Migrate SlackConnectionRequiredDialog to Radix UI (z-index: 9999)
- Migrate TermsOfUseDialog to Radix UI (z-index: 10000)
- Migrate McpNodeEditDialog to Radix UI (z-index: 9999)
- Migrate SlackShareDialog to Radix UI (z-index: 9999)
- Migrate SlackManualTokenDialog to Radix UI (z-index: 10000)
- Add z-index to SkillCreationDialog and SubAgentFlowDialog overlays
- Update CLAUDE.md dialog status table

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@breaking-brake breaking-brake merged commit 29987b9 into main Jan 8, 2026
3 checks passed
@breaking-brake breaking-brake mentioned this pull request Jan 8, 2026
braking-brake-semantic-release Bot pushed a commit that referenced this pull request Jan 8, 2026
## [3.12.10](v3.12.9...v3.12.10) (2026-01-08)

### Bug Fixes

* migrate all custom dialogs to Radix UI ([#403](#403)) ([29987b9](29987b9))
@braking-brake-semantic-release
Copy link
Copy Markdown

🎉 This PR is included in version 3.12.10 🎉

The release is available on GitHub release

Your semantic-release bot 📦🚀

@breaking-brake breaking-brake deleted the fix/dialog-radix-migration branch January 24, 2026 04:48
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

The new skill creation modal layer does not appear at the top.

1 participant

Morty Proxy This is a proxified and sanitized view of the page, visit original site.