refactor(editing-planner): Phase 1 - extract constants and selectors #900

Merged
xiaoxia merged 2 commits from refactor/editing-planner-phase1 into develop 2026-07-26 03:34:12 +08:00
Owner

EditingPlanner Phase 1 重构 — 抽离常量、工具函数和选择器

变更内容

  • 新建 constants.ts:抽取 MODE_LIST 和 FILTER_CATEGORIES 常量
  • 新建 utils/selectors.ts:抽取 4 个纯函数选择器
    • calculateTotalDuration(clips) — 计算总时长
    • getCurrentTemplate(templates, loadedTemplateId) — 当前选中模板
    • getFilteredTemplates(templates, currentMode, currentFilter, searchQuery) — 筛选后的模板列表
    • getSelectedClip(clips, selectedClipId) — 当前选中的片段
  • 更新 EditingPlanner.tsx:import 新模块,使用选择器函数替换内联计算
  • 新增 smoke test 建立 vitest related 依赖链

约束遵守

  • 仅做代码移动,功能完全等价
  • 无 any / ts-ignore / eslint-disable
  • prettier 通过
  • 文件权限 644
  • 未触碰 UI 组件和业务逻辑

统计

  • 主文件:1136 行 → 1128 行(净减 8 行,移除 19 行/新增 11 行 import)
## EditingPlanner Phase 1 重构 — 抽离常量、工具函数和选择器 ### 变更内容 - 新建 `constants.ts`:抽取 MODE_LIST 和 FILTER_CATEGORIES 常量 - 新建 `utils/selectors.ts`:抽取 4 个纯函数选择器 - `calculateTotalDuration(clips)` — 计算总时长 - `getCurrentTemplate(templates, loadedTemplateId)` — 当前选中模板 - `getFilteredTemplates(templates, currentMode, currentFilter, searchQuery)` — 筛选后的模板列表 - `getSelectedClip(clips, selectedClipId)` — 当前选中的片段 - 更新 `EditingPlanner.tsx`:import 新模块,使用选择器函数替换内联计算 - 新增 smoke test 建立 vitest related 依赖链 ### 约束遵守 - 仅做代码移动,功能完全等价 - 无 any / ts-ignore / eslint-disable - prettier 通过 - 文件权限 644 - 未触碰 UI 组件和业务逻辑 ### 统计 - 主文件:1136 行 → 1128 行(净减 8 行,移除 19 行/新增 11 行 import)
auto-approve-bot approved these changes 2026-07-26 00:58:17 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

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

CI全绿,自动审批通过。

CI全绿,自动审批通过。
xiaoxia force-pushed refactor/editing-planner-phase1 from 90bf34b482 to d44af1f6ca 2026-07-26 01:15:09 +08:00 Compare
xiaoxia added 2 commits 2026-07-26 02:56:33 +08:00
fix: remove unused currentMode param in getFilteredTemplates
AI Code Review / AI Code Review (pull_request) Failing after 0s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 21s
CI/CD Pipeline / PR Build Worker Image (pull_request) Successful in 32s
CI/CD Pipeline / Build Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 54s
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 / Validate - Migration (alembic) (pull_request) Successful in 2m2s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
Preview Deploy / Deploy Preview Environment (pull_request) Failing after 21s
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
PR Automation / Auto Approve on CI Green (pull_request) Successful in 1m18s
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 skipped
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 2m20s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 22s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 3m38s
CI/CD Pipeline / Integration Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Successful in 3m41s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 17s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Failing after 22s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 47m35s
e8f7788e56
xiaoxia force-pushed refactor/editing-planner-phase1 from d44af1f6ca to e8f7788e56 2026-07-26 02:56:33 +08:00 Compare
xiaoxia merged commit 7bf25023a0 into develop 2026-07-26 03:34:12 +08:00

🗑️ 预览环境已清理

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

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

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