import type React from "react"; import { useState } from "react"; import { Card, Button, List, Checkbox, Tooltip } from "antd"; import AddRepoModal from "./AddRepoModal"; import GenerateReportModal from "./GenerateReportModal"; import type { ReportType } from "../../types/types"; interface GitRepoFormData { repoPath: string; name: string; } interface GitRepoProps { onAddRepo: (repo: GitRepoFormData) => void; repos: GitRepoFormData[]; className?: string; onGenerateReport: (reportType: ReportType, useAI: boolean) => void; onReposSelect?: (selectedRepos: string[]) => void; } const GitRepo: React.FC = ({ onAddRepo, repos: initialRepos, className, onGenerateReport, onReposSelect, }) => { const [repos, setRepos] = useState(() => { const savedRepos = localStorage.getItem("gitRepos"); return savedRepos ? JSON.parse(savedRepos) : initialRepos; }); const [isModalOpen, setIsModalOpen] = useState(false); const handleModalSubmit = (repoPath: string, name: string) => { const newRepo = { name, repoPath }; const updatedRepos = [...repos, newRepo]; localStorage.setItem("gitRepos", JSON.stringify(updatedRepos)); setRepos(updatedRepos); onAddRepo(newRepo); setIsModalOpen(false); }; const showModal = () => { setIsModalOpen(true); }; const handleCancel = () => { setIsModalOpen(false); }; const [selectedRepos, setSelectedRepos] = useState([]); const [isGenerateModalOpen, setIsGenerateModalOpen] = useState(false); const handleCheckboxChange = (checkedValues: string[]) => { setSelectedRepos(checkedValues); onReposSelect?.(checkedValues); console.log("选中的仓库:", checkedValues); }; const handleGenerateReport = (reportType: ReportType, useAI: boolean) => { console.log("生成报告:", { reportType, useAI, selectedRepos }); setIsGenerateModalOpen(false); onGenerateReport(reportType, useAI); }; return (
setIsGenerateModalOpen(false)} onSubmit={handleGenerateReport} />
已添加的仓库
} bordered dataSource={repos} renderItem={(item) => ( {item.name} )} footer={ selectedRepos.length > 0 && (
) } /> ); }; export default GitRepo;