import { useState } from "react"; import toast from "@/components/Toast"; import InfiniteScroll from "@/components/InfiniteScroll"; import ProjectCasesModal from "./components/ProjectCasesModal"; import { getProjectsList, getProjectsdetail } from "@/services/projectLibrary"; import "./index.css"; const PAGE_SIZE = 10; const ProjectLibrary = () => { const [modalData, setModalData] = useState(undefined); const [projectList, setProjectList] = useState([]); const [projectCasesModalVisible, setProjectCasesModalVisible] = useState(false); const [page, setPage] = useState(1); const [hasMore, setHasMore] = useState(true); const handleProjectClick = async (item) => { if (item?.id) { const res = await getProjectsdetail(item.id); if (res.success) { setModalData(res.data); setProjectCasesModalVisible(true); } else { toast.error(res.message); } } else { toast.error("加载数据失败,请刷新重试"); } }; const handleCloseModal = () => { setProjectCasesModalVisible(false); setModalData(undefined); }; const fetchProjects = async (pageNum) => { try { const res = await getProjectsList({ page: pageNum ?? page, pageSize: PAGE_SIZE, }); if (res.success) { setProjectList((prevList) => { const newList = [...prevList, ...res.data]; if (res.total === newList?.length) { setHasMore(false); } else { setPage((prevPage) => prevPage + 1); } return newList; }); } } catch (error) { console.error("Failed to fetch projects:", error); } }; return (

文旅班级项目库

{projectList.map((item) => (
  • {item.description}

    {item.name}

    handleProjectClick(item)}>详情 >
  • ))}
    {/* 我的项目库板块 */}

    我完成的项目库

    暂无项目

    ); }; export default ProjectLibrary;