feat: Unify AI provider settings tabs with consistent design

- Add CursorCliStatus component matching Claude's card design
- Add authentication status display to Claude CLI status card
- Add skeleton loading states for both Claude and Cursor tabs
- Add usage info banners (Primary Provider / Board View Only)
- Remove duplicate auth status from API Keys section
- Update Model Configuration card to use unified styling

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Kacper
2025-12-29 21:30:06 +01:00
parent f9882fe37e
commit 6c3d3aa111
5 changed files with 430 additions and 105 deletions

View File

@@ -1,11 +1,14 @@
import { useAppStore } from '@/store/app-store';
import { useSetupStore } from '@/store/setup-store';
import { useCliStatus } from '../hooks/use-cli-status';
import { ClaudeCliStatus } from '../cli-status/claude-cli-status';
import { ClaudeMdSettings } from '../claude/claude-md-settings';
import { ClaudeUsageSection } from '../api-keys/claude-usage-section';
import { Info } from 'lucide-react';
export function ClaudeSettingsTab() {
const { apiKeys, autoLoadClaudeMd, setAutoLoadClaudeMd } = useAppStore();
const { claudeAuthStatus } = useSetupStore();
// Use CLI status hook
const { claudeCliStatus, isCheckingClaudeCli, handleRefreshClaudeCli } = useCliStatus();
@@ -18,8 +21,20 @@ export function ClaudeSettingsTab() {
return (
<div className="space-y-6">
{/* Usage Info */}
<div className="flex items-start gap-3 p-4 rounded-xl bg-blue-500/10 border border-blue-500/20">
<Info className="w-5 h-5 text-blue-400 shrink-0 mt-0.5" />
<div className="text-sm text-blue-400/90">
<span className="font-medium">Primary Provider</span>
<p className="text-xs text-blue-400/70 mt-1">
Claude is used throughout the app including chat, analysis, and agent tasks.
</p>
</div>
</div>
<ClaudeCliStatus
status={claudeCliStatus}
authStatus={claudeAuthStatus}
isChecking={isCheckingClaudeCli}
onRefresh={handleRefreshClaudeCli}
/>