Files
FocusBuddy/BUG_FIX_001.md
2025-11-22 18:17:35 +08:00

3.1 KiB
Raw Blame History

🐛 Bug 修复报告

Bug #1: "View Full Report" 按钮无功能

日期: 2025-11-22 发现者: 用户测试 优先级: 中等


问题描述

在 Complete Screen完成页面点击 "View Full Report" 按钮时,显示 "History screen coming soon!" 的占位提示,而不是导航到 History 页面。

重现步骤:

  1. 完成一次 focus session
  2. 到达 Complete Screen
  3. 点击 "View Full Report" 按钮
  4. 看到 SnackBar 提示 "History screen coming soon!"

根本原因

complete_screen.dart 中,"View Full Report" 按钮的 onPressed 处理函数只是显示一个占位的 SnackBar而没有实际导航到 HistoryScreen。

// 问题代码
TextButton(
  onPressed: () {
    ScaffoldMessenger.of(context).showSnackBar(
      const SnackBar(
        content: Text('History screen coming soon!'),
        duration: Duration(seconds: 1),
      ),
    );
  },
  child: const Text('View Full Report'),
),

修复方案

  1. 添加导入: 在文件顶部添加 import 'history_screen.dart';
  2. 修改按钮行为: 使用 Navigator.pushAndRemoveUntil 导航到 HistoryScreen
  3. 更新按钮文本: 将 "View Full Report" 改为更准确的 "View History"
// 修复后的代码
TextButton(
  onPressed: () {
    Navigator.pushAndRemoveUntil(
      context,
      MaterialPageRoute(
        builder: (context) => const HistoryScreen(),
      ),
      (route) => route.isFirst, // Keep only the home screen in stack
    );
  },
  child: const Text('View History'),
),

修复详情

修改的文件:

  • lib/screens/complete_screen.dart

修改内容:

  1. 第 7 行:添加 import 'history_screen.dart';
  2. 第 110-122 行:重写 TextButton 的 onPressed 处理函数

导航逻辑:

  • 使用 pushAndRemoveUntil 而不是简单的 push
  • 保留 Home screen 在导航栈底部
  • 这样从 History 点击返回会回到 Home而不是 Complete screen

测试验证

测试步骤:

  1. 完成一次 focus session
  2. 在 Complete Screen 点击 "View History" 按钮
  3. 验证:成功导航到 History Screen
  4. 验证:可以看到刚刚完成的 session
  5. 点击返回按钮
  6. 验证:返回到 Home Screen不是 Complete Screen

预期结果: 所有步骤通过


影响范围

影响的功能:

  • Complete Screen 到 History Screen 的导航流程

不影响的功能:

  • 其他页面的导航
  • 数据保存
  • History Screen 自身的显示逻辑

部署方式

Hot Reload: 支持 需要重启: 不需要

用户在浏览器中应该会自动看到更新Flutter 会自动热重载)。如果没有自动更新,按 R 进行热重启。


后续改进建议

可选的 UI 优化:

  1. 将 "View History" 改为图标按钮(更简洁)
  2. 添加一个简短的过渡动画
  3. 在 History Screen 顶部突出显示刚刚完成的 session

状态

  • Bug 已识别
  • 代码已修复
  • 已触发热重载
  • 等待用户验证

修复完成!请在浏览器中测试 "View History" 按钮现在是否正常工作。 🎉