refactor(assets): Phase 2 - extract UI components #897

Closed
xiaoxia wants to merge 2 commits from refactor/asset-library-phase2 into develop
Owner

概述

AssetLibrary Phase 2 — UI 组件抽离。将 1122 行的 AssetLibrary.tsx 中的 UI 组件抽离为 12 个独立组件文件。

抽离的组件

组件 行数 说明
AssetCard 128 素材卡片(网格视图)
AssetSkeleton 36 StatusPill + SkeletonCard 小组件
LibrarySidebar 70 左侧素材库列表
AssetFilterBar 65 筛选栏(搜索/类型/时间)
BatchOperationBar 73 批量操作栏
CreateLibraryModal 64 新建视频库弹窗
PlayModal 34 视频播放弹窗
BatchTagModal 84 批量打标签弹窗
BatchClassifyModal 51 批量改分类弹窗
BatchMarkModal 67 批量智能标记弹窗
ResultDrawer 78 操作结果抽屉
UploadProgressModal 56 上传进度弹窗

其他变更

  • kindIcon 工具函数移至 utils/kindIcon.tsx(JSX 需在 tsx 文件中)
  • 所有组件采用受控组件模式(Props 驱动,状态保留在父组件)
  • smoke test 更新,覆盖所有新组件

统计

  • 主文件:1122 行 → 679 行(减少 443 行,约 40%)
  • 新增文件:13 个(12 个组件 + 1 个工具函数)
  • pnpm tsc --noEmit 全通过
  • pnpm lint 全通过
  • 0 any、0 ts-ignore、0 eslint-disable
  • 功能完全等价
## 概述 AssetLibrary Phase 2 — UI 组件抽离。将 1122 行的 AssetLibrary.tsx 中的 UI 组件抽离为 12 个独立组件文件。 ## 抽离的组件 | 组件 | 行数 | 说明 | |------|------|------| | AssetCard | 128 | 素材卡片(网格视图) | | AssetSkeleton | 36 | StatusPill + SkeletonCard 小组件 | | LibrarySidebar | 70 | 左侧素材库列表 | | AssetFilterBar | 65 | 筛选栏(搜索/类型/时间) | | BatchOperationBar | 73 | 批量操作栏 | | CreateLibraryModal | 64 | 新建视频库弹窗 | | PlayModal | 34 | 视频播放弹窗 | | BatchTagModal | 84 | 批量打标签弹窗 | | BatchClassifyModal | 51 | 批量改分类弹窗 | | BatchMarkModal | 67 | 批量智能标记弹窗 | | ResultDrawer | 78 | 操作结果抽屉 | | UploadProgressModal | 56 | 上传进度弹窗 | ## 其他变更 - `kindIcon` 工具函数移至 `utils/kindIcon.tsx`(JSX 需在 tsx 文件中) - 所有组件采用受控组件模式(Props 驱动,状态保留在父组件) - smoke test 更新,覆盖所有新组件 ## 统计 - 主文件:1122 行 → 679 行(减少 443 行,约 40%) - 新增文件:13 个(12 个组件 + 1 个工具函数) - `pnpm tsc --noEmit` ✅ 全通过 - `pnpm lint` ✅ 全通过 - 0 any、0 ts-ignore、0 eslint-disable - 功能完全等价
xiaoxia added 1 commit 2026-07-25 17:59:51 +08:00
refactor(assets): Phase 2 - extract UI components
AI Code Review / AI Code Review (pull_request) Failing after 0s
CI/CD Pipeline / Frontend Lint (pull_request) Failing after 50s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 1m43s
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 - Type Check (mypy) (pull_request) Successful in 1m48s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m51s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 1m4s
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 / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 2m13s
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
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 28s
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 skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 21s
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 3m39s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 3m50s
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m47s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 46m5s
6ca886f6cf
Extract 12 UI components from AssetLibrary.tsx into components/ directory:
- AssetCard: 素材卡片(网格视图)
- AssetSkeleton: StatusPill + SkeletonCard 小组件
- LibrarySidebar: 左侧素材库列表
- AssetFilterBar: 筛选栏(搜索/类型/时间)
- BatchOperationBar: 批量操作栏
- CreateLibraryModal: 新建视频库弹窗
- PlayModal: 视频播放弹窗
- BatchTagModal: 批量打标签弹窗
- BatchClassifyModal: 批量改分类弹窗
- BatchMarkModal: 批量智能标记弹窗
- ResultDrawer: 操作结果抽屉
- UploadProgressModal: 上传进度弹窗

Also moves kindIcon helper to utils/kindIcon.tsx.

Main file reduced from 1122 lines to 679 lines.
All state remains in parent component (controlled component pattern).
Full tsc + eslint clean.
xiaoxia added 1 commit 2026-07-25 18:11:01 +08:00
chore(assets): fix prettier formatting
AI Code Review / AI Code Review (pull_request) Failing after 0s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 15s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 53s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m38s
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 - Type Check (mypy) (pull_request) Successful in 1m43s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 56s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 26s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 2m7s
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 / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 17s
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 skipped
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 3m44s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m9s
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m53s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 46m3s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 14s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Failing after 49s
3002fe0135
xiaoxia closed this pull request 2026-07-25 20:53:41 +08:00

🗑️ 预览环境已清理

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

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

🗑️ **预览环境已清理** PR #897 已关闭或合并,对应的预览环境已被清理。 > 如有需要,可以重新打开 PR 来重新生成预览环境。
Some checks are pending
AI Code Review / AI Code Review (pull_request) Failing after 0s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 15s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 53s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m38s
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 - Type Check (mypy) (pull_request) Successful in 1m43s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 56s
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 26s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 2m7s
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 / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Staging E2E Tests (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 17s
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 skipped
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 3m44s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 4m9s
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m53s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 46m3s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 14s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Failing after 49s

Pull request closed

Sign in to join this conversation.