// Repository picker page (/). Auto-redirects when there is exactly one repo. // Shows a list when multiple repos are registered. import { useEffect } from 'react' import { Link, useNavigate } from 'react-router-dom' import { GitFork, FolderOpen, AlertCircle } from 'lucide-react' import { Skeleton } from '@/components/ui/skeleton' import { useRepositoriesQuery } from '@/__generated__/graphql' function repoSlug(name: string | null | undefined): string { return name ?? '_' } function repoLabel(name: string | null | undefined): string { return name ?? 'default' } export function RepoPickerPage() { const { data, loading, error } = useRepositoriesQuery() const navigate = useNavigate() // Auto-redirect when there is exactly one repo — no need to pick. useEffect(() => { if (data?.repositories.nodes.length === 1) { navigate('/' + repoSlug(data.repositories.nodes[0].name), { replace: true }) } }, [data, navigate]) return (

Repositories

{error && (
Failed to load repositories: {error.message}
)} {(loading && !data) && (
{Array.from({ length: 3 }).map((_, i) => ( ))}
)}
{data?.repositories.nodes.map((repo) => (

{repoLabel(repo.name)}

))} {data?.repositories.totalCount === 0 && (

No repositories found.

)}
) }