Commit Graph

3 Commits

Author SHA1 Message Date
鄭沛軒 50a0a79d72 feat: 完成前端動態答案推導系統和UI組件優化
## 🎯 動態答案推導系統

### 新增核心工具
- answerExtractor.ts: 從例句和挖空題目動態推導正確答案
- 支援單空格和多空格情況
- 完整的錯誤處理和降級機制

### SentenceFillTest 組件升級
- 新增 filledQuestionText 屬性支援
- 實作 renderFilledSentence() 智能渲染
- 動態計算正確答案,無需資料庫存儲
- 改善確認答案按鈕:始終可見,智能狀態提示

## 🎨 UI/UX 組件優化

### 填空題交互改善
- 確認答案按鈕始終顯示
- 智能狀態文字:「請先輸入答案」→「確認答案」→「已確認」
- 動態答案驗證和音頻播放

### 其他組件調整
- VocabChoiceTest: 優化音頻和發音顯示
- FlipMemoryTest: 改善例句區塊布局
- SentenceListeningTest: 優化結果顯示格式
- SentenceReorderTest: 調整音頻控制位置

## 📊 系統優勢

 **無需額外存儲**: 答案從現有資料動態推導
 **資料一致性**: 答案永遠與例句匹配
 **智能降級**: 後端無資料時自動使用前端邏輯
 **用戶體驗**: 更清晰的操作指引和狀態回饋

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-28 02:24:59 +08:00
鄭沛軒 5a9e7f727c feat: 統一所有選擇題組件的選項布局和圖片功能
## 主要改動

### 響應式選項布局統一
- VocabChoiceTest: 改為2x2網格布局,支援響應式設計
- VocabListeningTest: 添加響應式斷點 (grid-cols-1 sm:grid-cols-2)
- SentenceListeningTest: 改為響應式2x2網格,移除選項標籤

### 圖片功能完善
- SentenceListeningTest: 新增exampleImage和onImageClick支援
- 添加完整的圖片顯示區塊和點擊處理
- review-design頁面: 為SentenceListeningTest傳遞圖片屬性

### 視覺一致性提升
- 所有選擇題組件採用相同的按鈕樣式和網格布局
- 統一文字置中對齊和font-medium字重
- 手機版自動切換為單列布局,提升觸控體驗
- 桌面版使用2x2網格,充分利用屏幕空間

### 響應式設計
- 小屏幕 (< 640px): 選項垂直單列排列
- 中等以上屏幕 (≥ 640px): 選項2x2網格排列
- 保持所有組件一致的響應式行為

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-28 00:18:10 +08:00
鄭沛軒 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