"use client"; import { useState, useEffect } from "react"; import yaml from "js-yaml"; import ServerCard from "../components/ServerCard"; import ThemeToggle from "../components/ThemeToggle"; import SearchBar from "../components/SearchBar"; interface Server { name: string; description: string; version_type: string; version_range?: string; // 可选属性 links?: { downloads?: string[]; "icon-GitHub"?: string; "icon-jenkins"?: string; }; // 修改后的可选属性 } export default function Home() { const [servers, setServers] = useState([]); const [filteredServers, setFilteredServers] = useState([]); const [theme, setTheme] = useState("light"); const [searchTerm, setSearchTerm] = useState(""); useEffect(() => { fetch("/api/servers") .then((res) => res.json()) .then((data) => { const parsedData = yaml.load(data.yaml) as { servers: Server[] }; setServers(parsedData.servers); setFilteredServers(parsedData.servers); }); }, []); useEffect(() => { const filtered = servers.filter( (server) => server.name.toLowerCase().includes(searchTerm.toLowerCase()) || server.description.toLowerCase().includes(searchTerm.toLowerCase()) || server.version_type.toLowerCase().includes(searchTerm.toLowerCase()) ); setFilteredServers(filtered); }, [searchTerm, servers]); const toggleTheme = () => { setTheme(theme === "light" ? "dark" : "light"); }; return (

MSList

{filteredServers.map((server, index) => ( ))}
{filteredServers.length === 0 && (

没有找到匹配的服务器。

)}
); }