diff --git a/frontend/src/components/AddRepoForm.tsx b/frontend/src/components/AddRepoForm.tsx index b7fc56e..d160c60 100644 --- a/frontend/src/components/AddRepoForm.tsx +++ b/frontend/src/components/AddRepoForm.tsx @@ -24,7 +24,7 @@ export function AddRepoForm({ onAdd, loading }: AddRepoFormProps) { return ( -
+ {/* Form */} +
-
-
-
- + {/* Actions */} +
+
diff --git a/frontend/src/components/RepoList.tsx b/frontend/src/components/RepoList.tsx index 05b79ff..146bb7f 100644 --- a/frontend/src/components/RepoList.tsx +++ b/frontend/src/components/RepoList.tsx @@ -6,36 +6,55 @@ interface RepoListProps { onSelect: (repoId: string) => void } +// Status indicator with glow effect +const StatusIndicator = ({ status }: { status: string }) => { + const config = { + indexed: { color: 'green', label: 'Indexed', icon: '✓' }, + cloned: { color: 'blue', label: 'Ready', icon: '✓' }, + indexing: { color: 'yellow', label: 'Indexing', icon: '◌' }, + cloning: { color: 'yellow', label: 'Cloning', icon: '◌' }, + error: { color: 'red', label: 'Error', icon: '✗' }, + }[status] || { color: 'gray', label: status, icon: '•' } + + const colorClasses = { + green: 'bg-green-500/10 text-green-400 border-green-500/20', + blue: 'bg-blue-500/10 text-blue-400 border-blue-500/20', + yellow: 'bg-yellow-500/10 text-yellow-400 border-yellow-500/20', + red: 'bg-red-500/10 text-red-400 border-red-500/20', + gray: 'bg-white/5 text-gray-400 border-white/10', + }[config.color] + + const glowClasses = { + green: 'shadow-green-500/20', + blue: 'shadow-blue-500/20', + yellow: 'shadow-yellow-500/20', + red: 'shadow-red-500/20', + gray: '', + }[config.color] + + return ( + + {config.icon} + {config.label} + + ) +} + export function RepoList({ repos, selectedRepo, onSelect }: RepoListProps) { if (repos.length === 0) { return ( -
-
+
+
📦
-

No repositories yet

-

Add your first repository to start searching code semantically

+

No repositories yet

+

+ Add your first repository to start searching code semantically with AI +

) } - const getStatusBadge = (status: string) => { - switch (status) { - case 'indexed': - return ✓ Indexed - case 'cloned': - return ✓ Ready - case 'indexing': - return 🔄 Indexing - case 'cloning': - return ⏳ Cloning - case 'error': - return ✗ Error - default: - return {status} - } - } - return (
{repos.map((repo) => { @@ -45,40 +64,62 @@ export function RepoList({ repos, selectedRepo, onSelect }: RepoListProps) { )