import { useMemo, useState } from 'react'; import type { AgentCategory, AgentProvider } from '../../../types/types'; import type { AgentContext, AgentsSettingsTabProps } from './types'; import AgentCategoryContentSection from './sections/AgentCategoryContentSection'; import AgentCategoryTabsSection from './sections/AgentCategoryTabsSection'; import AgentSelectorSection from './sections/AgentSelectorSection'; export default function AgentsSettingsTab({ providerAuthStatus, onProviderLogin, claudePermissions, onClaudePermissionsChange, cursorPermissions, onCursorPermissionsChange, codexPermissionMode, onCodexPermissionModeChange, geminiPermissionMode, onGeminiPermissionModeChange, projects, }: AgentsSettingsTabProps) { const [selectedAgent, setSelectedAgent] = useState('claude'); const [selectedCategory, setSelectedCategory] = useState('account'); const visibleAgents = useMemo(() => { return ['claude', 'cursor', 'codex', 'gemini', 'opencode']; }, []); const agentContextById = useMemo>(() => ({ claude: { authStatus: providerAuthStatus.claude, onLogin: () => onProviderLogin('claude'), }, cursor: { authStatus: providerAuthStatus.cursor, onLogin: () => onProviderLogin('cursor'), }, codex: { authStatus: providerAuthStatus.codex, onLogin: () => onProviderLogin('codex'), }, gemini: { authStatus: providerAuthStatus.gemini, onLogin: () => onProviderLogin('gemini'), }, opencode: { authStatus: providerAuthStatus.opencode, onLogin: () => onProviderLogin('opencode'), }, }), [ onProviderLogin, providerAuthStatus.claude, providerAuthStatus.codex, providerAuthStatus.cursor, providerAuthStatus.gemini, providerAuthStatus.opencode, ]); return (
); }