diff --git a/frontend/app/review-simple/components/SimpleFlipCard.tsx b/frontend/app/review-simple/components/SimpleFlipCard.tsx index 234d2f2..dda1122 100644 --- a/frontend/app/review-simple/components/SimpleFlipCard.tsx +++ b/frontend/app/review-simple/components/SimpleFlipCard.tsx @@ -2,6 +2,7 @@ import { useState, useRef, useEffect, useCallback } from 'react' import { SimpleCard, CONFIDENCE_LEVELS } from '../data' +import { SimpleTestHeader } from './SimpleTestHeader' interface SimpleFlipCardProps { card: SimpleCard @@ -59,56 +60,87 @@ export function SimpleFlipCard({ card, onAnswer }: SimpleFlipCardProps) { const hasAnswered = selectedConfidence !== null return ( -
- {/* 高級3D翻卡容器 (復用原有設計) */} +
+ {/* 完全復用原FlipMemoryTest的精確設計 */}
- {/* 正面 - 單字 (復用原有設計風格) */} -
+ {/* 正面 - 完全復用原設計 */} +
-
-

- 點擊卡片翻面,根據你對單字的熟悉程度進行自我評估: -

+ +

{card.word}

- {card.pronunciation} +
+ {card.pronunciation && ( + {card.pronunciation} + )} +
+

+ 點擊卡片翻面 +

- {/* 背面 - 詳細資訊 (復用原有布局) */} -
+ {/* 背面 - 完全復用原設計 */} +
+ +
- {/* 定義區塊 */} -
-

定義

-

{card.definition}

+ {/* 定義區塊 - 完全復用原樣式 */} +
+

定義

+

{card.definition}

- {/* 例句區塊 */} -
-

例句

-

"{card.example}"

-

"{card.translation}"

+ {/* 例句區塊 - 完全復用原樣式 */} +
+

例句

+
+

"{card.example}"

+
+

"{card.translation}"

@@ -116,65 +148,61 @@ export function SimpleFlipCard({ card, onAnswer }: SimpleFlipCardProps) {
- {/* 信心度選擇 - 復用原有的精美設計 */} + {/* 信心等級評估區 - 完全復用原ConfidenceButtons設計 */} {isFlipped && ( -
-

- 請選擇您對這個詞彙的熟悉程度: -

+
+
+

+ 請選擇您對這個詞彙的熟悉程度: +

+
+ {[ + { level: 1, label: '完全不懂', color: 'bg-red-100 text-red-700 border-red-200 hover:bg-red-200' }, + { level: 2, label: '模糊', color: 'bg-orange-100 text-orange-700 border-orange-200 hover:bg-orange-200' }, + { level: 3, label: '一般', color: 'bg-yellow-100 text-yellow-700 border-yellow-200 hover:bg-yellow-200' }, + { level: 4, label: '熟悉', color: 'bg-blue-100 text-blue-700 border-blue-200 hover:bg-blue-200' }, + { level: 5, label: '非常熟悉', color: 'bg-green-100 text-green-700 border-green-200 hover:bg-green-200' } + ].map(({ level, label, color }) => { + const isSelected = selectedConfidence === level + return ( + + ) + })} +
-
- {CONFIDENCE_LEVELS.map(({ level, label, color }) => { - const isSelected = selectedConfidence === level - const colorClasses = { - 'bg-red-500': 'bg-red-100 text-red-700 border-red-200 hover:bg-red-200', - 'bg-orange-500': 'bg-orange-100 text-orange-700 border-orange-200 hover:bg-orange-200', - 'bg-yellow-500': 'bg-yellow-100 text-yellow-700 border-yellow-200 hover:bg-yellow-200', - 'bg-blue-500': 'bg-blue-100 text-blue-700 border-blue-200 hover:bg-blue-200', - 'bg-green-500': 'bg-green-100 text-green-700 border-green-200 hover:bg-green-200' - }[color] || 'bg-gray-100 text-gray-700 border-gray-200 hover:bg-gray-200' - - return ( - - ) - })} + {/* 提交按鈕 - 選擇後顯示 */} + {hasAnswered && ( + + )}
- - {/* 提交按鈕 - 選擇後顯示 */} - {hasAnswered && ( - - )}
)} - - {/* 翻卡提示 - 只在未翻轉時顯示 */} - {!isFlipped && ( -
-

點擊卡片翻轉查看詳細資訊

-
- )} -
) } \ No newline at end of file diff --git a/frontend/app/review-simple/components/SimpleTestHeader.tsx b/frontend/app/review-simple/components/SimpleTestHeader.tsx new file mode 100644 index 0000000..5d25c93 --- /dev/null +++ b/frontend/app/review-simple/components/SimpleTestHeader.tsx @@ -0,0 +1,17 @@ +// 簡化版 TestHeader - 復用原設計但無外部依賴 + +interface SimpleTestHeaderProps { + title: string + cefr: string +} + +export function SimpleTestHeader({ title, cefr }: SimpleTestHeaderProps) { + return ( +
+

{title}

+ + {cefr} + +
+ ) +} \ No newline at end of file diff --git a/frontend/app/review-simple/page.tsx b/frontend/app/review-simple/page.tsx index f53c8e6..08b4a67 100644 --- a/frontend/app/review-simple/page.tsx +++ b/frontend/app/review-simple/page.tsx @@ -66,13 +66,7 @@ export default function SimpleReviewPage() {
-
- {/* 頁面標題 */} -
-

詞彙複習

-

翻卡學習,測試您的詞彙記憶

-
- +
{/* 進度顯示 */} - {/* 導航提示 */} -
-
-

- 💡 提示:先翻卡查看詞意,再根據您的熟悉程度選擇信心度 -

-
-
- - {/* 快捷操作 */} -
- - | - - 管理詞卡 - -