鄭沛軒
|
afd0e660ef
|
refactor: 完成Learn→Review重命名和Navigation死代碼清理
## Learn → Review 語義重命名
- 目錄結構: learn/ → review/ (內部架構)
- 測驗組件目錄: tests/ → review-tests/
- 狀態管理: useLearnStore → useReviewStore
- 服務層: LearnService → ReviewService
- 核心組件: TestRunner → ReviewRunner
## Navigation.tsx 死代碼清理
- 移除從未使用的 showExitLearning 和 onExitLearning props
- 刪除永不顯示的「結束複習」按鈕邏輯
- 簡化函數簽名,提升代碼可讀性
- 更新導航文字:「學習」→「複習」
## 架構優化成果
- 語義更精確:review(複習) 比 learn(學習) 更準確描述功能
- 代碼更清潔:移除16行左右的死代碼
- 用戶體驗保持:/learn 路由依然正常運作
- 維護性提升:組件職責更明確,擴展更容易
## 技術改進
- 保持完整的企業級4層架構
- 7種測驗組件完整重命名
- Zustand狀態管理語義優化
- 路由兼容性確保用戶無感知
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-27 18:18:43 +08:00 |
鄭沛軒
|
52ae910276
|
feat: 實現純CEFR字符串智能複習系統和完整四情境對照表
- 將雙欄位架構改為純CEFR字符串架構,消除資料冗余
- 後端API改為接收CEFR字符串,使用即時轉換進行計算
- 前端完全使用CEFR等級進行智能選擇和顯示
- 新增完整四情境對照表,突出顯示當前情境和建議複習方式
- 優化沒有到期詞卡時的用戶體驗,提供專用提示頁面
- 修復例句重組結果閃爍重置問題
- 修復AudioPlayer在p標籤內的HTML結構錯誤
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-25 21:05:54 +08:00 |
鄭沛軒
|
3ef5ea8ffe
|
feat: 實現智能複習系統前端核心重構
## 🎯 重構完成項目
### ✅ 移除手動模式切換
- 刪除7個手動切換按鈕 (lines 337-410)
- 改為系統自動選擇模式
- 保留所有優秀的UI設計和互動邏輯
### ✅ 新增智能化組件
- **ReviewTypeIndicator**: 純顯示當前系統選擇的題型
- **MasteryIndicator**: 實時熟悉度顯示,支援衰減指示
- **masteryCalculator**: 四情境適配邏輯 + 熟悉度計算
### ✅ API服務擴展
- 擴展 flashcardsService 新增6個智能複習方法
- getDueFlashcards: 取得到期詞卡
- getNextReviewCard: 取得下一張復習詞卡
- getOptimalReviewMode: 系統自動選擇題型
- submitReview: 提交復習結果並更新間隔
- generateQuestionOptions: 生成題目選項
### ✅ 狀態管理升級
- 從固定 mock data 改為動態 API 數據
- 新增 ExtendedFlashcard 接口支援智能複習欄位
- 實現自動選擇邏輯和四情境適配
- 整合復習結果提交和熟悉度更新
### ✅ 例句聽力功能補完
- 新增例句選項自動生成邏輯
- 實現例句聽力答題和結果反饋
- 移除"開發中"標記,功能正式可用
## 🌟 核心價值實現
- **零選擇負擔**: 用戶無需手動選擇,系統自動提供最適合的題型
- **四情境適配**: A1學習者自動保護,簡單/適中/困難詞彙智能匹配
- **7種題型完整**: 所有複習方法UI和邏輯都已完成
- **實時熟悉度**: 動態計算和顯示學習進度
## 🎨 UI設計保留
- ✅ 精美的3D翻卡動畫
- ✅ 完整的音頻播放和錄音功能
- ✅ 響應式設計和流暢互動
- ✅ 詳細的答題反饋和錯誤處理
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-09-25 18:01:25 +08:00 |