import { useNavigate } from "react-router-dom" import { GitBranch, Lock } from "lucide-react" import type { UserRepoInfo } from "@/client/model" import { Card } from "@/components/ui/card" import { Empty, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, } from "@/components/ui/empty" import { Skeleton } from "@/components/ui/skeleton" import { t } from "@/i18n/T" interface RepoListProps { repos: UserRepoInfo[] isLoading?: boolean } export function RepoList({ repos, isLoading }: RepoListProps) { const navigate = useNavigate() if (isLoading) { return (
{[...Array(4)].map((_, i) => (
))}
) } if (repos.length === 0) { return ( {t("me.recent_repos")} 暂无仓库 ) } return (
{repos.map((repo) => ( navigate(`/${repo.project_name}/repo/${repo.repo_name}`) } >

{repo.repo_name}

{repo.is_private && ( )}

{repo.description || "暂无描述"}

{repo.default_branch}
Updated {new Date(repo.updated_at).toLocaleDateString()}
))}
) }