refactor(assets): Phase 3 - extract business hooks #899

Merged
auto-approve-bot merged 1 commits from refactor/asset-library-phase3 into develop 2026-07-25 23:55:17 +08:00
Owner

概述

AssetLibrary Phase 3 — 抽离业务 Hook,跟 VoiceLibrary 的三阶段套路一致。

变更内容

AssetLibrary.tsx 中抽离出 5 个业务 Hook,主文件从 663 行精简至 307 行(减少 54%)。

新增 Hooks(apps/web/src/pages/assets/hooks/

Hook 职责 行数
useAssetsData 视频库列表查询、素材列表查询、筛选/搜索状态管理、过滤后数据计算 118
useLibraryManagement 视频库创建/删除、新建弹窗表单状态 106
useAssetUpload 素材上传逻辑、上传进度管理 65
useAssetSelection 选中态管理、单选/全选/取消全选 40
useAssetOperations 诊断、单删、批量删除/打标签/改分类/智能标记、所有弹窗 & 结果 Drawer 状态 301

重构原则

  • 保持功能完全等价,仅做代码移动和封装
  • 状态提升原则:纯业务逻辑放 Hook,UI 渲染相关留组件
  • 遵循 VoiceLibrary Phase 3 的拆分模式
  • 无 any / ts-ignore / eslint-disable

Smoke Test

更新 apps/web/src/test/pages/assets/smoke.test.tsx,导入所有新 Hook,确保 vitest related 模式能匹配到依赖。

验证

  • pnpm tsc --noEmit 全通过
  • prettier --check 全通过

关联

Phase 1 (PR#892): 抽 types/constants/utils,1279→1123行
Phase 2 (PR#897): 抽12个UI组件,1122→663行
Phase 3 (本PR): 抽业务Hook,663→307行

## 概述 AssetLibrary Phase 3 — 抽离业务 Hook,跟 VoiceLibrary 的三阶段套路一致。 ## 变更内容 从 `AssetLibrary.tsx` 中抽离出 5 个业务 Hook,主文件从 663 行精简至 307 行(减少 54%)。 ### 新增 Hooks(`apps/web/src/pages/assets/hooks/`) | Hook | 职责 | 行数 | |------|------|------| | `useAssetsData` | 视频库列表查询、素材列表查询、筛选/搜索状态管理、过滤后数据计算 | 118 | | `useLibraryManagement` | 视频库创建/删除、新建弹窗表单状态 | 106 | | `useAssetUpload` | 素材上传逻辑、上传进度管理 | 65 | | `useAssetSelection` | 选中态管理、单选/全选/取消全选 | 40 | | `useAssetOperations` | 诊断、单删、批量删除/打标签/改分类/智能标记、所有弹窗 & 结果 Drawer 状态 | 301 | ### 重构原则 - 保持功能完全等价,仅做代码移动和封装 - 状态提升原则:纯业务逻辑放 Hook,UI 渲染相关留组件 - 遵循 VoiceLibrary Phase 3 的拆分模式 - 无 any / ts-ignore / eslint-disable ### Smoke Test 更新 `apps/web/src/test/pages/assets/smoke.test.tsx`,导入所有新 Hook,确保 vitest related 模式能匹配到依赖。 ## 验证 - ✅ `pnpm tsc --noEmit` 全通过 - ✅ `prettier --check` 全通过 ## 关联 Phase 1 (PR#892): 抽 types/constants/utils,1279→1123行 Phase 2 (PR#897): 抽12个UI组件,1122→663行 Phase 3 (本PR): 抽业务Hook,663→307行
auto-approve-bot approved these changes 2026-07-25 21:57:52 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

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

CI全绿,自动审批通过。

CI全绿,自动审批通过。
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-25 23:48:34 +08:00
refactor(assets): Phase 3 - extract business hooks
AI Code Review / AI Code Review (pull_request) Failing after 0s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 25s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 37s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m12s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m13s
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 33s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 54s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 30s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m49s
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 22s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 4m4s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 5m0s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 3m25s
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 / Integration Tests (pull_request) Has been skipped
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 27s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Failing after 22s
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 / Canary Release to Production (pull_request) Has been cancelled
b8e1ba2aa9
Extract 5 business hooks from AssetLibrary:
- useAssetsData: library/asset queries + filter/search state
- useLibraryManagement: create/delete library + modal form state
- useAssetUpload: upload logic + progress tracking
- useAssetSelection: selection state + select/deselect operations
- useAssetOperations: diagnose, single/batch delete, batch tag/classify/mark + all modal state

Main component reduced from 663 → 307 lines (54% reduction).
Follows the same pattern as VoiceLibrary Phase 3.
xiaoxia force-pushed refactor/asset-library-phase3 from b77a92b6ca to b8e1ba2aa9 2026-07-25 23:48:34 +08:00 Compare
auto-approve-bot merged commit 6437b96e54 into develop 2026-07-25 23:55:17 +08:00
auto-approve-bot deleted branch refactor/asset-library-phase3 2026-07-25 23:55:17 +08:00

🗑️ 预览环境已清理

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

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

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