Skip to content

feat: Epic #80 - 弹出层组件架构重构与转账流程修复 - #87

Merged
Gaubee merged 6 commits into
mainfrom
feat/epic-80-popup-refactor
Dec 22, 2025
Merged

Gaubee merged 6 commits into
mainfrom
feat/epic-80-popup-refactor

Conversation

@Gaubee

@Gaubee Gaubee commented Dec 22, 2025

Copy link
Copy Markdown
Contributor

概述

重构弹出层组件架构,统一使用 Stackflow 导航系统,修复转账流程问题。

变更内容

#81 重构 BottomSheet 组件架构

  • 将 src/components/layout/bottom-sheet.tsx 改为 Stackflow BottomSheet 包装
  • 所有 Sheet 组件改为 Activity,统一从包装组件导入
  • 新增 TransferConfirmJob
  • 删除冗余的组件版本(transfer-confirm-sheet, password-confirm-sheet 等)

#82 重构 Modal/AlertDialog 组件架构

  • 创建 src/components/layout/modal.tsx 作为 Stackflow Modal 包装
  • 明确两种弹窗模式:
    • Stackflow Modal/BottomSheet:导航式 Activity
    • shadcn AlertDialog:内联式状态控制弹窗

#83 重组 SheetActivity 文件结构

  • 重命名所有 *SheetActivity 为 *Job
  • 路由从 /sheet/* 改为 /job/*
  • Job 表示跨页面共享的业务弹窗

#84 修复密码确认后交易流程

  • 修复 TransferConfirmJob:先 pop 再 push PasswordConfirmJob
  • 移除多余的 goBack() 调用
  • 正确的流程:TransferConfirmJob pop → PasswordConfirmJob push → submit → PasswordConfirmJob pop → 显示结果

#85 修复交易列表查询

  • 添加详细的调试日志
  • 支持多种 API 响应格式
  • 改善错误处理

#86 补充转账流程 e2e 测试

  • 添加 TransferConfirmJob 打开测试
  • 添加 PasswordConfirmJob 打开测试
  • 新增截图测试

测试结果

  • 单元测试:1376 passed
  • e2e 测试:18 passed(send-transaction)

Closes #80, #81, #82, #83, #84, #85, #86

- Replace custom BottomSheet component with Stackflow wrapper
- Convert all sheet components to Activities:
  - TransferConfirmSheetActivity (new)
  - All imports now from @/components/layout/bottom-sheet
- Update pages to use Activity-based sheets:
  - HomePage uses ChainSelectorSheetActivity
  - SendPage uses TransferConfirmSheetActivity + PasswordConfirmSheetActivity
- Delete redundant component files:
  - transfer-confirm-sheet, password-confirm-sheet
  - mnemonic-options-sheet, wallet-edit-sheet
  - contact-edit-sheet, bottom-sheet tests/stories

Closes #81
- Create src/components/layout/modal.tsx as Stackflow Modal wrapper
- Clarify usage patterns:
  - Stackflow Modal/BottomSheet: navigation-based Activities
  - shadcn AlertDialog: inline state-controlled dialogs
- Keep existing shadcn alert-dialog for inline confirmations

Closes #82
- Rename all *SheetActivity files to *Job:
  - ChainSelectorJob, WalletRenameJob, WalletDeleteJob
  - PasswordConfirmJob, MnemonicOptionsJob, ContactEditJob
  - WalletAddJob, SecurityWarningJob, TransferConfirmJob
- Update routes from /sheet/* to /job/*
- Update all push() calls across the codebase

Job naming convention indicates shared business activities
used across multiple pages.

Closes #83
- Fix TransferConfirmJob: pop first, then call callback
  This ensures correct stack order when pushing PasswordConfirmJob
- Remove goBack() call after submit success
  submit() already sets state.step to 'result'

Flow now:
1. TransferConfirmJob pops itself
2. PasswordConfirmJob pushes onto stack
3. After password verify, submit() sets state to 'result'
4. PasswordConfirmJob pops itself
5. SendPage shows result

Closes #84
- Add logging for debugging API issues
- Handle multiple response formats (data.transactions or transactions)
- Log specific errors instead of silent failures
- Add debug logging when no transactions found

This helps diagnose why transactions might not be showing.

Closes #85
- Add test for TransferConfirmJob opening after form submit
- Add test for PasswordConfirmJob opening after confirm
- Tests handle cases where mock service isn't fully configured
- Add screenshot tests for new Job UI

Closes #86
@Gaubee
Gaubee merged commit 12b1db3 into main Dec 22, 2025
3 checks passed
@Gaubee
Gaubee deleted the feat/epic-80-popup-refactor branch January 4, 2026 07:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Epic: 弹出层组件架构重构与转账流程修复

1 participant