import { useState } from 'react' import { Table, Tag, Tabs, Typography, Card, Row, Col, Select, Space, Spin } from 'antd' import { CodeOutlined, RocketOutlined } from '@ant-design/icons' import { useQuery } from '@tanstack/react-query' import { api } from '@/services/http-client' const { Title, Text } = Typography export default function ProjectCenter() { const [selectedRepo, setSelectedRepo] = useState(null) const [tab, setTab] = useState('repos') const { data: repos, isLoading } = useQuery({ queryKey: ['gitea', 'repos'], queryFn: () => api.get('/admin-api/projects/repos').then(d => d ?? []), }) const repoParts = selectedRepo?.split('/') || [] const { data: issues } = useQuery({ queryKey: ['gitea', 'issues', selectedRepo], queryFn: () => api.get(`/admin-api/projects/repos/${repoParts[0]}/${repoParts[1]}/issues?state=all`).then(d => d ?? []), enabled: tab === 'issues' && repoParts.length === 2, }) const { data: milestones } = useQuery({ queryKey: ['gitea', 'milestones', selectedRepo], queryFn: () => api.get(`/admin-api/projects/repos/${repoParts[0]}/${repoParts[1]}/milestones`).then(d => d ?? []), enabled: tab === 'milestones' && repoParts.length === 2, }) const { data: releases } = useQuery({ queryKey: ['gitea', 'releases', selectedRepo], queryFn: () => api.get(`/admin-api/projects/repos/${repoParts[0]}/${repoParts[1]}/releases`).then(d => d ?? []), enabled: tab === 'releases' && repoParts.length === 2, }) const { data: runners } = useQuery({ queryKey: ['gitea', 'runners'], queryFn: () => api.get('/admin-api/projects/runners').then(d => d ?? []), enabled: tab === 'runners', }) const repoOptions = (repos || []).map((r: any) => ({ label: r.fullName, value: r.fullName })) const RepoSelector = () => (