拆分图片画布生成对象注册表

新增画布生成对象 dialog 管理 hook
补充生成对象注册表 hook 单测
调整 Lovart 式画布背景色板弹层
更新图片画布前端拆分跟踪文档
This commit is contained in:
2026-06-17 05:29:04 +08:00
parent 9f45641ccd
commit 37a738e271
8 changed files with 595 additions and 220 deletions

View File

@@ -85,6 +85,13 @@
- 该 hook 以“项目持久化协调器”整体抽出,避免把加载、保存和资源创建拆成多个小 hook 后打散 `projectIdRef``pendingProjectResourceLayersRef``isProjectReady``saveTimerRef` 的时序约束。
- 主视图继续负责项目重命名 UI、素材库管理、上传流程和用户动作触发新增图层仍通过 `appendCanvasLayersWithResources` 先写本地图层快照,再创建 project resource 并保存带真实 `resourceId` 的 layout。
## 第九阶段模块
- `useCanvasGenerationDialogs.ts`
- 承载画布生成 dialog 注册表active / inactive dialog 状态、id 分配、归档、激活、按 id 更新 / 删除、按关联图层清理,以及生成中异步回写时获取最新占位框。
- 该 hook 只处理 `generate/spec/character/icon` 这类画布生成对象,继续保留 `GenerateDialogState.mode === 'edit'` 的直接 `setGenerateDialog` 能力用于低风险迁移真实生成请求、quick edit、角色动画、结果落图和资源持久化仍留在主视图。
- 主视图通过 `onActivate` 处理激活生成对象后的清空图层选择和关闭图片菜单等跨状态副作用,避免 dialog hook 反向依赖画布图层状态。
## 后续阶段
- 生成状态机模型:等生成对象归档、占位框拖拽、生成完成回写、失败恢复和 undo / redo 规则进一步稳定后,再从主视图抽出深层状态模型。