feat(ts): 实现 Polaris 可交互首页
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,25 @@
|
||||
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 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)
|
||||
}
|
||||
Reference in New Issue
Block a user