refactor(editing-planner): 深化拆分,抽离全局配置与配音素材 Hook #990

Closed
xiaoxia wants to merge 3 commits from refactor/editing-planner-deepen into develop
Owner

变更内容

EditingPlanner 主文件拆分深化:

新增 Hook

  • useGlobalSettings (121行): 集中管理 9 个全局配置状态(标题/字幕/BGM/水印/片头片尾/画中画/滤镜/绿幕/贴纸/封面)
  • useVoiceMaterials (32行): 配音素材数据加载,queryKey 与 VoiceMaterialLibrary 共享缓存

缩减情况

  • 主文件:413 → 340 行(-18%)

验证

  • 纯重构,无逻辑变更

自动生成 PR

## 变更内容 EditingPlanner 主文件拆分深化: ### 新增 Hook - **useGlobalSettings** (121行): 集中管理 9 个全局配置状态(标题/字幕/BGM/水印/片头片尾/画中画/滤镜/绿幕/贴纸/封面) - **useVoiceMaterials** (32行): 配音素材数据加载,queryKey 与 VoiceMaterialLibrary 共享缓存 ### 缩减情况 - 主文件:413 → 340 行(-18%) ### 验证 - 纯重构,无逻辑变更 --- _自动生成 PR_
xiaoxia added 1 commit 2026-07-27 00:36:05 +08:00
refactor(editing-planner): 深化 EditingPlanner 拆分,抽离全局配置与配音素材 Hook
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 31s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 58s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m14s
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 - Migration (alembic) (pull_request) Successful in 1m20s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 36s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 1m17s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 2m52s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m8s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 2m6s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 58s
AI Code Review / AI Code Review (pull_request) Successful in 3m55s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 6m21s
CI/CD Pipeline / 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 / Frontend Unit Tests (pull_request) Failing after 25s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
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 / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
f8412d116a
- 抽 useGlobalSettings: 集中管理 9 个全局配置状态(标题/字幕/BGM/水印/片头片尾/画中画/滤镜/绿幕/贴纸/封面)
- 抽 useVoiceMaterials: 配音素材数据加载(queryKey 与 VoiceMaterialLibrary 共享缓存)
- 主文件 413→340 行 (-18%)

🚀 预览环境已部署

项目 详情
PR号 #990
预览链接 https://pr-990.preview.xiaoxiajianji.com
API环境 staging

💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。

🔄 每次提交新代码后预览环境会自动更新。

🗑️ PR 关闭或合并后,预览环境会自动清理。

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #990 | | 预览链接 | [https://pr-990.preview.xiaoxiajianji.com](https://pr-990.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
xiaoxia added 1 commit 2026-07-27 08:39:48 +08:00
style: prettier format fix
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 33s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m1s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 1m51s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 59s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 40s
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 Worker Image (pull_request) Successful in 51s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m57s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 1m1s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 47s
AI Code Review / AI Code Review (pull_request) Successful in 2m16s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 5m33s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 15m24s
CI/CD Pipeline / 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 / Frontend Unit Tests (pull_request) Failing after 26s
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
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 / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
7b1ce1eac6
auto-approve-bot approved these changes 2026-07-27 08:53:26 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-07-27 08:53:26 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
Collaborator

代码审查结果 - PR #990

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

💡 建议(3个可选)

  1. apps/web/src/pages/editing-planner/hooks/useGlobalSettings.ts 第61行:返回对象引用不稳定

    • 说明:Hook 每次渲染都会返回一个新的对象引用。如果该 Hook 的返回值被传递给使用了 React.memo 的子组件,会导致子组件失去记忆化效果,引起不必要的重渲染。
    • 建议:使用 useMemo 包裹返回对象,确保引用稳定。
  2. apps/web/src/pages/editing-planner/hooks/useGlobalSettings.ts 第27-60行:Setter 类型定义不一致

    • 说明:部分 Setter(如 setTitleConfigsetSubtitleSettings)支持函数式更新 | ((prev) => T),而另一部分(如 setWatermarkSettingssetPipSettings)仅支持直接传值。虽然当前调用方式(直接传递 setter)兼容,但 API 设计不一致会降低代码的可维护性和可预测性。
    • 建议:统一所有 Setter 的类型定义,均支持函数式更新,以符合 React useState 的标准行为。
  3. apps/web/src/pages/editing-planner/hooks/useVoiceMaterials.ts 第30行:未暴露 Error 状态

    • 说明:Hook 仅返回 loading 状态,未返回 error。当数据加载失败时,上层组件只能看到 loading: false 和空数据,无法感知错误原因并提示用户。
    • 建议:在返回对象中增加 error: unknown | null,以便上层组件处理异常情况(如展示错误提示)。

格式检查通过 | 逻辑审查需修改 | ⚠️ 建议关注性能


🤖 由 AI 代码审查机器人自动生成 | 2026-07-27 00:54:28 | 模型:

## 代码审查结果 - PR #990 ### ⚠️ 问题(0个需要修改) 无 ### 💡 建议(3个可选) 1. **apps/web/src/pages/editing-planner/hooks/useGlobalSettings.ts 第61行**:返回对象引用不稳定 - **说明**:Hook 每次渲染都会返回一个新的对象引用。如果该 Hook 的返回值被传递给使用了 `React.memo` 的子组件,会导致子组件失去记忆化效果,引起不必要的重渲染。 - **建议**:使用 `useMemo` 包裹返回对象,确保引用稳定。 2. **apps/web/src/pages/editing-planner/hooks/useGlobalSettings.ts 第27-60行**:Setter 类型定义不一致 - **说明**:部分 Setter(如 `setTitleConfig`、`setSubtitleSettings`)支持函数式更新 `| ((prev) => T)`,而另一部分(如 `setWatermarkSettings`、`setPipSettings`)仅支持直接传值。虽然当前调用方式(直接传递 setter)兼容,但 API 设计不一致会降低代码的可维护性和可预测性。 - **建议**:统一所有 Setter 的类型定义,均支持函数式更新,以符合 React `useState` 的标准行为。 3. **apps/web/src/pages/editing-planner/hooks/useVoiceMaterials.ts 第30行**:未暴露 Error 状态 - **说明**:Hook 仅返回 `loading` 状态,未返回 `error`。当数据加载失败时,上层组件只能看到 `loading: false` 和空数据,无法感知错误原因并提示用户。 - **建议**:在返回对象中增加 `error: unknown | null`,以便上层组件处理异常情况(如展示错误提示)。 --- ✅ 格式检查通过 | ✅ 逻辑审查需修改 | ⚠️ 建议关注性能 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-27 00:54:28 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
Collaborator

Auto merge skipped after multiple 405 errors: PR may have conflicts or unresolved checks. Please review manually. This is not a CI failure.

Auto merge skipped after multiple 405 errors: PR may have conflicts or unresolved checks. Please review manually. This is not a CI failure.
xiaoxia added 1 commit 2026-07-27 12:34:22 +08:00
Merge branch 'develop' into refactor/editing-planner-deepen
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 24s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 46s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m16s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 32s
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 Worker Image (pull_request) Successful in 23s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m36s
AI Code Review / AI Code Review (pull_request) Successful in 24s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 2m7s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m4s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m3s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 4m39s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 4m13s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Has been cancelled
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 27s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 3m24s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 7m41s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 25s
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 / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
56f9334707
xiaoxia closed this pull request 2026-07-27 15:26:17 +08:00

🗑️ 预览环境已清理

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

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

🗑️ **预览环境已清理** PR #990 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Some checks are pending
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 24s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 46s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m16s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 32s
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 Worker Image (pull_request) Successful in 23s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m36s
AI Code Review / AI Code Review (pull_request) Successful in 24s
CI/CD Pipeline / Validate - Code Quality (pull_request) Failing after 2m7s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m4s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m3s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 4m39s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 4m13s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Has been cancelled
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 27s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Integration Tests (pull_request) Successful in 3m24s
CI/CD Pipeline / Unit Tests (pull_request) Successful in 7m41s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 25s
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 / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped

Pull request closed

Sign in to join this conversation.