Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 58 additions & 13 deletions app/[nsfront]/[nsbehind]/[name]/[version]/dependencies/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"use client";
import React, { useEffect, useState } from "react";
import { useParams } from "next/navigation";

import Image from "next/image";
import DependencyTable from "@/components/DependencyTable";
// import DependencyGraph from "@/components/DependencyGraph"; // 假设你已经创建了 DependencyGraph 组件
import { dependenciesInfo } from "@/app/lib/all_interface";
Expand All @@ -17,7 +17,7 @@ const CratePage = () => {
const [error, setError] = useState<string | null>(null);

// 新增状态:控制显示 DependencyTable 或 DependencyGraph
const [showTable, setShowTable] = useState(true);
// const [showTable, setShowTable] = useState(true);

useEffect(() => {
const fetchCrateData = async () => {
Expand All @@ -44,22 +44,67 @@ const CratePage = () => {
fetchCrateData(); // 调用函数来获取数据
}, [params.name, params.version, params.nsfront, params.nsbehind]); // 依赖项数组,确保在 crateName 或 version 改变时重新获取数据

if (loading) return <div>Loading...</div>;
if (error) return <div className="text-red-500">Error: {error}</div>;
if (loading) return <div className="flex justify-center items-center min-h-screen">Loading...</div>;
if (error) return <div className="flex justify-center items-center min-h-screen text-red-500">Error: {error}</div>;

return (
<div className="container mx-auto p-4">
<div className="min-h-screen bg-white flex flex-col">
<div className="flex justify-center w-full py-8">
<div className="w-[1500px] px-8">
<DependencyTable data={results?.data} />
</div>
</div>

{/* 页脚 */}
<footer className="bg-[#002851] text-white py-12 mt-auto">
<div className="flex justify-center w-full">
<div className="w-[1500px] px-8">
<div className="grid grid-cols-1 md:grid-cols-4 gap-8">
<div>
<Image
src="/images/homepage/logo-footer.png"
alt="CratesPro Logo"
width={180}
height={60}
className="mb-4"
/>
</div>

<div>
<h4 className="text-lg font-semibold mb-4">Resources</h4>
<ul className="space-y-2">
<li><Link href="#" className="hover:text-blue-300">Documentation</Link></li>
<li><Link href="#" className="hover:text-blue-300">About</Link></li>
<li><Link href="#" className="hover:text-blue-300">Blog</Link></li>
<li><Link href="#" className="hover:text-blue-300">FAQ</Link></li>
</ul>
</div>

{/* 切换按钮 */}
<Link
onClick={() => setShowTable(!showTable)} // 切换状态
className="mb-4 px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600"
href={`/${params.nsfront}/${params.nsbehind}/${params.name}/${params.version}/dependencies/graph`} >
{showTable ? "Show Graph" : "Show Table"}
</Link>
<div>
<h4 className="text-lg font-semibold mb-4">API</h4>
<ul className="space-y-2">
<li><Link href="#" className="hover:text-blue-300">API</Link></li>
<li><Link href="#" className="hover:text-blue-300">BigQuery Dataset</Link></li>
<li><Link href="#" className="hover:text-blue-300">GitHub</Link></li>
</ul>
</div>

<DependencyTable data={results?.data} />
<div>
<h4 className="text-lg font-semibold mb-4">Legal</h4>
<ul className="space-y-2">
<li><Link href="#" className="hover:text-blue-300">Legal</Link></li>
<li><Link href="#" className="hover:text-blue-300">Privacy</Link></li>
<li><Link href="#" className="hover:text-blue-300">Terms</Link></li>
</ul>
</div>
</div>

<div className="border-t border-gray-700 mt-8 pt-8 text-center text-sm">
<p>Copyright © 2023 jp21.com.cn All Rights Reserved(@ICPBH180237号)</p>
</div>
</div>
</div>
</footer>
</div>
);
};
Expand Down
4 changes: 2 additions & 2 deletions app/[nsfront]/[nsbehind]/[name]/[version]/page.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -272,8 +272,8 @@ const CratePage = () => {
<Image
src="/images/homepage/miss.png"
alt="No vulnerabilities"
width={192}
height={192}
width={140}
height={140}
className="mb-1"
/>
<p className="text-[#C9D2FF] font-['HarmonyOS_Sans_SC'] text-[14px] font-normal leading-normal capitalize">No vulnerabilities found</p>
Expand Down
10 changes: 7 additions & 3 deletions components/CrateNav.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -60,9 +60,13 @@ const CrateNav: React.FC<CrateNavProps> = ({ nsfront, nsbehind, name, version })

return (
<div>
<NewHeader />
<div className="flex justify-center px-4 py-6">
<div className="w-[1500px] h-[120px] bg-white rounded-2xl shadow-[0_0_12px_0_rgba(43,88,221,0.09)] px-8">
<div className="flex justify-center w-full">
<div className="w-[1500px] px-8">
<NewHeader />
</div>
</div>
<div className="flex justify-center py-6">
<div className="w-[1440px] h-[120px] bg-white rounded-2xl shadow-[0_0_12px_0_rgba(43,88,221,0.09)] px-8">
<div className="flex items-center justify-between h-16">
<div className="flex items-center space-x-4">
<h1 className="text-2xl font-semibold" style={{ color: 'rgb(28, 63, 115)' }}>{name}</h1>
Expand Down
Loading