Files
workspace/code/app/DESIGN_FOLLOWUPS.md
T
2026-06-26 17:35:29 +08:00

37 lines
2.0 KiB
Markdown

# Design Follow-ups
通用数据接口的安全性暂不纳入本清单。
## 已处理
- 聊天 DTO 已收口到 `app-rn/src/types/chat.ts`,统一通过 `normalizeChatMessage()` 兼容 `type` / `msg_type`。
- WebSocket 在线用户、实时消息、未读数、连接状态已收口到 `app-rn/src/store/chat.ts`。
- `app-rn/src/hooks/useLoading.ts` 已提供 `runWithLoading` 和 `useListLoading`,用于统一保存加载、列表初载、刷新和加载更多。
## API 与领域边界
- `src/request/api.ts` 仍主要返回 `any`,页面直接感知表名、字段名和查询条件。保持通用接口优先,只有明显跨页面复用的领域能力才考虑抽象。
## 状态与缓存
- `finance` store 只有分类缓存,账单列表仍由页面自行加载,后续可以形成 finance domain store。
- `favorite` store 管理远端读写、`loadingIds` 和本地 `Set`,职责偏重。可以下沉远端操作到 service,store 只保留状态。
## UI 与交互一致性
- 后续新增保存类操作应优先使用 `useLoading().runWithLoading()`,页面底部保留 `<LoadingOverlay visible={isLoading} />`。
- 列表初载、刷新、加载更多应优先使用 `useListLoading()`。
- 部分页面中文显示/注释存在编码异常,应统一文件编码并恢复可读文案。
- `AppLayout` 和 `ModuleLayout` 仍有大量重复,可继续抽一个共享 `ShellLayout`。
## 类型与工程质量
- 项目当前 `tsc --noEmit` 有既有错误,包括 `finance/analysis` variant、iconfont SvgProps、theme hook 缺失等。
- iconfont 生成代码与当前 React Native SVG 类型不匹配,建议集中修生成模板或 wrapper 类型。
- `PROJECT_CONTEXT.md` 当前缺失,应确认是否恢复或从文档引用中移除。
## 数据一致性
- `family_id` 作用域已经通过 `loadDataApi` / `loadDataPageApi` 的 `scope_family` 选项收口,仍有页面直接手写条件,需要逐步替换。
- 创建/加入家庭、收藏 app、记账等 feed 记录规则需要逐项核对,确保所有触发场景一致执行。