fix(#1718): 昵称页提交防连点 + 补 /vite.svg favicon #1727

Merged
auto-approve-bot merged 1 commits from fix/1718-onboarding-loading-favicon into develop 2026-09-06 11:24:49 +08:00
Owner

背景

Issue #1718 收尾小修(配合后端补 PATCH /auth/me):

  1. 截图显示微信新用户昵称页点「进入小虾智剪」后 PATCH /auth/me 405 出现两次——用户连点按钮导致重复提交(antd Button 的 loading 态要等 React 重渲染后才禁用按钮,连点两次时第一次 mutation 刚触发、重渲染未发生,第二次 click 仍会进入 onFinish)
  2. index.html 引用 /vite.svg 但 public 目录为空,控制台 favicon 404

改动

  • pages/auth/WechatOnboarding.tsx
    • 新增 submittingRef 同步防连点守卫:onFinish 入口同步检查+置位,成功跳走不复位、失败复位允许重试(与 #1723 Login 微信按钮同一模式)
    • 按钮补 disabled={saveMutation.isPending} 双保险
    • catch 错误提示透传后端真实原因(昵称保存失败:{detail}),与拦截器 __msgShown 去重,不再统一吞成「保存失败,请重试」
  • public/vite.svg:新增 favicon(品牌色底 + 🦐),消除控制台 404

测试

  • WechatOnboarding 测试新增 2 例:连点 3 次只发 1 次请求;失败后守卫复位可重新提交(全量 665 passed)
  • tsc / eslint --max-warnings 0 / prettier / build 全绿;build 产物确认含 vite.svg

说明

  • PATCH /auth/me 405 的根因(后端缺更新接口)由后端 PR 修复,本 PR 只负责前端不再重复提交 + 错误可见
## 背景 Issue #1718 收尾小修(配合后端补 PATCH /auth/me): 1. 截图显示微信新用户昵称页点「进入小虾智剪」后 PATCH /auth/me 405 出现两次——用户连点按钮导致重复提交(antd Button 的 loading 态要等 React 重渲染后才禁用按钮,连点两次时第一次 mutation 刚触发、重渲染未发生,第二次 click 仍会进入 onFinish) 2. index.html 引用 `/vite.svg` 但 public 目录为空,控制台 favicon 404 ## 改动 - `pages/auth/WechatOnboarding.tsx` - 新增 `submittingRef` 同步防连点守卫:onFinish 入口同步检查+置位,成功跳走不复位、失败复位允许重试(与 #1723 Login 微信按钮同一模式) - 按钮补 `disabled={saveMutation.isPending}` 双保险 - catch 错误提示透传后端真实原因(`昵称保存失败:{detail}`),与拦截器 `__msgShown` 去重,不再统一吞成「保存失败,请重试」 - `public/vite.svg`:新增 favicon(品牌色底 + 🦐),消除控制台 404 ## 测试 - WechatOnboarding 测试新增 2 例:连点 3 次只发 1 次请求;失败后守卫复位可重新提交(全量 665 passed) - tsc / eslint --max-warnings 0 / prettier / build 全绿;build 产物确认含 vite.svg ## 说明 - PATCH /auth/me 405 的根因(后端缺更新接口)由后端 PR 修复,本 PR 只负责前端不再重复提交 + 错误可见
xiaoxia added 1 commit 2026-09-06 11:19:55 +08:00
fix(#1718): 昵称页提交按钮加同步防连点守卫(连点致 PATCH/me 重复提交)、补 /vite.svg favicon 消除 404
CI/CD Pipeline / Check push changed paths (pull_request) Has been skipped
CI/CD Pipeline / Dedup Check - skip PR tests when covered by push pipeline (pull_request) Successful in 2s
CI/CD Pipeline / Check if frontend-only change (pull_request) Successful in 2s
CI/CD Pipeline / Unit Tests (pull_request) Has been skipped
CI/CD Pipeline / Integration 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 / 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 / Retag skipped Staging API Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Web Image (pull_request) Has been skipped
CI/CD Pipeline / Retag skipped Staging Worker Image (pull_request) Has been skipped
CI/CD Pipeline / Deploy Staging (Watchtower auto-deploy) (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
AI Code Review / AI Code Review (pull_request) Successful in 1m58s
CI/CD Pipeline / Frontend Unit Tests (pull_request) Successful in 2m2s
Preview Deploy / Deploy Preview Environment (pull_request) Successful in 2m8s
CI/CD Pipeline / Frontend Lint (pull_request) Successful in 2m11s
CI/CD Pipeline / PR Build Web Image (pull_request) Successful in 2m10s
PR Automation / Auto Approve on CI Green (pull_request) Successful in 2m18s
CI/CD Pipeline / Validate - Python (mypy + alembic) (pull_request) Successful in 2m19s
CI/CD Pipeline / Validate - Style (pull_request) Successful in 2m21s
CI/CD Pipeline / Validate - Security (pull_request) Successful in 4m8s
CI/CD Pipeline / Build Production Web Image (pull_request) Has been skipped
CI/CD Pipeline / Build Production API 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 3s
CI/CD Pipeline / Deploy Production (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
PR Automation / Auto Merge on CI Green + Approved (pull_request) Successful in 2m33s
ACR Cleanup / ACR Image Cleanup (pull_request_target) Successful in 7s
Preview Cleanup / Cleanup Preview Environment (pull_request) Successful in 27s
b27ff1323d
Collaborator

【阻塞级判定】

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

📊 审查概览

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

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

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

良好实践

  1. 防重复提交机制完善:使用 useRef 配合 disabled 属性,有效解决了 React 状态更新延迟导致的连点重复提交问题,逻辑严谨。
  2. 错误处理增强:引入 isErrorMsgShowngetErrorMessage,避免了错误消息的重复弹窗,并向用户透传了后端的具体错误原因,提升了用户体验。
  3. 测试覆盖全面:新增的测试用例准确覆盖了“连点防抖”和“失败复位”两个关键场景,确保了防御性代码的有效性。

🤖 由 AI 代码审查机器人自动生成 | 2026-09-06 03:21:50 | 模型:

### 【阻塞级判定】 - 是否存在阻塞级问题:否 - 阻塞级问题数量:0 个 ### 📊 审查概览 - 整体评价:通过 - 建议级问题数量:0 个 ### 🔴 阻塞级问题(必须修复) 无 ### 💡 改进建议(不阻塞合并) 无 ### ✅ 良好实践 1. **防重复提交机制完善**:使用 `useRef` 配合 `disabled` 属性,有效解决了 React 状态更新延迟导致的连点重复提交问题,逻辑严谨。 2. **错误处理增强**:引入 `isErrorMsgShown` 和 `getErrorMessage`,避免了错误消息的重复弹窗,并向用户透传了后端的具体错误原因,提升了用户体验。 3. **测试覆盖全面**:新增的测试用例准确覆盖了“连点防抖”和“失败复位”两个关键场景,确保了防御性代码的有效性。 --- <sub>🤖 由 AI 代码审查机器人自动生成 | 2026-09-06 03:21:50 | 模型: </sub> <!-- AI_CODE_REVIEW_AUTO_COMMENT -->

🚀 预览环境已部署

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

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

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

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

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

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot approved these changes 2026-09-06 11:22:13 +08:00
auto-approve-bot left a comment
Collaborator

CI全绿,自动审批通过。

CI全绿,自动审批通过。
auto-approve-bot merged commit 06b0bacce1 into develop 2026-09-06 11:24:49 +08:00
auto-approve-bot deleted branch fix/1718-onboarding-loading-favicon 2026-09-06 11:24:49 +08:00

🗑️ 预览环境已清理

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

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

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