- 多页路由:首页 / 功能 / 更新日志 / 下载(HashRouter,适配 GitHub Pages) - 中英文切换(zh/en 双语文案 + localStorage 记忆) - Kimi 品牌配色(中性灰 + 蓝)+ 科技风(网格底纹 / 辉光按钮 / 渐变强调词) - 更新日志页:运行时同步 GitHub Releases,localStorage 缓存 1h,网络失败回退内置列表 - 功能页 8 张截图卡片;下载页含自动更新说明 - 修复资源路径 404(asset() + %BASE_URL%);自托管 Inter/Fira Code 字体
38 lines
1.2 KiB
TypeScript
38 lines
1.2 KiB
TypeScript
import SectionShell from "../components/SectionShell";
|
|
import { Database, LinkSimple, BookOpen, type Icon } from "@phosphor-icons/react";
|
|
import { useLang } from "../i18n";
|
|
|
|
const icons: Record<string, Icon> = {
|
|
local: Database,
|
|
direct: LinkSimple,
|
|
open: BookOpen,
|
|
};
|
|
|
|
export default function Privacy() {
|
|
const { t } = useLang();
|
|
return (
|
|
<SectionShell
|
|
id="privacy"
|
|
title={t.privacy.title}
|
|
subtitle={t.privacy.subtitle}
|
|
>
|
|
<div className="grid grid-cols-1 gap-4 md:grid-cols-3">
|
|
{t.privacy.items.map((it) => {
|
|
const Icon = icons[it.id] ?? Database;
|
|
return (
|
|
<div key={it.id} className="card">
|
|
<div className="mb-3 flex h-10 w-10 items-center justify-center rounded-xl border border-primary/25 bg-primary/10 text-primary">
|
|
<Icon className="h-5 w-5" weight="duotone" />
|
|
</div>
|
|
<h3 className="mb-2 text-lg font-semibold">{it.title}</h3>
|
|
<p className="text-sm leading-relaxed text-muted-foreground">
|
|
{it.desc}
|
|
</p>
|
|
</div>
|
|
);
|
|
})}
|
|
</div>
|
|
</SectionShell>
|
|
);
|
|
}
|