From 9cad86b360378b7e949c5dd32fb9f84b977091b7 Mon Sep 17 00:00:00 2001 From: martinwq997 <2246839805@qq.com> Date: Tue, 12 Aug 2025 18:01:01 +0800 Subject: [PATCH] add Dependencies, Dependents, Compare, and Versions pages --- .../crate-info/[crateName]/compare/index.tsx | 1063 +++++++++++++++++ .../[crateName]/dependencies/index.tsx | 529 ++++++++ .../[crateName]/dependents/index.tsx | 363 ++++++ .../[crateName]}/index.tsx | 149 +-- .../crate-info/[crateName]/layout.tsx | 214 ++++ .../crate-info/[crateName]/versions/index.tsx | 339 ++++++ .../ecosystem-cve/cve-info/[cve-id]/index.tsx | 8 +- .../rust/rust-ecosystem/search/index.tsx | 223 ++-- .../rust/rust-ecosystem/crate-info/Frame.png | Bin 0 -> 904 bytes .../crate-info/compare/exchange.png | Bin 0 -> 904 bytes .../dependencies/Components - table.png | Bin 0 -> 253 bytes ...-\350\257\246\346\203\205-dependencis.png" | Bin 0 -> 125552 bytes .../dependencies/double-arrow-up.png | Bin 0 -> 317 bytes 13 files changed, 2629 insertions(+), 259 deletions(-) create mode 100644 moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/compare/index.tsx create mode 100644 moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/dependencies/index.tsx create mode 100644 moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/dependents/index.tsx rename moon/apps/web/pages/[org]/rust/rust-ecosystem/{search/crate-info => crate-info/[crateName]}/index.tsx (87%) create mode 100644 moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/layout.tsx create mode 100644 moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/versions/index.tsx create mode 100644 moon/apps/web/public/rust/rust-ecosystem/crate-info/Frame.png create mode 100644 moon/apps/web/public/rust/rust-ecosystem/crate-info/compare/exchange.png create mode 100644 moon/apps/web/public/rust/rust-ecosystem/crate-info/dependencies/Components - table.png create mode 100644 "moon/apps/web/public/rust/rust-ecosystem/crate-info/dependencies/crate-\350\257\246\346\203\205-dependencis.png" create mode 100644 moon/apps/web/public/rust/rust-ecosystem/crate-info/dependencies/double-arrow-up.png diff --git a/moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/compare/index.tsx b/moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/compare/index.tsx new file mode 100644 index 000000000..6a3e4197e --- /dev/null +++ b/moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/compare/index.tsx @@ -0,0 +1,1063 @@ +"use client"; +import React, { useEffect, useState } from 'react'; +import Head from 'next/head'; +import Image from 'next/image'; +import { useParams } from 'next/navigation'; +import { useRouter } from 'next/router'; +import { AppLayout } from '@/components/Layout/AppLayout'; +import AuthAppProviders from '@/components/Providers/AuthAppProviders'; +// import { ArrowsRightLeftIcon, ChevronDownIcon } from '@heroicons/react/24/outline'; +import CrateInfoLayout from '../layout'; + +interface VersionData { + version: string; + published: string; + description: string; + licenses: { + primary: string; + dependencies: string[]; + }; + securityAdvisories: { + inDependencies: Array<{ + id: string; + description: string; + severity?: string; + }>; + }; + dependencies: Array<{ + name: string; + version: string; + highlighted?: 'added' | 'removed' | 'updated'; + }>; +} + +const ComparePage = () => { + const params = useParams(); + const router = useRouter(); + const [leftVersion, setLeftVersion] = useState(null); + const [rightVersion, setRightVersion] = useState(null); + const selectedLeftVersion = '1.2.01'; + const selectedRightVersion = '1.2.01'; + const [isSwapped, setIsSwapped] = useState(false); + + // 从查询参数或URL参数中获取crate信息 + const crateName = (router.query.crateName as string) || params?.crateName as string || "tokio"; + + useEffect(() => { + // 模拟版本数据 + const getMockVersionData = (version: string, isLeftCard: boolean = false): VersionData => ({ + version, + published: version === '1.2.01' ? 'March7, 2025' : 'March7, 2025', + description: 'An event-driven,non-blocking I/O platform for writing asynchronous I/O backed applications.', + licenses: { + primary: 'MIT', + dependencies: [ + '0BSD OR Apache-2.0 OR MIT', + ...(version === '1.2.01' ? ['Apache-2.0', 'Apache-2.0 OR BSD-2-Clause OR MIT', 'Apache-2.0 OR BSL-1.0'] : []), + 'Apache-2.0 OR LGPL-2.1-or-later OR MIT', + 'Unicode-3.0 AND (Apache-2.0 OR MIT)' + ] + }, + securityAdvisories: { + inDependencies: [ + { + id: 'request', + description: 'Server-Side Request Forgery In Request', + severity: '2.88.2' + }, + { + id: 'GHSA-p8p7-x288-28g6', + description: 'Server-Side Request Forgery In Request' + }, + { + id: 'tough-cookie', + description: 'Server-Side Request Forgery In Request', + severity: '2.5.1' + }, + { + id: 'GHSA-p8p7-x288-28g6', + description: 'Server-Side Request Forgery In Request' + } + ] + }, + dependencies: [ + { name: 'abab', version: '2.0.6' }, + { name: 'acorn', version: '5.7.4', highlighted: (version === '1.2.01' && isLeftCard) ? 'added' : undefined }, + { name: 'acorn-globals', version: '6.4.2' }, + { name: 'ajv', version: '6.12.6' }, + { name: 'acorn', version: '5.7.4' }, + { name: 'abab', version: '2.0.6' }, + { name: 'browser-process-hrtime-addsvj', version: '6.4.2' } + ] + }); + + setLeftVersion(getMockVersionData(selectedLeftVersion, true)); + setRightVersion(getMockVersionData(selectedRightVersion, false)); + }, [selectedLeftVersion, selectedRightVersion]); + + const handleSwapVersions = () => { + setIsSwapped(!isSwapped); + }; + + const VersionSelector = ({ + version + }: { + version: string; + }) => ( +
+
+ + + +
+ + {version} + + + + +
+ ); + + // const ComparisonSection = ({ + // title, + // leftContent, + // rightContent + // }: { + // title: string; + // leftContent: React.ReactNode; + // rightContent: React.ReactNode; + // }) => ( + //
+ //

+ // {title} + //

+ //
+ //
{leftContent}
+ //
{rightContent}
+ //
+ //
+ // ); + + const getHighlightColor = (type?: 'added' | 'removed' | 'updated') => { + switch (type) { + case 'added': return 'rgb(234,141,143)'; // 粉色(红色),acorn使用 + case 'removed': return 'rgb(234,141,143)'; // 红色 + case 'updated': return 'rgb(232,192,97)'; // 橙色 + default: return 'transparent'; + } + }; + + if (!leftVersion || !rightVersion) { + return
Loading...
; + } + + return ( + <> + + Compare - {crateName} + + +
+
+ {/* 左右两个卡片 */} +
+ {/* 交换按钮 - 位于顶部中间 */} +
+ +
+ + {/* 左侧卡片 */} +
+ {/* 版本选择器 */} +
+ +
+ {/* Published */} +
+

+ Published +

+
+
+ {leftVersion.published} +
+
+
+ + {/* Description */} +
+

+ Description +

+
+ {leftVersion.description} +
+
+ + {/* Licenses */} +
+ {/* 分割线 */} +
+

+ Licenses +

+
+
+
+ LICENSES +
+
+ {leftVersion.licenses.primary} +
+
+
+
+ DEPENDENCY LICENSES +
+
+ {leftVersion.licenses.dependencies.map((license) => ( +
+ {license} + {license === 'Apache-2.0' && selectedLeftVersion === '1.2.01' && ( + + + + )} +
+ ))} +
+
+
+
+ + {/* Security Advisories */} +
+

+ Security Advisories +

+
+
+ IN THE DEPENDENCIES +
+
+ {leftVersion.securityAdvisories.inDependencies.map((advisory, index) => ( +
+
+
+ {advisory.id} +
+ {advisory.severity && ( +
+ {advisory.severity} +
+ )} + {advisory.id !== 'request' && advisory.id !== 'tough-cookie' && ( +
+ {advisory.description} +
+ )} +
+ {advisory.id === 'GHSA-p8p7-x288-28g6' && index === 1 && ( + + + + )} +
+ ))} +
+
+
+ + {/* Dependencies */} +
+

+ Dependencies +

+
+ {leftVersion.dependencies.map((dep) => ( +
+
+ + {dep.name} + + + {dep.version} + +
+ {dep.highlighted && ( + + + + )} +
+ ))} +
+
+
+ + {/* 右侧卡片 */} +
+ {/* 版本选择器 */} +
+ +
+ {/* Published */} +
+

+ Published +

+
+
+ {rightVersion.published} +
+ + + +
+
+ + {/* Description */} +
+

+ Description +

+
+ {rightVersion.description} +
+
+ + {/* Licenses */} +
+ {/* 分割线 */} +
+

+ Licenses +

+
+
+
+ LICENSES +
+
+ {rightVersion.licenses.primary} +
+
+
+
+ DEPENDENCY LICENSES +
+
+ {rightVersion.licenses.dependencies.map((license) => ( +
+ {license} + {license === 'Apache-2.0 OR BSL-1.0' && selectedRightVersion === '1.2.01' && ( + + + + )} +
+ ))} +
+
+
+
+ + {/* Security Advisories */} +
+

+ Security Advisories +

+
+
+ IN THE DEPENDENCIES +
+
+ {rightVersion.securityAdvisories.inDependencies.map((advisory) => ( +
+
+
+ {advisory.id} +
+ {advisory.severity && ( +
+ {advisory.severity} +
+ )} + {advisory.id !== 'request' && advisory.id !== 'tough-cookie' && ( +
+ {advisory.description} +
+ )} +
+
+ ))} +
+
+
+ + {/* Dependencies */} +
+

+ Dependencies +

+
+ {rightVersion.dependencies.map((dep) => ( +
+
+ + {dep.name} + + + {dep.version} + +
+
+ ))} +
+
+
+
+
+
+ + + ); +}; + +// 添加 getProviders 方法以适配新的项目结构 +ComparePage.getProviders = (page: any, pageProps: any) => { + return ( + + {page} + + ); +}; + +export default ComparePage; diff --git a/moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/dependencies/index.tsx b/moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/dependencies/index.tsx new file mode 100644 index 000000000..797c9efdf --- /dev/null +++ b/moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/dependencies/index.tsx @@ -0,0 +1,529 @@ +"use client"; +import React, { useEffect, useState } from 'react'; +import Head from 'next/head'; +import { useParams } from 'next/navigation'; +import { useRouter } from 'next/router'; +import { AppLayout } from '@/components/Layout/AppLayout'; +import AuthAppProviders from '@/components/Providers/AuthAppProviders'; +import { MagnifyingGlassIcon, ChevronDownIcon, ChevronUpIcon } from '@heroicons/react/24/outline'; +import CrateInfoLayout from '../layout'; +import Image from 'next/image'; + +interface Dependency { + id: string; + name: string; + version: string; + relation: 'Direct' | 'Indirect'; + license: string; + dependencies: number; + expanded?: boolean; + description?: string; + published?: string; +} + +const DependenciesPage = () => { + const params = useParams(); + const router = useRouter(); + const [dependencies, setDependencies] = useState([]); + const [currentPage, setCurrentPage] = useState(1); + const [viewMode, setViewMode] = useState<'table' | 'graph'>('table'); + const [searchTerm, setSearchTerm] = useState(''); + + // 从查询参数或URL参数中获取crate信息 + const crateName = (router.query.crateName as string) || params?.crateName as string || "tokio"; + const version = (router.query.version as string) || params?.version as string || "1.2.01"; + // const nsfront = params?.nsfront as string || router.query.org as string; + // const nsbehind = params?.nsbehind as string || "rust/rust-ecosystem/crate-info"; + + useEffect(() => { + // 模拟依赖数据 + const mockDependencies: Dependency[] = [ + { + id: '1', + name: 'cheerio', + version: '1.1.1.0', + relation: 'Direct', + license: 'MIT', + dependencies: 21, + expanded: false + }, + { + id: '2', + name: 'Text', + version: '1.1.1.0', + relation: 'Direct', + license: 'MIT', + dependencies: 216, + expanded: true, + description: 'The fast, flexible & elegant library for parsing and manipulating HTML and XML.', + published: 'June 8, 2025' + }, + { + id: '3', + name: 'Text', + version: 'Subtitle', + relation: 'Direct', + license: 'MIT', + dependencies: 68, + expanded: false + }, + { + id: '4', + name: 'Text', + version: 'Subtitle', + relation: 'Direct', + license: 'MIT', + dependencies: 23, + expanded: false + }, + { + id: '5', + name: 'Text', + version: 'Subtitle', + relation: 'Direct', + license: 'MIT', + dependencies: 1299, + expanded: false + }, + { + id: '6', + name: 'Text', + version: 'Subtitle', + relation: 'Direct', + license: 'MIT', + dependencies: 99, + expanded: false + }, + { + id: '7', + name: 'Text', + version: 'Subtitle', + relation: 'Direct', + license: 'MIT', + dependencies: 66, + expanded: false + }, + { + id: '8', + name: 'Text', + version: 'Subtitle', + relation: 'Direct', + license: 'MIT', + dependencies: 666, + expanded: false + } + ]; + + // 直接设置数据,不使用加载延迟 + setDependencies(mockDependencies); + }, [crateName, version]); + + const toggleExpanded = (id: string) => { + setDependencies(prev => + prev.map(dep => + dep.id === id ? { ...dep, expanded: !dep.expanded } : dep + ) + ); + }; + + const filteredDependencies = dependencies.filter(dep => + dep.name.toLowerCase().includes(searchTerm.toLowerCase()) || + dep.version.toLowerCase().includes(searchTerm.toLowerCase()) + ); + + return ( + <> + + Dependencies - {crateName} + + + {/* 主要内容区域 */} +
+
+ {/* 统一的白色面板 */} +
+ {/* 搜索和视图切换 - 在面板内部 */} +
+
+
+
+ +
+ setSearchTerm(e.target.value)} + style={{ + display: 'flex', + height: 'var(--Spacing-8, 36px)', + padding: '0 var(--Spacing-1, 4px)', + alignItems: 'center', + alignSelf: 'stretch', + borderRadius: 'var(--Radius-2-max, 4px)', + border: '1px solid var(--Colors-Neutral-Neutral-Alpha-5, #0009321f)', + background: 'var(--Tokens-Colors-surface, #ffffffe6)', + paddingLeft: '40px', + width: '100%' + }} + /> +
+
+
+ + +
+
+ + {/* 表格 - 在面板内部 */} +
+ + + + + + + + + + + + {filteredDependencies.map((dependency) => ( + + + + + + + + + {dependency.expanded && dependency.description && ( + + + + )} + + ))} + +
+ Package + + Notes + +
+ Relation + sort +
+
+ License + + Dependencies +
+
+ +
+
+ {dependency.name} +
+
+ {dependency.version} +
+
+
+
+ + + + {dependency.relation} + + + {dependency.license} + + {dependency.dependencies} +
+
+ + + + + + + + + + + + + + + +
+ Version: + + {dependency.version} +
+ Published: + + {dependency.published} +
+ Description: + + {dependency.description} +
+
+
+
+
+ + {/* 分页功能区 */} +
+
+
+ {/* Previous 按钮 */} + + + {/* 当前页码 */} + {currentPage} + + {/* Next 按钮 */} + +
+
+
+
+
+
+ + ); +}; + +// 添加 getProviders 方法以适配新的项目结构 +DependenciesPage.getProviders = (page: any, pageProps: any) => { + return ( + + {page} + + ); +}; + +export default DependenciesPage; diff --git a/moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/dependents/index.tsx b/moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/dependents/index.tsx new file mode 100644 index 000000000..292b03142 --- /dev/null +++ b/moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/dependents/index.tsx @@ -0,0 +1,363 @@ +"use client"; +import React, { useEffect, useState } from 'react'; +import Head from 'next/head'; +import { useParams } from 'next/navigation'; +import { useRouter } from 'next/router'; +import { AppLayout } from '@/components/Layout/AppLayout'; +import AuthAppProviders from '@/components/Providers/AuthAppProviders'; +// import { MagnifyingGlassIcon } from '@heroicons/react/24/outline'; +import CrateInfoLayout from '../layout'; + +interface Dependent { + id: string; + name: string; + version: string; + relation: 'Direct' | 'Indirect'; + license?: string; + dependencies?: number; + expanded?: boolean; + description?: string; + published?: string; +} + +const DependentsPage = () => { + const params = useParams(); + const router = useRouter(); + const [dependents, setDependents] = useState([]); + const [currentPage, setCurrentPage] = useState(1); + // const [viewMode, setViewMode] = useState<'table' | 'graph'>('table'); + const searchTerm = ''; + + // 从查询参数或URL参数中获取crate信息 + const crateName = (router.query.crateName as string) || params?.crateName as string || "tokio"; + const version = (router.query.version as string) || params?.version as string || "1.2.01"; + + useEffect(() => { + // 模拟dependents数据 - 显示使用当前包的其他包 + const mockDependents: Dependent[] = [ + { + id: '1', + name: 'github-random-star', + version: '1.0.2', + relation: 'Direct', + expanded: false + }, + { + id: '2', + name: 'github-random-star', + version: '1.0.1', + relation: 'Direct', + expanded: false + } + ]; + + // 直接设置数据,不使用加载延迟 + setDependents(mockDependents); + }, [crateName, version]); + + const filteredDependents = dependents.filter(dep => + dep.name.toLowerCase().includes(searchTerm.toLowerCase()) || + dep.version.toLowerCase().includes(searchTerm.toLowerCase()) + ); + + return ( + <> + + Dependents - {crateName} + + + {/* 主要内容区域 */} +
+
+ {/* 统一的白色面板 */} +
+ + + {/* 数据统计显示 - 在面板内部 */} +
+
+
+ Direct + Indirect +
+ +
+ + 26 + + + 12 + +
+ + {/* 进度条 */} +
+
+
+
+
+
+
+
+
+
+ + {/* 表格 - 在面板内部 */} +
+ + + + + + + + + + {filteredDependents.map((dependent) => ( + + + + + + + {dependent.expanded && dependent.description && ( + + + + )} + + ))} + +
+ Package + + Version + + Relation +
+
+ {dependent.name} +
+
+ + {dependent.version} + + + + {dependent.relation} + +
+
+
+ + Version: {dependent.version} + + + Published: {dependent.published} + +
+

+ {dependent.description} +

+
+
+
+
+ + {/* 分页功能区 */} +
+
+
+ {/* Previous 按钮 */} + + + {/* 当前页码 */} + {currentPage} + + {/* Next 按钮 */} + +
+
+
+
+
+ + + ); +}; + +// 添加 getProviders 方法以适配新的项目结构 +DependentsPage.getProviders = (page: any, pageProps: any) => { + return ( + + {page} + + ); +}; + +export default DependentsPage; diff --git a/moon/apps/web/pages/[org]/rust/rust-ecosystem/search/crate-info/index.tsx b/moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/index.tsx similarity index 87% rename from moon/apps/web/pages/[org]/rust/rust-ecosystem/search/crate-info/index.tsx rename to moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/index.tsx index 0d113e1a1..cf2cda4ca 100644 --- a/moon/apps/web/pages/[org]/rust/rust-ecosystem/search/crate-info/index.tsx +++ b/moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/index.tsx @@ -8,7 +8,8 @@ import { useRouter } from 'next/router'; // import Image from 'next/image'; import { AppLayout } from '@/components/Layout/AppLayout'; import AuthAppProviders from '@/components/Providers/AuthAppProviders'; -import { MagnifyingGlassIcon } from '@heroicons/react/24/outline'; +// import { MagnifyingGlassIcon } from '@heroicons/react/24/outline'; +import CrateInfoLayout from './layout'; // interface CVE { // subtitle?: string; @@ -62,7 +63,6 @@ const CratePage = () => { const params = useParams(); const router = useRouter(); const [results, setResults] = useState(null); - const [loading, setLoading] = useState(true); const [error, _setError] = useState(null); const [_packageCurrentPage, _setPackageCurrentPage] = useState(1); const [_depCurrentPage, _setDepCurrentPage] = useState(1); @@ -73,7 +73,7 @@ const CratePage = () => { const crateName = (router.query.crateName as string) || params?.crateName as string || "example-crate"; const version = (router.query.version as string) || params?.version as string || "1.0.0"; const nsfront = params?.nsfront as string || router.query.org as string; - const nsbehind = params?.nsbehind as string || "rust/rust-ecosystem/search/crate-info"; + const nsbehind = params?.nsbehind as string || "rust/rust-ecosystem/crate-info"; const name = params?.name as string || crateName; // const basePath = `/${nsfront}/${nsbehind}/${name}/${version}`; @@ -122,15 +122,11 @@ const CratePage = () => { versions: ["1.0.0", "1.1.0", "1.2.0", "2.0.0"] }; - // 模拟加载延迟 - setTimeout(() => { - setResults(mockData); - _setVersions(mockData.versions); - setLoading(false); - }, 500); + // 直接设置数据,不使用加载延迟 + setResults(mockData); + _setVersions(mockData.versions); }, [crateName]); - if (loading) return

Loading...

; if (error) return

Error: {error}

; // const _getCurrentPageItems = (items: CVE[], currentPage: number) => { @@ -147,132 +143,7 @@ const CratePage = () => { Crate Info - {crateName || 'Crate'} -
- {/* 搜索栏 */} -
-
-
-
-
- -
- -
-
-
-
-
- - {/* 分类标签和版本选择区域 */} -
-
- {/* Crate信息 */} -
-
-
-
Cargo crate
-

- {crateName} -

-
-
-
- - - -
- {version} - - - -
-
-
- - {/* 导航标签 */} -
- {[ - { id: 'overview', label: 'overview' }, - { id: 'dependencis', label: 'dependencis' }, - { id: 'depentes', label: 'depentes' }, - { id: 'compare', label: 'compare' }, - { id: 'versions', label: 'versions' } - ].map((tab) => ( - - ))} -
-
-
- +
@@ -515,7 +386,7 @@ const CratePage = () => { > ISC
-
22
+
22
{
- + View all dependencies ({results.dependencies.direct + results.dependencies.indirect}) @@ -898,7 +769,7 @@ const CratePage = () => {
-
+
); }; diff --git a/moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/layout.tsx b/moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/layout.tsx new file mode 100644 index 000000000..1c1af6ef3 --- /dev/null +++ b/moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/layout.tsx @@ -0,0 +1,214 @@ +"use client"; +import React, { useState, useEffect, useMemo, useCallback } from 'react'; +import { useRouter } from 'next/router'; +import { useParams } from 'next/navigation'; +import { MagnifyingGlassIcon } from '@heroicons/react/24/outline'; + +interface CrateInfoLayoutProps { + children: React.ReactNode; +} + +const CrateInfoLayoutComponent = ({ children }: CrateInfoLayoutProps) => { + const router = useRouter(); + const params = useParams(); + + // 从查询参数或URL参数中获取crate信息 + const crateName = useMemo(() => + (router.query.crateName as string) || params?.crateName as string || "example-crate", + [router.query.crateName, params?.crateName] + ); + const version = useMemo(() => + (router.query.version as string) || params?.version as string || "1.0.0", + [router.query.version, params?.version] + ); + const nsfront = useMemo(() => + params?.nsfront as string || router.query.org as string, + [params?.nsfront, router.query.org] + ); + + // 根据当前路径确定activeTab + const [activeTab, setActiveTab] = useState<'overview' | 'dependencies' | 'dependents' | 'compare' | 'versions'>('overview'); + + useEffect(() => { + const path = router.asPath; + + if (path.includes('/dependencies')) { + setActiveTab('dependencies'); + } else if (path.includes('/dependents')) { + setActiveTab('dependents'); + } else if (path.includes('/compare')) { + setActiveTab('compare'); + } else if (path.includes('/versions')) { + setActiveTab('versions'); + } else { + setActiveTab('overview'); + } + }, [router.asPath]); + + const handleTabClick = useCallback((href: string) => { + router.push(href, undefined, { shallow: true }); + }, [router]); + + const navigationTabs = useMemo(() => [ + { id: 'overview', label: 'overview', href: `/${nsfront}/rust/rust-ecosystem/crate-info/${crateName}?crateName=${crateName}&version=${version}` }, + { id: 'dependencies', label: 'dependencies', href: `/${nsfront}/rust/rust-ecosystem/crate-info/${crateName}/dependencies?crateName=${crateName}&version=${version}` }, + { id: 'dependents', label: 'dependents', href: `/${nsfront}/rust/rust-ecosystem/crate-info/${crateName}/dependents?crateName=${crateName}&version=${version}` }, + { id: 'compare', label: 'compare', href: `/${nsfront}/rust/rust-ecosystem/crate-info/${crateName}/compare?crateName=${crateName}&version=${version}` }, + { id: 'versions', label: 'versions', href: `/${nsfront}/rust/rust-ecosystem/crate-info/${crateName}/versions?crateName=${crateName}&version=${version}` } + ], [nsfront, crateName, version]); + + return ( +
+ {/* 搜索栏 */} +
+
+
+
+
+ +
+ +
+
+
+
+
+ + {/* 分类标签和版本选择区域 */} +
+
+ {/* Crate信息 */} +
+
+
+
Cargo crate
+

+ {crateName} +

+
+
+
+ + + +
+ {version} + + + +
+
+
+ + {/* 导航标签 */} +
+ {navigationTabs.map((tab) => ( + tab.href ? ( + + ) : ( + + ) + ))} +
+
+
+ + {/* 主要内容区域 */} + {children} +
+ ); +}; + +const CrateInfoLayout = React.memo(CrateInfoLayoutComponent); + +CrateInfoLayout.displayName = 'CrateInfoLayout'; + +export default CrateInfoLayout; \ No newline at end of file diff --git a/moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/versions/index.tsx b/moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/versions/index.tsx new file mode 100644 index 000000000..2f5243427 --- /dev/null +++ b/moon/apps/web/pages/[org]/rust/rust-ecosystem/crate-info/[crateName]/versions/index.tsx @@ -0,0 +1,339 @@ +"use client"; +import React, { useEffect, useState } from 'react'; +import Head from 'next/head'; +import { useParams } from 'next/navigation'; +import { useRouter } from 'next/router'; +import { AppLayout } from '@/components/Layout/AppLayout'; +import AuthAppProviders from '@/components/Providers/AuthAppProviders'; +// import { ChevronUpDownIcon } from '@heroicons/react/24/outline'; +import CrateInfoLayout from '../layout'; +import Image from 'next/image'; + +interface VersionInfo { + id: string; + version: string; + published: string; + dependents: number; +} + +const VersionsPage = () => { + const params = useParams(); + const router = useRouter(); + const [versions, setVersions] = useState([]); + const [currentPage, setCurrentPage] = useState(1); + const [sortOrder, setSortOrder] = useState<'asc' | 'desc'>('desc'); + const itemsPerPage = 10; + + // 从查询参数或URL参数中获取crate信息 + const crateName = (router.query.crateName as string) || params?.crateName as string || "tokio"; + + useEffect(() => { + // 模拟版本数据 + const mockVersions: VersionInfo[] = [ + { + id: '1', + version: '1.45.1', + published: 'May 24, 2025', + dependents: 19934 + }, + { + id: '2', + version: '1.45.0', + published: 'May 6, 2025', + dependents: 9921 + }, + { + id: '3', + version: '1.44.2', + published: 'April 6, 2025', + dependents: 3 + }, + { + id: '4', + version: '1.44.1', + published: 'April 6, 2025', + dependents: 6 + }, + { + id: '5', + version: '1.44.0', + published: 'April 5, 2025', + dependents: 0 + }, + { + id: '6', + version: '1.43.1', + published: 'March 13, 2025', + dependents: 82 + }, + { + id: '7', + version: '1.43.0', + published: 'March 10, 2025', + dependents: 992 + }, + { + id: '8', + version: '1.42.1', + published: 'March 3, 2025', + dependents: 666 + }, + { + id: '9', + version: '1.42.0', + published: 'January 13, 2025', + dependents: 0 + }, + { + id: '10', + version: '1.41.1', + published: 'November 7, 2024', + dependents: 0 + } + ]; + + // 排序版本 + const sortedVersions = [...mockVersions].sort((a, b) => { + const aVersion = a.version.split('.').map(Number); + const bVersion = b.version.split('.').map(Number); + + for (let i = 0; i < Math.max(aVersion.length, bVersion.length); i++) { + const aPart = aVersion[i] || 0; + const bPart = bVersion[i] || 0; + + if (aPart !== bPart) { + return sortOrder === 'desc' ? bPart - aPart : aPart - bPart; + } + } + return 0; + }); + + setVersions(sortedVersions); + }, [sortOrder]); + + const handleSort = () => { + setSortOrder(sortOrder === 'desc' ? 'asc' : 'desc'); + }; + + const handleVersionClick = (_version: string) => { + // 可以导航到该版本的详情页 + // TODO: 实现版本导航功能 + }; + + // 分页逻辑 + const totalPages = Math.ceil(versions.length / itemsPerPage); + const startIndex = (currentPage - 1) * itemsPerPage; + const endIndex = startIndex + itemsPerPage; + const currentVersions = versions.slice(startIndex, endIndex); + + const handlePreviousPage = () => { + if (currentPage > 1) { + setCurrentPage(currentPage - 1); + } + }; + + const handleNextPage = () => { + if (currentPage < totalPages) { + setCurrentPage(currentPage + 1); + } + }; + + return ( + <> + + Versions - {crateName} + + +
+
+ {/* 表格 */} +
+
+ + + + + + + + + + {currentVersions.map((versionInfo) => ( + + + + + + ))} + +
+ + + Published + + Dependents +
+ + + + {versionInfo.published} + + + + {versionInfo.dependents.toLocaleString()} + +
+
+
+ + {/* 分页功能区 */} +
+
+
+ {/* Previous 按钮 */} + + + {/* 当前页码 */} + {currentPage} + + {/* Next 按钮 */} + +
+
+
+
+
+
+ + ); +}; + +// 添加 getProviders 方法以适配新的项目结构 +VersionsPage.getProviders = (page: any, pageProps: any) => { + return ( + + {page} + + ); +}; + +export default VersionsPage; diff --git a/moon/apps/web/pages/[org]/rust/rust-ecosystem/ecosystem-cve/cve-info/[cve-id]/index.tsx b/moon/apps/web/pages/[org]/rust/rust-ecosystem/ecosystem-cve/cve-info/[cve-id]/index.tsx index 779162ca4..ced05db66 100644 --- a/moon/apps/web/pages/[org]/rust/rust-ecosystem/ecosystem-cve/cve-info/[cve-id]/index.tsx +++ b/moon/apps/web/pages/[org]/rust/rust-ecosystem/ecosystem-cve/cve-info/[cve-id]/index.tsx @@ -1,5 +1,5 @@ import Head from 'next/head' -// import Image from 'next/image' +import Image from 'next/image' import { AppLayout } from '@/components/Layout/AppLayout' import AuthAppProviders from '@/components/Providers/AuthAppProviders' // import { useState } from 'react' @@ -109,10 +109,12 @@ export default function CVEInfoPage() { )}
diff --git a/moon/apps/web/pages/[org]/rust/rust-ecosystem/search/index.tsx b/moon/apps/web/pages/[org]/rust/rust-ecosystem/search/index.tsx index 4ea0c6344..6387dcf41 100644 --- a/moon/apps/web/pages/[org]/rust/rust-ecosystem/search/index.tsx +++ b/moon/apps/web/pages/[org]/rust/rust-ecosystem/search/index.tsx @@ -123,15 +123,10 @@ export default function SearchResultsPage() { const [search, setSearch] = useState('') const [activeTab, setActiveTab] = useState('All') const [searchResults, setSearchResults] = useState([]) - const [loading, setLoading] = useState(false) const router = useRouter() const performSearch = useCallback(async (_query: string) => { - setLoading(true) - setTimeout(() => { - setSearchResults(mockSearchResults) - setLoading(false) - }, 500) + setSearchResults(mockSearchResults) }, []) useEffect(() => { @@ -165,23 +160,23 @@ export default function SearchResultsPage() { Search Results - Rust Ecosystem -
- {/* 搜索栏 */} -
-
+
+ {/* 搜索栏 */} +
+
@@ -211,36 +206,36 @@ export default function SearchResultsPage() { />
- {/* 分类标签和搜索结果区域 */} -
-
- {/* 分类标签 */} -
- {tabs.map((tab) => ( - - ))} -
+ {/* 分类标签和搜索结果区域 */} +
+
+ {/* 分类标签 */} +
+ {tabs.map((tab) => ( + + ))} +
- {/* 搜索结果列表容器 */} + {/* 搜索结果列表容器 */}
- {loading ? ( -
-
-
- ) : ( -
- {searchResults.map((item, index) => ( +
+ {searchResults.map((item, index) => (
{ e.currentTarget.style.background = '#EBEBEB' }} @@ -317,53 +307,52 @@ export default function SearchResultsPage() { e.currentTarget.style.background = '#ffffff00' }} > -
- - {item.type} - -

router.push({ - pathname: `/${router.query.org}/rust/rust-ecosystem/search/crate-info`, - query: { - crateName: item.name, - version: item.version || '1.0.0' - } - })} - > - {item.name} -

-

- {item.details} -

-
-
- ))} -
- )} +
+ + {item.type} + +

router.push({ + pathname: `/${router.query.org}/rust/rust-ecosystem/crate-info/${item.name}`, + query: { + crateName: item.name, + version: item.version || '1.0.0' + } + })} + > + {item.name} +

+

+ {item.details} +

+
+
+ ))} +
- {/* 分页 */} -
- - 1 - -
-
-
-
-
- - ) + {/* 分页 */} +
+ + 1 + +
+
+
+
+
+ + ) } SearchResultsPage.getProviders = (page: any, pageProps: any) => { diff --git a/moon/apps/web/public/rust/rust-ecosystem/crate-info/Frame.png b/moon/apps/web/public/rust/rust-ecosystem/crate-info/Frame.png new file mode 100644 index 0000000000000000000000000000000000000000..e1eb21ed11e863b8c974b6dfd4f0015bc5b3904b GIT binary patch literal 904 zcmV;319$w1P)K{n2uzH?{hsrklYW*%*NobTOx?wxzS@11+@Tp#`8=f42Y zGobaw6}BC(&bQN^3m|_o&OSA&JLBiwM0hTM72gE$cOuo|Cc<+8c6)e&D7}Y>Tt)m* zKrD8t!nPAtc2}aVP$=bFMT&1g1Z;jL@(KW1t?o=b`I(yjz&?7&OoPRMST%w@YpMkw zwM(1@0;Fm|dZ$I8H6SW@bwC((R#VsGA0@GvtwI&lY6+im5kn z7y-#-aAUUrTaID%L~A~oLDcH$G^ zF#^y!Cgj<3dmMirhnWWJmWy&+m6Cf;eMJQGWWz0(~ z5FlhCLZ!I|RT~!HOSlRULdyz|xmB&ql@fUcl#*nzSe^@5j9lh^0RRC1|5Gf<8~^|S e21!IgR09Bu`OHu{3){T_0000yO#?9 literal 0 HcmV?d00001 diff --git a/moon/apps/web/public/rust/rust-ecosystem/crate-info/compare/exchange.png b/moon/apps/web/public/rust/rust-ecosystem/crate-info/compare/exchange.png new file mode 100644 index 0000000000000000000000000000000000000000..e1eb21ed11e863b8c974b6dfd4f0015bc5b3904b GIT binary patch literal 904 zcmV;319$w1P)K{n2uzH?{hsrklYW*%*NobTOx?wxzS@11+@Tp#`8=f42Y zGobaw6}BC(&bQN^3m|_o&OSA&JLBiwM0hTM72gE$cOuo|Cc<+8c6)e&D7}Y>Tt)m* zKrD8t!nPAtc2}aVP$=bFMT&1g1Z;jL@(KW1t?o=b`I(yjz&?7&OoPRMST%w@YpMkw zwM(1@0;Fm|dZ$I8H6SW@bwC((R#VsGA0@GvtwI&lY6+im5kn z7y-#-aAUUrTaID%L~A~oLDcH$G^ zF#^y!Cgj<3dmMirhnWWJmWy&+m6Cf;eMJQGWWz0(~ z5FlhCLZ!I|RT~!HOSlRULdyz|xmB&ql@fUcl#*nzSe^@5j9lh^0RRC1|5Gf<8~^|S e21!IgR09Bu`OHu{3){T_0000yO#?9 literal 0 HcmV?d00001 diff --git a/moon/apps/web/public/rust/rust-ecosystem/crate-info/dependencies/Components - table.png b/moon/apps/web/public/rust/rust-ecosystem/crate-info/dependencies/Components - table.png new file mode 100644 index 0000000000000000000000000000000000000000..2bc01784a06f258c7e1f69894da92f011e3c65c6 GIT binary patch literal 253 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|wtKobhFJKo zoovYGm?+S)KQN<2NvoB)qp!F_J40lV$lMn$o{I}v3;C=H8Ct!ZmIp?>SADO#DR589 z-@86(>c+F{T|a2fHQ&r=zwYPj#^v3&&V4xfQFOs$;WdrBg}*fjZ78l0mH5BcsiJeW%C*C; zZ<+HG-v5v?_#}GBnrsc9q0uHPgg&ebxsLQ0Mn*n AV*mgE literal 0 HcmV?d00001 diff --git "a/moon/apps/web/public/rust/rust-ecosystem/crate-info/dependencies/crate-\350\257\246\346\203\205-dependencis.png" "b/moon/apps/web/public/rust/rust-ecosystem/crate-info/dependencies/crate-\350\257\246\346\203\205-dependencis.png" new file mode 100644 index 0000000000000000000000000000000000000000..b6559ca1f2f90f97b897282d6144a89d2c0e525c GIT binary patch literal 125552 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 P00000NkvXXu0mjf82E(r literal 0 HcmV?d00001