按照 TDD 规范完成三个核心功能的接口对接: ## 新增功能 ### 1. 删除作品功能 (app/generationRecord.tsx) - 新增 use-template-generation-actions.ts hook - 支持单个删除和批量删除作品 - 删除确认对话框 - 删除成功后自动刷新列表 - 完整的错误处理和加载状态 ### 2. 作品搜索功能 (app/searchWorksResults.tsx) - 新增 use-works-search.ts hook - 替换模拟数据为真实 SDK 接口 - 支持关键词搜索和分类筛选 - 支持分页加载 - 完整的加载、错误、空结果状态处理 ### 3. 修改密码功能 (app/changePassword.tsx) - 新增 use-change-password.ts hook - 使用 Better Auth 的 changePassword API - 客户端表单验证(密码长度、确认密码匹配等) - 成功后自动返回并提示 ## 技术实现 - 严格遵循 TDD 规范(先写测试,后写实现) - 新增 3 个 hooks 和对应的单元测试 - 更新中英文翻译文件 - 更新 jest.setup.js 添加必要的 mock ## 文档 - 新增 api_integration_report.md - API 对接分析报告 - 新增 api_integration_development_plan.md - 开发计划和完成汇总 Co-Authored-By: Claude <noreply@anthropic.com>
2.3 KiB
2.3 KiB
Findings & Decisions
Requirements
根据用户需求,需要实现以下功能:
- 单个删除生成记录
- 删除成功后刷新列表
- 删除失败显示错误提示
- 删除操作有确认对话框(已有)
- 单元测试覆盖率 > 80%
- 严格遵循 TDD 规范
Research Findings
现有代码分析
-
页面组件 (
app/generationRecord.tsx):- 已有删除按钮和删除确认对话框
handleDelete函数目前只是打印日志- 已使用
useTemplateGenerationshook - 已有删除确认组件
DeleteConfirmDialog
-
现有 Hooks (
hooks/use-template-generations.ts):- 使用
root.get(TemplateGenerationController)获取控制器 - 使用
handleError处理错误 - 提供了
refetch方法用于刷新列表 - 模式:自定义状态管理 + useCallback
- 使用
-
参考实现 (
hooks/use-template-actions.ts):- 类似的模式:loading, error 状态
- 使用
handleError包装 API 调用 - 返回函数和状态
-
SDK 控制器 (
node_modules/@repo/sdk/src/controllers/template-generation.controller.ts):delete(body: { id: string }): Promise<{ message: string }>batchDelete(body: { ids: string[] }): Promise<{ message: string }>- 都需要
@RequirePermissions({ template: ['run'] })
-
测试配置:
- 使用 Jest 作为测试框架
- 已安装
@testing-library/react-native - 测试脚本:
npm test
技术决策
- 不使用
@tanstack/react-query(项目未安装) - 遵循现有代码模式(自定义 hooks)
- 使用
handleError统一错误处理
Technical Decisions
| Decision | Rationale |
|---|---|
| 创建独立的 actions hook | 分离关注点,遵循单一职责原则 |
| 使用现有 handleError 模式 | 保持代码一致性 |
| 导出 DeleteGeneration 类型 | 便于类型推断 |
| 测试使用 @testing-library/react-hooks | React hooks 测试标准方式 |
Issues Encountered
| Issue | Resolution |
|---|---|
Resources
- 项目测试命令:
npm test/npm test:watch/npm test:coverage - SDK 控制器路径:
node_modules/@repo/sdk/src/controllers/template-generation.controller.ts - 现有 hooks 模式:
hooks/use-template-actions.ts