新增七个预生成分类路由、工具卡片网格与空状态。启用侧栏分类导航和当前分类选中态,修复 Windows 静态导出 RSC 路径并补充产物验证,保持静态导出与安全外链约束。 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
33 lines
898 B
TypeScript
33 lines
898 B
TypeScript
import linksData from "@/data/links.json"
|
|
import type { NavLink } from "@/types/navigation"
|
|
|
|
const links = linksData satisfies NavLink[]
|
|
|
|
function cloneLink(link: NavLink): NavLink {
|
|
return { ...link, keywords: [...link.keywords] }
|
|
}
|
|
|
|
export function getLinks(): NavLink[] {
|
|
return links.map(cloneLink)
|
|
}
|
|
|
|
export function getLinksByCategory(categoryId: string): NavLink[] {
|
|
return links
|
|
.filter((link) => link.categoryId === categoryId)
|
|
.map(cloneLink)
|
|
.sort((a, b) => a.sort - b.sort)
|
|
}
|
|
|
|
export function getPinnedLinks(limit = 8): NavLink[] {
|
|
// 首页顺序必须独立于分类内 sort,否则 Vercel 与 Figma 无法同时满足两处设计。
|
|
return links
|
|
.filter((link) => link.pinned)
|
|
.map(cloneLink)
|
|
.sort(
|
|
(a, b) =>
|
|
(a.pinnedSort ?? Number.MAX_SAFE_INTEGER) -
|
|
(b.pinnedSort ?? Number.MAX_SAFE_INTEGER),
|
|
)
|
|
.slice(0, limit)
|
|
}
|