fix(m162-rebase): M161 合入后三处越线文件回到 400 行内

rebase 到 0241f79(M161)之后,两侧各加了几行,这三个文件同时越过 400 行硬线
(guards.yml::file-size 会红)。处理原则:**不删语义、只搬位置**。

- `app-iced/src/pages/content/parts.rs` 410 → **240**:把状态层(loading / empty / failed /
  offline / centered / status_body)搬到新文件 `pages/content/parts/status.rs`(200 行)。
  状态层本来就是「一屏只有一个」的独立东西,拆开后 parts.rs 只剩筛选条、列表、图标与排序文案。
- `presenter/src/dto/events.rs` 402 → **399**:`CoreEvent::ContentDetail` 的文档由 4 行压成 1 行
  (字段说明一个不少,`project` 是请求时选中的 id 这句保留)。
- `presenter/src/state.rs` 404 → **400**:把 `ContentFailed` / `ContentDetail` 两个事件的落地
  搬进 `state/content.rs`(`apply_content_failure` / `apply_content_detail`),state.rs 只剩
  一行投递——与既有的 `apply_content` 同一个形状。

`state/content.rs` 58 → 64(两个新方法),仍在 400 内。语义零改动:只是投递点换文件。
This commit is contained in:
AskaEth committed 2026-11-07 17:37:13 +08:00
1 parent 47ed270293
commit c319f9dbfd
5 files changed
+228 -186

No files matched your search

+4 -8
View File
@@ -296,15 +296,11 @@ impl AppState {
// M113: import/export
CoreEvent::Pack(event) => self.pack.apply(*event),
CoreEvent::ContentResults(results) => self.apply_content(*results),
CoreEvent::ContentFailed(failure) => {
self.content.pending = false;
self.content.failed = Some(*failure);
CoreEvent::ContentFailed(failure) => self.apply_content_failure(*failure),
// M162:详情/版本列表(判断逻辑在 `state/content.rs`,这里只有一行投递)
CoreEvent::ContentDetail { project, result } => {
self.apply_content_detail(&project, *result);
}
// M162:详情/版本列表(选中项才拉;迟到结果按项目 id 丢)
CoreEvent::ContentDetail { project, result } => match *result {
Ok(detail) => self.content.apply_detail(&project, detail),
Err(failure) => self.content.fail_detail(&project, failure),
},
}
}