diff --git a/frontend/app/login/page.tsx b/frontend/app/login/page.tsx index 2298004..62b6334 100644 --- a/frontend/app/login/page.tsx +++ b/frontend/app/login/page.tsx @@ -104,9 +104,9 @@ export default function LoginPage() { /> 記住我 - + {/* 忘記密碼? - + */} - + */}

還沒有帳號?{' '} diff --git a/frontend/app/register/page.tsx b/frontend/app/register/page.tsx index 374be46..1d0289c 100644 --- a/frontend/app/register/page.tsx +++ b/frontend/app/register/page.tsx @@ -206,7 +206,7 @@ export default function RegisterPage() { -

+ {/*
@@ -229,7 +229,7 @@ export default function RegisterPage() { 使用 Google 註冊 -
+
*/}

已經有帳號?{' '} diff --git a/frontend/components/flashcards/FlashcardCard.tsx b/frontend/components/flashcards/FlashcardCard.tsx index 71ac485..70c9f6e 100644 --- a/frontend/components/flashcards/FlashcardCard.tsx +++ b/frontend/components/flashcards/FlashcardCard.tsx @@ -2,6 +2,7 @@ import React from 'react' import Link from 'next/link' import { Flashcard } from '@/lib/services/flashcards' import { getCEFRColor, getFlashcardImageUrl, getPartOfSpeechDisplay } from '@/lib/utils/flashcardUtils' +import { BluePlayButton } from '@/components/shared/BluePlayButton' interface FlashcardCardProps { flashcard: Flashcard @@ -36,8 +37,8 @@ export const FlashcardCard: React.FC = ({ return (

- {/* CEFR標註 */} -
+ {/* CEFR標註 - 只在桌面版顯示 */} +
{flashcard.cefr || 'A1'} @@ -45,26 +46,66 @@ export const FlashcardCard: React.FC = ({ {/* 手機版布局 */}
- {/* 主要內容區 */} -
-

- {searchTerm ? highlightSearchTerm(flashcard.word || '未設定', searchTerm) : (flashcard.word || '未設定')} -

-

- {searchTerm ? highlightSearchTerm(flashcard.translation || '未設定', searchTerm) : (flashcard.translation || '未設定')} -

-
- - {getPartOfSpeechDisplay(flashcard.partOfSpeech)} - - {flashcard.pronunciation && ( - {flashcard.pronunciation} + {/* 頂部區域:圖片和詞彙信息 */} +
+ {/* 圖片區域 */} +
+ {hasExampleImage(flashcard) ? ( + {`${flashcard.word} + ) : ( +
+ {isGenerating ? ( +
+ ) : ( + + + + )} +
)}
+ + {/* 詞彙信息 */} +
+

+ {searchTerm ? highlightSearchTerm(flashcard.word || '未設定', searchTerm) : (flashcard.word || '未設定')} +

+

+ {searchTerm ? highlightSearchTerm(flashcard.translation || '未設定', searchTerm) : (flashcard.translation || '未設定')} +

+
- {/* 操作按鈕區 */} -
+ {/* 底部操作區域 */} +
+ {/* 左側:CEFR + 詞性 + 播放按鈕 */} +
+ + {flashcard.cefr || 'A1'} + + + {getPartOfSpeechDisplay(flashcard.partOfSpeech)} + + {flashcard.word && ( + + )} +
+ + {/* 右側:操作按鈕 */}
- {hasExampleImage(flashcard) ? ( -
- -
- ) : ( - - )} -
- -
- - 詳細 - + + + + + +
@@ -176,7 +199,18 @@ export const FlashcardCard: React.FC = ({ {searchTerm ? highlightSearchTerm(flashcard.translation || '未設定', searchTerm) : (flashcard.translation || '未設定')} {flashcard.pronunciation && ( - {flashcard.pronunciation} +
+ {flashcard.pronunciation} + {flashcard.word && ( + + )} +
)}
diff --git a/frontend/components/shared/Navigation.tsx b/frontend/components/shared/Navigation.tsx index 2eb5b0c..3eec2e8 100644 --- a/frontend/components/shared/Navigation.tsx +++ b/frontend/components/shared/Navigation.tsx @@ -41,7 +41,7 @@ export function Navigation({ showExitLearning = false, onExitLearning }: Navigat - + DramaLing @@ -91,12 +91,12 @@ export function Navigation({ showExitLearning = false, onExitLearning }: Navigat
{user?.displayName || user?.username} - + */}
)} @@ -134,7 +134,7 @@ export function Navigation({ showExitLearning = false, onExitLearning }: Navigat
{user?.username} - + */}