MCPcopy Create free account
hub / github.com/BingyanStudio/github-analyzer / Report

Function Report

web/src/pages/Report.tsx:16–336  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

14}
15
16const Report = () => {
17 const [report, setReport] = useState<string | null>(null);
18 const [isLoading, setIsLoading] = useState(true);
19 const [error, setError] = useState<string | null>(null);
20 const [presets, setPresets] = useState<Preset[]>([]);
21 const [selectedPreset, setSelectedPreset] = useState<string>("");
22 const [isPresetLoaded, setIsPresetLoaded] = useState(false);
23 const [isStreaming, setIsStreaming] = useState(false);
24 const [statusMessage, setStatusMessage] = useState<string | null>(null);
25 const [errorMessage, setErrorMessage] = useState<string | null>(null);
26 const navigate = useNavigate();
27 const location = useLocation();
28
29 // Parse preset from URL query parameter
30 useEffect(() => {
31 const queryParams = new URLSearchParams(location.search);
32 const presetParam = queryParams.get("preset");
33 if (presetParam) {
34 setSelectedPreset(presetParam);
35 }
36 setIsPresetLoaded(true);
37 }, [location.search]);
38
39 // Fetch presets
40 useEffect(() => {
41 const fetchPresets = async () => {
42 try {
43 const response = await fetch("/api/presets");
44 if (response.ok) {
45 const data = await response.json();
46 setPresets(data.presets || []);
47 }
48 } catch (err) {
49 console.error("Error fetching presets:", err);
50 }
51 };
52
53 fetchPresets();
54 }, []);
55
56 // Fetch report with the selected preset
57 useEffect(() => {
58 // Only fetch the report once preset information is loaded from URL
59 if (!isPresetLoaded) return;
60
61 const fetchReport = async () => {
62 try {
63 setIsLoading(true);
64 setError(null);
65 setReport("");
66 setStatusMessage("准备生成报告...");
67
68 const url = selectedPreset
69 ? `/api/report?preset=${encodeURIComponent(selectedPreset)}`
70 : "/api/report";
71
72 setIsStreaming(true);
73

Callers

nothing calls this directly

Calls 2

fetchPresetsFunction · 0.85
fetchReportFunction · 0.85

Tested by

no test coverage detected