概述
MyClaw 项目的 Phase 6 - React 管理界面开发已完成。本阶段实现了完整的桌面应用前端,包括 8 个功能页面、布局组件、API 服务层和状态管理系统。
技术栈
- React 19 - 最新版本的 React,支持并发特性
- Vite 6 - 极速构建工具
- React Router 7 - 路由管理
- TanStack Query - 数据请求和缓存
- Zustand - 轻量级状态管理
- Lucide React - 图标库
- react-markdown - Markdown 渲染
架构设计
目录结构
1 | apps/desktop/src/renderer/ |
核心设计原则
1. 组件化设计
每个页面都是独立的功能模块,包含自己的状态和逻辑:
1 | // 页面组件结构 |
2. 状态管理策略
使用 Zustand 进行轻量级状态管理:
1 | // stores/app.ts |
3. API 服务层封装
统一的 API 调用封装,支持类型推断:
1 | // services/api.ts |
4. WebSocket 实时通信
支持自动重连的 WebSocket 服务:
1 | // services/websocket.ts |
页面功能
1. Dashboard(概览)
- 系统状态显示(版本、平台、运行时间)
- Gateway 控制面板(启动/停止/重启)
- 资源使用监控(CPU/内存)
- 快捷入口链接
2. Chat(聊天)
- 多会话管理
- 消息列表展示
- Markdown 渲染
- 打字动画指示器
- 新建/切换会话
3. Rules(规则管理)
- 规则列表展示
- 搜索过滤
- 创建/编辑/删除规则
- 启用/禁用切换
- 优先级和标签管理
4. Providers(LLM 提供商)
- 7 种提供商支持(OpenAI、Anthropic、Gemini 等)
- API Key 配置
- 模型选择
- 优先级设置
- 启用/禁用控制
5. Channels(消息通道)
- 6 种通道支持(Telegram、Discord、WhatsApp 等)
- 通道配置管理
- 状态监控
6. Permissions(权限控制)
- 文件路径权限配置
- 访问级别管理(读/写/完全/拒绝)
- 安全提示
7. Stats(使用统计)
- 消息数量统计
- Token 使用统计
- 按提供商分布
- 按日期趋势
8. Settings(设置)
- 主题切换(亮色/暗色)
- 自动更新设置
- 日志级别配置
- 关于信息
CSS 设计系统
CSS 变量
1 | :root { |
响应式设计
1 | @media (max-width: 900px) { |
与 Electron 集成
Preload 脚本
通过 window.electronAPI 暴露 Electron 能力:
1 | interface ElectronAPI { |
主进程通信
1 | // App.tsx |
构建与打包
开发模式
1 | pnpm dev # electron-vite dev |
生产构建
1 | pnpm build # 构建所有平台 |
构建产物
1 | out/ |
测试
所有 302 个测试通过 ✅
1 | Tasks: 26 successful, 26 total |
下一步
Phase 7: 消息通道集成
- Telegram Bot 集成
- Discord Bot 集成
- WhatsApp 集成
- Signal 集成
- 飞书集成
总结
Phase 6 成功完成了完整的 React 管理界面,包括:
- ✅ 8 个功能页面
- ✅ 完整的 API 服务层
- ✅ WebSocket 实时通信
- ✅ Zustand 状态管理
- ✅ 响应式 CSS 设计系统
- ✅ Electron 集成
项目进度:Day 9 / 26,已完成 6 个阶段。
本文是 MyClaw 开发日记系列的第 9 篇。