96b944ac8d
- 更新 ESLint 配置添加 react-hooks 规则 - 运行 Prettier 格式化所有前端文件 - 为 users、apps、audit、quotas 页面添加 Skeleton 加载骨架屏 - 修复动态组件渲染问题(CategoryIcon/TypeIcon 使用 React.createElement) - 修复 useRef 渲染期间访问问题(改用 useMemo) - 修复 effect 中 setState 同步调用问题 - 新增 global-not-found.tsx 404 页面 - 修复 knowledge 页面引号转义问题
38 lines
1.4 KiB
TypeScript
38 lines
1.4 KiB
TypeScript
"use client";
|
||
|
||
import { FileQuestion, Home, Search } from "lucide-react";
|
||
import { Button } from "@/components/ui/button";
|
||
import Link from "next/link";
|
||
|
||
export default function GlobalNotFound() {
|
||
return (
|
||
<html lang="zh-CN" suppressHydrationWarning>
|
||
<body>
|
||
<div className="flex min-h-screen flex-col items-center justify-center px-4">
|
||
<div className="flex flex-col items-center text-center max-w-md">
|
||
<div className="flex h-16 w-16 items-center justify-center rounded-full bg-muted mb-6">
|
||
<FileQuestion className="h-8 w-8 text-muted-foreground" />
|
||
</div>
|
||
<h2 className="text-xl font-semibold mb-2">页面未找到</h2>
|
||
<p className="text-sm text-muted-foreground mb-6">
|
||
您访问的页面不存在或已被移除,请检查链接是否正确。
|
||
</p>
|
||
<div className="flex gap-3">
|
||
<Link href="/store">
|
||
<Button className="gap-2">
|
||
<Home className="h-4 w-4" />
|
||
返回应用中心
|
||
</Button>
|
||
</Link>
|
||
<Button variant="outline" className="gap-2" onClick={() => window.history.back()}>
|
||
<Search className="h-4 w-4" />
|
||
返回上一页
|
||
</Button>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</body>
|
||
</html>
|
||
);
|
||
}
|