Skip to content

refactor(settings): Phase B1 PR1 — 抽出 types.ts + helpers.ts#10

Open
oneMuggle wants to merge 1 commit into
mainfrom
feat/split-image-gen-settings-pr1
Open

refactor(settings): Phase B1 PR1 — 抽出 types.ts + helpers.ts#10
oneMuggle wants to merge 1 commit into
mainfrom
feat/split-image-gen-settings-pr1

Conversation

@oneMuggle

Copy link
Copy Markdown
Owner

Phase B1 PR1:公共层抽出

v3 路线图 Phase B1 拆分 ImageGenerationSettings.tsx(2205 行)。

本 PR 仅做公共层抽出,不动 UI

变更

文件 行数 状态
src/components/features/Settings/Image/types.ts 75 新增
src/components/features/Settings/Image/helpers.ts 206 新增
src/components/features/Settings/Image/ImageGenerationSettings.tsx 2205 → 2059 改 import,删 169 行声明
docs/plans/2026-06-16_b1-image-gen-settings-split.md 计划文档

净变化:+445 / -169(新增 281 行有效代码,移除 169 行重复声明)

抽出的内容

types.ts

  • <Props><生图模型字段><设置分页><画师串适用页签><词组预设页签><TestResultModal><WorkflowItem>
  • 选项联合类型:<页面选项><后端选项><接口路径模式选项_><预设接口路径选项_><NovelAI采样器选项_><NovelAI噪点表选项_>

helpers.ts

  • 8 个纯函数:初始化模型列表初始化加载状态获取后端设置标签图片后端需要模型选择/鉴权生成预设ID创建文生图配置模板创建空画师串预设创建空词组预设
  • 9 个 UI 选项常量:基础页面选项文生图后端选项接口路径模式选项预设路径选项映射NovelAI模型建议/采样器/噪点表选项
  • 样式与提示常量:ComfyUI工作流占位提示页面容器样式卡片样式标签样式

验证

  • tsc -p tsconfig.app.json:重构文件 0 错误
  • npm run test:unit:122 files / 2565 tests passed / 2 skipped
  • SettingsPanel.tsx 消费 API 不变(仍 React.lazy(() => import('./Image/ImageGenerationSettings'))
  • 公共 API(ImageGenerationSettings: React.FC<Props>)签名不变

后续 PR 计划

  • PR2:抽 useImageGenState.tsuseImageGenHandlers.ts
  • PR3:抽 panels/BasicPage.tsxpanels/PresetsPage.tsx
  • PR4:抽剩余 4 个 panel(Provider/Transformer/Automation/Player),主文件降至 < 800 行

风险

LOW:纯 import 重构,运行时行为零变化。

🤖 Generated with Claude Code

按 v3 路线图 Phase B1 拆分 `ImageGenerationSettings.tsx`(2205 行)。

PR1 仅做公共层抽出,不动 UI:

- 新增 `types.ts`(75 行):`<Props>`、`<生图模型字段>`、`<设置分页>`、`<画师串适用页签>`、`<词组预设页签>`、`<TestResultModal>`、`<WorkflowItem>`、选项联合类型
- 新增 `helpers.ts`(206 行):8 个纯函数(`初始化模型列表`、`获取后端设置标签`、`图片后端需要*`、`生成预设ID`、`创建文生图配置模板`、`创建空画师串预设`、`创建空词组预设`)+ 9 个 UI 选项常量
- 主文件 2205 → 2059 行(净减 146 行公共声明)
- 仅改 import,不改运行时行为

验证:
- tsc -p tsconfig.app.json: 重构文件 0 错误
- vitest: 122 files / 2565 tests passed

后续:PR2 抽 state/handlers(useImageGenState/useImageGenHandlers),PR3~4 拆 6 个 panel。

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant