diff --git a/gitnexus-web/src/components/BackendRepoSelector.tsx b/gitnexus-web/src/components/BackendRepoSelector.tsx new file mode 100644 index 000000000..7e158c4b1 --- /dev/null +++ b/gitnexus-web/src/components/BackendRepoSelector.tsx @@ -0,0 +1,88 @@ +import { Server, ArrowRight } from 'lucide-react'; +import { BackendRepo } from '../services/backend'; + +interface BackendRepoSelectorProps { + repos: BackendRepo[]; + onSelectRepo: (repoName: string) => void; + backendUrl: string; + isConnected: boolean; +} + +export const BackendRepoSelector = ({ + repos, + onSelectRepo, + backendUrl, + isConnected, +}: BackendRepoSelectorProps) => { + return ( +
+ {/* Icon */} +
+ +
+ + {/* Title */} +

+ Local Repositories +

+

+ Select an indexed repository from your local GitNexus server +

+ + {/* Connected status badge */} + {isConnected && ( +
+ + Connected to {backendUrl} +
+ )} + + {/* Repo list or empty state */} + {repos.length > 0 ? ( +
+ {repos.map((repo) => ( + + ))} +
+ ) : ( +
+

No indexed repositories found

+

+ Run{' '} + gitnexus analyze{' '} + in a repository +

+
+ )} + + {/* Bottom hints */} +
+ + {repos.length} {repos.length === 1 ? 'repo' : 'repos'} + + + Pre-indexed + +
+
+ ); +};