refactor(editing-planner): 拆分 StickerPropsEditor 预览和文字属性(200→130行, -35%) #1144

Merged
auto-approve-bot merged 2 commits from refactor/sticker-props-editor into develop 2026-07-30 01:23:59 +08:00
Owner

拆分说明

按三阶段模式拆分 StickerPropsEditor 组件:

拆分内容

  • StickerPreview - 贴纸预览组件(39行)
  • TextStickerPropsEditor - 文字贴纸属性编辑器(57行)

瘦身效果

  • 主文件: 200 → 130 行 (-35%)

向后兼容

  • 原组件路径 sticker/StickerPropsEditor 保持不变
  • 新增子组件在同目录下
  • 无破坏性改动
## 拆分说明 按三阶段模式拆分 StickerPropsEditor 组件: ### 拆分内容 - **StickerPreview** - 贴纸预览组件(39行) - **TextStickerPropsEditor** - 文字贴纸属性编辑器(57行) ### 瘦身效果 - 主文件: 200 → 130 行 **(-35%)** ### 向后兼容 - 原组件路径 `sticker/StickerPropsEditor` 保持不变 - 新增子组件在同目录下 - 无破坏性改动
xiaoxia added 1 commit 2026-07-29 18:35:26 +08:00
refactor(editing-planner): 拆分 StickerPropsEditor 预览和文字属性子组件(200→130行, -35%)
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 / Check if frontend-only change (pull_request) Successful in 44s
CI/CD Pipeline / Validate - Type Check (mypy) (pull_request) Successful in 1m38s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m44s
AI Code Review / AI Code Review (pull_request) Failing after 1m40s
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m19s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 43s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 29s
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
PR Automation / Auto Approve on CI Green (pull_request) Successful in 3m8s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 50s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 5m26s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m55s
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) 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 / CI Gate (pull_request) Successful in 13s
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Canary Release to Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
7f40f85460

🚀 预览环境已部署

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

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

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

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

🚀 **预览环境已部署** | 项目 | 详情 | |------|------| | PR号 | #1144 | | 预览链接 | [https://pr-1144.preview.xiaoxiajianji.com](https://pr-1144.preview.xiaoxiajianji.com) | | API环境 | staging | > 💡 预览环境使用 staging API 数据,请勿在预览环境中操作重要数据。 > > 🔄 每次提交新代码后预览环境会自动更新。 > > 🗑️ PR 关闭或合并后,预览环境会自动清理。
auto-approve-bot approved these changes 2026-07-30 00:48:00 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

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

CI全绿,自动审批通过。

CI全绿,自动审批通过。
xiaoxia added 1 commit 2026-07-30 00:56:37 +08:00
fix: StickerPreview height属性使用sticker.height而非sticker.width
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 29s
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 1m5s
CI/CD Pipeline / Validate - Migration (alembic) (pull_request) Successful in 1m20s
AI Code Review / AI Code Review (pull_request) Successful in 1m28s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 1m2s
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 1m19s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m48s
CI/CD Pipeline / Validate - Code Quality (pull_request) Successful in 3m56s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / PR Build API Image (pull_request) Has been skipped
CI/CD Pipeline / PR Build Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (pull_request) Has been skipped
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 44s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 1m2s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 1m33s
CI/CD Pipeline / Integration Tests (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 / 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 / CI Gate (pull_request) Successful in 21s
CI/CD Pipeline / Canary Release to Production (pull_request) Has been cancelled
CI/CD Pipeline / Deploy Production (pull_request) Has been skipped
CI/CD Pipeline / Production Browser E2E (pull_request) Has been skipped
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 12s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 46s
acdb7bbea7
Collaborator

【阻塞级判定】

  • 是否存在阻塞级问题:否
  • 阻塞级问题数量:0 个

📊 审查概览

  • 整体评价:通过
  • 建议级问题数量:1 个

🔴 阻塞级问题(必须修复)

💡 改进建议(不阻塞合并)

  1. [StickerPreview.tsx, TextStickerPropsEditor.tsx] 文件权限设置建议
    • 具体内容:新增的两个文件 StickerPreview.tsxTextStickerPropsEditor.tsx 的 git 文件模式被设置为 100755(可执行)。通常源代码文件应保持默认的 100644(不可执行)。建议在提交前重置文件权限(例如使用 git update-index --chmod=644 filename)。

良好实践

  1. 组件拆分合理:将 StickerPropsEditor 中复杂的预览逻辑和文本编辑逻辑分别拆解为 StickerPreviewTextStickerPropsEditor,符合单一职责原则,显著提升了代码的可读性和可维护性。
  2. 逻辑修复:在重构过程中,StickerPreview 组件正确使用了 sticker.height 来设置高度,而旧代码(StickerPropsEditor.tsx 删除部分)错误地使用了 sticker.width,这次重构顺带修复了预览宽高比错误的逻辑 Bug。
  3. 类型守卫TextStickerPropsEditor 组件中使用了 if (sticker.type !== "text") return null 进行类型守卫,确保了后续代码在类型安全的前提下访问 text_preset 等特有属性。

🤖 由 AI 代码审查机器人自动生成 | 2026-07-29 16:59:56 | 模型:

### 【阻塞级判定】 - 是否存在阻塞级问题:否 - 阻塞级问题数量:0 个 ### 📊 审查概览 - 整体评价:通过 - 建议级问题数量:1 个 ### 🔴 阻塞级问题(必须修复) 无 ### 💡 改进建议(不阻塞合并) 1. **[StickerPreview.tsx, TextStickerPropsEditor.tsx] 文件权限设置建议** - 具体内容:新增的两个文件 `StickerPreview.tsx` 和 `TextStickerPropsEditor.tsx` 的 git 文件模式被设置为 `100755`(可执行)。通常源代码文件应保持默认的 `100644`(不可执行)。建议在提交前重置文件权限(例如使用 `git update-index --chmod=644 filename`)。 ### ✅ 良好实践 1. **组件拆分合理**:将 `StickerPropsEditor` 中复杂的预览逻辑和文本编辑逻辑分别拆解为 `StickerPreview` 和 `TextStickerPropsEditor`,符合单一职责原则,显著提升了代码的可读性和可维护性。 2. **逻辑修复**:在重构过程中,`StickerPreview` 组件正确使用了 `sticker.height` 来设置高度,而旧代码(`StickerPropsEditor.tsx` 删除部分)错误地使用了 `sticker.width`,这次重构顺带修复了预览宽高比错误的逻辑 Bug。 3. **类型守卫**:`TextStickerPropsEditor` 组件中使用了 `if (sticker.type !== "text") return null` 进行类型守卫,确保了后续代码在类型安全的前提下访问 `text_preset` 等特有属性。 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-07-29 16:59:56 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->
auto-approve-bot merged commit 33270dd026 into develop 2026-07-30 01:23:59 +08:00
auto-approve-bot deleted branch refactor/sticker-props-editor 2026-07-30 01:23:59 +08:00

🗑️ 预览环境已清理

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

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

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