chore: 前端代码优化 - ESLint 配置、Prettier 格式化、加载骨架屏、React 组件规范

- 更新 ESLint 配置添加 react-hooks 规则
- 运行 Prettier 格式化所有前端文件
- 为 users、apps、audit、quotas 页面添加 Skeleton 加载骨架屏
- 修复动态组件渲染问题(CategoryIcon/TypeIcon 使用 React.createElement)
- 修复 useRef 渲染期间访问问题(改用 useMemo)
- 修复 effect 中 setState 同步调用问题
- 新增 global-not-found.tsx 404 页面
- 修复 knowledge 页面引号转义问题
This commit is contained in:
selfrelease
2026-06-23 14:43:04 +08:00
parent 6ca1c27162
commit 96b944ac8d
68 changed files with 2182 additions and 1969 deletions
+6 -2
View File
@@ -128,10 +128,14 @@ export default function ReviewsPage() {
rows={4}
/>
<div className="flex justify-end gap-2">
<Button variant="outline" onClick={() => setRejectDialog(null)}></Button>
<Button variant="outline" onClick={() => setRejectDialog(null)}>
</Button>
<Button
variant="destructive"
onClick={() => rejectDialog && reject.mutate({ id: rejectDialog, comment: rejectComment })}
onClick={() =>
rejectDialog && reject.mutate({ id: rejectDialog, comment: rejectComment })
}
disabled={!rejectComment.trim() || reject.isPending}
>