// ======================================== // CodexLens Overview Tab // ======================================== // Overview status display and quick actions for CodexLens import { useIntl } from 'react-intl'; import { Database, FileText, CheckCircle2, XCircle, Zap, } from 'lucide-react'; import { Card, CardHeader, CardTitle, CardContent } from '@/components/ui/Card'; import { cn } from '@/lib/utils'; import type { CodexLensVenvStatus, CodexLensConfig } from '@/lib/api'; import { IndexOperations } from './IndexOperations'; import { FileWatcherCard } from './FileWatcherCard'; import { LspServerCard } from './LspServerCard'; interface OverviewTabProps { installed: boolean; status?: CodexLensVenvStatus; config?: CodexLensConfig; isLoading: boolean; onRefresh?: () => void; } export function OverviewTab({ installed, status, config, isLoading, onRefresh }: OverviewTabProps) { const { formatMessage } = useIntl(); if (isLoading) { return (
{[1, 2, 3, 4].map((i) => (
))}
); } if (!installed) { return (

{formatMessage({ id: 'codexlens.overview.notInstalled.title' })}

{formatMessage({ id: 'codexlens.overview.notInstalled.message' })}

); } const isReady = status?.ready ?? false; const version = status?.version ?? 'Unknown'; const indexDir = config?.index_dir ?? '~/.codexlens/indexes'; const indexCount = config?.index_count ?? 0; return (
{/* Status Cards */}
{/* Installation Status */}
{isReady ? ( ) : ( )}

{formatMessage({ id: 'codexlens.overview.status.installation' })}

{isReady ? formatMessage({ id: 'codexlens.overview.status.ready' }) : formatMessage({ id: 'codexlens.overview.status.notReady' }) }

{/* Version */}

{formatMessage({ id: 'codexlens.overview.status.version' })}

{version}

{/* Index Path */}

{formatMessage({ id: 'codexlens.overview.status.indexPath' })}

{indexDir}

{/* Index Count */}

{formatMessage({ id: 'codexlens.overview.status.indexCount' })}

{indexCount}

{/* Service Management */}
{/* Index Operations */} {/* Venv Details */} {status && ( {formatMessage({ id: 'codexlens.overview.venv.title' })}
{formatMessage({ id: 'codexlens.overview.venv.pythonVersion' })} {status.pythonVersion || 'Unknown'}
{formatMessage({ id: 'codexlens.overview.venv.venvPath' })} {status.venvPath || 'Unknown'}
)}
); }