refactor: migrate all MCP dialogs to shadcn/ui Dialog component

Convert all MCP-related modal windows to use the unified shadcn/ui Dialog
component for consistency with the rest of the application.

Changes:
- McpPanel: Replace custom modal with Dialog component
  - Update props from onClose to open/onOpenChange pattern
  - Use DialogContent, DialogHeader, DialogTitle components
  - Remove custom backdrop and close button (handled by Dialog)

- McpFormModal: Migrate form modal to Dialog
  - Wrap entire form in Dialog component structure
  - Use DialogFooter for action buttons
  - Apply variant="mcp" to maintain green button styling
  - Remove unused X icon import

- McpWizardModal: Convert wizard to Dialog
  - Replace custom modal structure with Dialog components
  - Use Button component with variant="mcp" for consistency
  - Remove unused isLinux and X icon imports

- App.tsx: Update McpPanel usage
  - Remove conditional rendering wrapper
  - Pass open and onOpenChange props directly

- dialog.tsx: Fix dialog overlay and content styling
  - Change overlay from bg-background/80 to bg-black/50 for consistency
  - Change content from bg-background to explicit bg-white dark:bg-gray-900
  - Ensures opaque backgrounds matching MCP panel style

Benefits:
- Unified dialog behavior across the application
- Consistent styling and animations
- Better accessibility with Radix UI primitives
- Reduced code duplication
- Maintains MCP-specific green color scheme

All dialogs now share the same base styling while preserving their unique
content and functionality.
This commit is contained in:
Jason
2025-10-16 16:20:45 +08:00
parent 5f2bede5c4
commit 92528e6a9f
5 changed files with 372 additions and 403 deletions

View File

@@ -333,13 +333,12 @@ function App() {
onImportSuccess={handleImportSuccess}
/>
{isMcpOpen && (
<McpPanel
appType={activeApp}
onClose={() => setIsMcpOpen(false)}
onNotify={handleNotify}
/>
)}
<McpPanel
open={isMcpOpen}
onOpenChange={setIsMcpOpen}
appType={activeApp}
onNotify={handleNotify}
/>
</div>
);
}