import React, { useState } from 'react' import { InferenceProvider } from '@/contexts/InferenceContext' import { MCPProvider } from '@/contexts/MCPContext' import { InferenceTest } from '@/components/InferenceTest' import { MCPTest } from '@/components/MCPTest' import { ConversationApp } from '@/components/ConversationApp' import { OAuthCallback } from '@/components/OAuthCallback' function App() { // Simple routing based on pathname const pathname = window.location.pathname; const isInferenceOAuthCallback = pathname === '/oauth/inference/callback'; const isMcpOAuthCallback = pathname === '/oauth/mcp/callback'; if (isInferenceOAuthCallback) { return ; } if (isMcpOAuthCallback) { return ; } const [activeTab, setActiveTab] = useState<'conversations' | 'inference' | 'mcp'>('conversations'); return ( {/* Tab Navigation */} setActiveTab('conversations')} className={`py-4 px-1 border-b-2 font-medium text-sm ${ activeTab === 'conversations' ? 'border-blue-500 text-blue-600 dark:text-blue-400' : 'border-transparent text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200' }`} > Conversations setActiveTab('inference')} className={`py-4 px-1 border-b-2 font-medium text-sm ${ activeTab === 'inference' ? 'border-blue-500 text-blue-600 dark:text-blue-400' : 'border-transparent text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200' }`} > Inference Provider Test setActiveTab('mcp')} className={`py-4 px-1 border-b-2 font-medium text-sm ${ activeTab === 'mcp' ? 'border-blue-500 text-blue-600 dark:text-blue-400' : 'border-transparent text-gray-500 hover:text-gray-700 dark:text-gray-400 dark:hover:text-gray-200' }`} > MCP Provider Test {/* Tab Content */} {activeTab === 'conversations' && } {activeTab === 'inference' && } {activeTab === 'mcp' && } ) } export default App