feat(presenter): adopt 的指令/事件/任务接线 + install 那句假话变真话(M223)

- AppCommand::Adopt(Box<AdoptCommand>)、CoreEvent::Adopt(Box<AdoptEvent>)、
  HostTask::Adopt { event, epoch }:三条穷尽枚举各加一条变体(代次独立于安装与 pack);
- dispatch.rs 一条分支、handle.rs 一条分支、state.rs 的 adopt 字段与一条 apply 分支;
- host/install.rs 的「还没有接入安装管线…请先在实例页导入已有版本」改成指向真入口:
  那里以前是一句假话(实例页根本没有导入动作),现在向导落地了,它才成立。
This commit is contained in:
AskaEth committed 2026-11-10 19:37:41 +08:00
1 parent 26e4fbb91d
commit 5a59cb33b2
6 files changed
+30 -1

No files matched your search

+6
View File
@@ -8,6 +8,7 @@ use crate::dialogs::DialogQueue;
use crate::dto::{
// 主线(M105 的 `LoaderKind` / M113 的 `PackState`)与 M114 的 `AuthlibLoginView` 并集。
AccountView,
AdoptState,
AppEvent,
AuthlibLoginView,
CoreEvent,
@@ -133,6 +134,8 @@ pub struct AppState {
pub content: ContentState,
/// 整合包导入/导出:进度 / 结果 / 探测诊断 / 导出预检(M113)
pub pack: PackState,
/// 导入已有版本(M223):扫描 / 预检 / 失败 / 完成(**只装事件态**,表单在页面本地态)
pub adopt: AdoptState,
}
impl Default for AppState {
@@ -178,6 +181,7 @@ impl AppState {
live_session: None,
content: ContentState::default(),
pack: PackState::default(),
adopt: AdoptState::default(),
}
}
@@ -296,6 +300,8 @@ impl AppState {
CoreEvent::Update(view) => self.update = *view,
// M113: import/export
CoreEvent::Pack(event) => self.pack.apply(*event),
// M223: 导入已有版本(唯一写入点:`AdoptState::apply`)
CoreEvent::Adopt(event) => self.adopt.apply(*event),
CoreEvent::ContentResults(results) => self.apply_content(*results),
CoreEvent::ContentFailed(failure) => self.apply_content_failure(*failure),
// M162:详情/版本列表(判断逻辑在 `state/content.rs`,这里只有一行投递)