diff --git a/app/[nsfront]/[nsbehind]/[name]/[version]/layout.tsx b/app/[nsfront]/[nsbehind]/[name]/[version]/layout.tsx index 59768bf..d7bfa50 100644 --- a/app/[nsfront]/[nsbehind]/[name]/[version]/layout.tsx +++ b/app/[nsfront]/[nsbehind]/[name]/[version]/layout.tsx @@ -15,10 +15,11 @@ export default function Layout({ // 判断当前页面是否为SenseLeak页面 const isSenseLeakPage = pathname.includes('/senseleak'); const isMircheckerPage = pathname.includes('/mirchecker'); + const isUnsafecheckerPage = pathname.includes('/unsafechecker'); return (
{/* 仅在非SenseLeak页面显示导航栏 */} - {!isSenseLeakPage && !isMircheckerPage && ( + {!isSenseLeakPage && !isMircheckerPage && !isUnsafecheckerPage && ( { className="flex-shrink-0 rounded-[16.05px] border-[1.6px] border-[#333333]" />

- Mirchecker + Unsafechecker

- {basePath + '/mirchecker' || 'No results available'} + {basePath + '/unsafechecker' || 'No results available'}
diff --git a/app/[nsfront]/[nsbehind]/[name]/[version]/senseleak/page.tsx b/app/[nsfront]/[nsbehind]/[name]/[version]/senseleak/page.tsx index 1ba8b4f..6942800 100644 --- a/app/[nsfront]/[nsbehind]/[name]/[version]/senseleak/page.tsx +++ b/app/[nsfront]/[nsbehind]/[name]/[version]/senseleak/page.tsx @@ -226,9 +226,71 @@ const SenseLeakPage = () => {
{senseLeakData ? ( senseLeakData.exist ? ( -
-                                    {senseLeakData.res}
-                                
+ (() => { + interface SenseLeakItem { + file: string; + line_number: number; + line: string; + rule: string; + commit_message: string; + author: string; + email: string; + commit: string; + date: string; + } + let items: SenseLeakItem[] = []; + try { + items = JSON.parse(senseLeakData.res); + } catch { + return
SenseLeak 数据解析失败
; + } + if (!Array.isArray(items) || items.length === 0) { + return
无泄漏数据
; + } + return ( +
+ {items.map((item, idx) => ( +
+
+ File: + {item.file} +
+
+ Line Number: + {item.line_number} +
+
+ Offender: + {item.line} +
+
+ Rule: + {item.rule} +
+
+ Commit Message: + {item.commit_message} +
+
+ Author: + {item.author} ({item.email}) +
+
+ Commit Hash: + {item.commit} +
+
+ Date: + {item.date} +
+
+ ))} +
+ ); + })() ) : (
{ setVersionsList(versionsData.versions || []); // 获取 Mirchecker 数据 - const mircheckerResponse = await fetch(`/api/crates/${params.nsfront}/${params.nsbehind}/${params.name}/${params.version}/mirchecker`); + const mircheckerResponse = await fetch(`/api/crates/${params.nsfront}/${params.nsbehind}/${params.name}/${params.version}/unsafechecker`); if (!mircheckerResponse.ok) { throw new Error(`HTTP error! status: ${mircheckerResponse.status}`); } @@ -177,7 +177,7 @@ const MircheckerPage = () => { {filteredVersions.map((version, index) => (
{

- Mirchecker Analysis: {params.name}/{params.version} + Unsafechecker Analysis: {params.name}/{params.version}