refactor: GeneratePage Phase 1 — 抽离常量/类型/UI组件(3036→2682行) #796

Merged
xiaoxia merged 6 commits from refactor/generate-page-phase1 into develop 2026-07-24 11:01:42 +08:00
Owner

背景

GeneratePage.tsx 巨无霸拆分 Phase 1,纯结构重构,业务逻辑零改动。

改动

新增 5 个文件

  • pages/generate/constants.ts — 12组常量(STEPS/TITLE_PRESETS/AI标题模板/智能匹配理由/渐变色/图标等)
  • pages/generate/types.ts — TitleSettings/SmartMatchResult/AiTitleResult 等类型定义
  • pages/generate/components/GenerateHeader.tsx — 页头组件
  • pages/generate/components/GenerateStepsBar.tsx — 步骤条组件
  • pages/generate/components/GenerateResultPanel.tsx — 右侧生成结果面板

主文件瘦身

GeneratePage.tsx:3036 行 → 2682 行(-354行)

验证

  • 纯结构重构,无业务逻辑变更
  • 所有常量/类型/UI完全按原代码抽取,行为一致
  • Phase 2 将继续拆分 7 个 Step 为独立组件
## 背景 GeneratePage.tsx 巨无霸拆分 Phase 1,纯结构重构,业务逻辑零改动。 ## 改动 ### 新增 5 个文件 - `pages/generate/constants.ts` — 12组常量(STEPS/TITLE_PRESETS/AI标题模板/智能匹配理由/渐变色/图标等) - `pages/generate/types.ts` — TitleSettings/SmartMatchResult/AiTitleResult 等类型定义 - `pages/generate/components/GenerateHeader.tsx` — 页头组件 - `pages/generate/components/GenerateStepsBar.tsx` — 步骤条组件 - `pages/generate/components/GenerateResultPanel.tsx` — 右侧生成结果面板 ### 主文件瘦身 GeneratePage.tsx:3036 行 → **2682 行**(-354行) ## 验证 - 纯结构重构,无业务逻辑变更 - 所有常量/类型/UI完全按原代码抽取,行为一致 - Phase 2 将继续拆分 7 个 Step 为独立组件
xiaoxia added 2 commits 2026-07-24 00:16:48 +08:00
docs(#780): 补齐.env.example缺失的30+配置项
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 5s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m12s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m3s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 33s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 26s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m42s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 3m10s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 12s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m4s
AI Code Review / AI Code Review (pull_request) Successful in 3m48s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 8m36s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 6m48s
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m45s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 37s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 48m59s
9a852a4a12
梳理所有配置文件(shared/api/worker),完整列出全部环境变量:
- 新增:数据库连接池配置(pool_size/max_overflow/timeout/recycle)
- 新增:Celery broker/backend 配置
- 新增:Worker 并发/子进程数 配置
- 新增:OSS 直传大小/过期时间 配置
- 新增:豆包大模型(Doubao)配置
- 新增:CosyVoice 克隆模型配置
- 新增:渲染引擎选择(RENDER_ENGINE)
- 新增:邮件投递开关 / SMTP TLS / API 端口等零散配置
- 每个配置补充用途注释和默认值说明
- 顶部增加配置读取优先级说明
refactor: GeneratePage Phase 1 - 抽取常量/类型/UI组件
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 18s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 58s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 18s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 53s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 3m51s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 2m27s
CI/CD Pipeline / PR Build Web Image (pull_request) Failing after 2m25s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 33s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m16s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m35s
AI Code Review / AI Code Review (pull_request) Successful in 4m16s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 8m17s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 30s
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Successful in 5m26s
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m18s
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been cancelled
e9d4885f7a
将 3036 行的 GeneratePage.tsx 按 Phase 1 计划拆分:

新增文件:
- constants.ts — 12组常量(STEPS/TITLE_PRESETS/AI标题模板/智能匹配理由/渐变色/图标等)
- types.ts — TitleSettings/SmartMatchResult/AiTitleResult 等类型定义
- components/GenerateHeader.tsx — 页头组件
- components/GenerateStepsBar.tsx — 步骤条组件
- components/GenerateResultPanel.tsx — 右侧生成结果面板

GeneratePage.tsx 从 3036 行 → 2682 行(-354行)
纯结构重构,业务逻辑零改动
xiaoxia added 1 commit 2026-07-24 01:09:34 +08:00
fix: remove unused type imports to pass ESLint
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 14s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 47s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m9s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m1s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m59s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 3m34s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 52s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 20s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 5m19s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m11s
AI Code Review / AI Code Review (pull_request) Successful in 4m58s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 9m36s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 53s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m42s
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Successful in 5m57s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
952f1a5e99
xiaoxia added 1 commit 2026-07-24 09:42:29 +08:00
style: format with prettier
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 31s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m12s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m0s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 39s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m44s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 3m38s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 34s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m26s
AI Code Review / AI Code Review (pull_request) Successful in 4m31s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Failing after 21s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 4m15s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 6m21s
CI/CD Pipeline / Unit Tests (pull_request) Has been cancelled
CI/CD Pipeline / Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been cancelled
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been cancelled
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been cancelled
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been cancelled
5f4ab624ab
xiaoxia added 1 commit 2026-07-24 09:53:40 +08:00
test: add GenerateHeader component smoke test
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 27s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 43s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m25s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m31s
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m58s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 3m24s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m0s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 24s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 4m6s
AI Code Review / AI Code Review (pull_request) Successful in 4m48s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 8m7s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 33s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 3m3s
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Successful in 6m28s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 14m25s
39470676a5
xiaoxia added 1 commit 2026-07-24 10:10:17 +08:00
style: fix GenerateHeader test prettier formatting
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 17s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 53s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 59s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 41s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 3m23s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 2m0s
AI Code Review / AI Code Review (pull_request) Successful in 4m20s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 17s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m35s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 6m22s
CI/CD Pipeline / Build Production API Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 32s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 2m31s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 12m44s
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Staging API Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / ACR Image Cleanup (pull_request) Has been skipped
CI/CD Pipeline / Unit Tests (pull_request) Successful in 5m59s
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 51m10s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 16s
ce8084982a
Collaborator

代码审查结果 - PR #796

⚠️ 问题(0个需要修改)

💡 建议(2个可选)

  1. apps/web/src/pages/generate/components/GenerateResultPanel.tsx 第7行:建议调整工具函数的导入路径

    • formatDuration 是一个通用的格式化工具函数,从 @/api/voice-clone 导入不符合模块职责划分原则(API 模块应仅负责数据请求)。建议将其移动到 @/utils@/lib/utils 等公共工具目录中导入,以避免潜在的循环依赖风险并提高代码可维护性。
  2. apps/web/src/pages/generate/components/GenerateResultPanel.tsx 第153行:简化类型判断逻辑

    • 代码中使用了 typeof generateError === "string" ? generateError : "请重试"。根据接口定义 generateError: string | null,TypeScript 已经能够进行类型收窄,该 typeof 检查是冗余的。建议简化为 {generateError || "请重试"} 以提高代码简洁性。

格式检查通过 | 逻辑审查需修改 | 性能


🤖 由 AI 代码审查机器人自动生成 | 2026-07-24 02:21:53 | 模型:

## 代码审查结果 - PR #796 ### ⚠️ 问题(0个需要修改) 无 ### 💡 建议(2个可选) 1. **apps/web/src/pages/generate/components/GenerateResultPanel.tsx 第7行**:建议调整工具函数的导入路径 - `formatDuration` 是一个通用的格式化工具函数,从 `@/api/voice-clone` 导入不符合模块职责划分原则(API 模块应仅负责数据请求)。建议将其移动到 `@/utils` 或 `@/lib/utils` 等公共工具目录中导入,以避免潜在的循环依赖风险并提高代码可维护性。 2. **apps/web/src/pages/generate/components/GenerateResultPanel.tsx 第153行**:简化类型判断逻辑 - 代码中使用了 `typeof generateError === "string" ? generateError : "请重试"`。根据接口定义 `generateError: string | null`,TypeScript 已经能够进行类型收窄,该 `typeof` 检查是冗余的。建议简化为 `{generateError || "请重试"}` 以提高代码简洁性。 --- ✅ 格式检查通过 | ✅ 逻辑审查需修改 | ✅ 性能 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-24 02:21:53 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
xiaoxia merged commit da53b6d175 into develop 2026-07-24 11:01:42 +08:00

🗑️ 预览环境已清理

PR #796 已关闭或合并,对应的预览环境已被清理。

如有需要,可以重新打开 PR 来重新生成预览环境。

🗑️ **预览环境已清理** PR #796 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Sign in to join this conversation.