diff --git a/frontend/components/review/shared/AudioSection.tsx b/frontend/components/review/shared/AudioSection.tsx deleted file mode 100644 index 97a3ef1..0000000 --- a/frontend/components/review/shared/AudioSection.tsx +++ /dev/null @@ -1,29 +0,0 @@ -import AudioPlayer from '@/components/AudioPlayer' - -interface AudioSectionProps { - word: string - pronunciation?: string - className?: string - showPronunciation?: boolean -} - -export const AudioSection: React.FC = ({ - word, - pronunciation, - className = '', - showPronunciation = true -}) => { - return ( -
- {/* 音頻播放器 */} - - - {/* 發音符號 */} - {showPronunciation && pronunciation && ( - - {pronunciation} - - )} -
- ) -} \ No newline at end of file diff --git a/frontend/components/review/shared/CardHeader.tsx b/frontend/components/review/shared/CardHeader.tsx deleted file mode 100644 index 087051a..0000000 --- a/frontend/components/review/shared/CardHeader.tsx +++ /dev/null @@ -1,53 +0,0 @@ -import { ReviewCardData } from '@/types/review' -import { SynonymsDisplay } from './SynonymsDisplay' -import { DifficultyBadge } from './DifficultyBadge' - -interface CardHeaderProps { - cardData: ReviewCardData - showTranslation?: boolean - className?: string -} - -export const CardHeader: React.FC = ({ - cardData, - showTranslation = true, - className = '' -}) => { - return ( -
- {/* 單字標題 */} -
-

- {cardData.word} -

- - {/* 發音 */} - {cardData.pronunciation && ( -

- {cardData.pronunciation} -

- )} - - {/* 翻譯 */} - {showTranslation && ( -

- {cardData.translation} -

- )} -
- - {/* 難度等級和同義詞 */} -
- - -
- - {/* 定義 */} -
-

- {cardData.definition} -

-
-
- ) -} \ No newline at end of file diff --git a/frontend/components/review/shared/ConfidenceButtons.tsx b/frontend/components/review/shared/ConfidenceButtons.tsx deleted file mode 100644 index 929e8be..0000000 --- a/frontend/components/review/shared/ConfidenceButtons.tsx +++ /dev/null @@ -1,61 +0,0 @@ -import { ConfidenceLevel } from '@/types/review' - -interface ConfidenceButtonsProps { - selectedLevel?: ConfidenceLevel | undefined - onSelect: (level: ConfidenceLevel) => void - disabled?: boolean - className?: string -} - -export const ConfidenceButtons: React.FC = ({ - selectedLevel, - onSelect, - disabled = false, - className = '' -}) => { - const confidenceLevels: { level: ConfidenceLevel; label: string; color: string }[] = [ - { level: 1, label: '完全不會', color: 'bg-red-500 hover:bg-red-600' }, - { level: 2, label: '不太會', color: 'bg-orange-500 hover:bg-orange-600' }, - { level: 3, label: '一般', color: 'bg-yellow-500 hover:bg-yellow-600' }, - { level: 4, label: '還算會', color: 'bg-blue-500 hover:bg-blue-600' }, - { level: 5, label: '非常熟悉', color: 'bg-green-500 hover:bg-green-600' } - ] - - return ( -
-

- 對這個單字的熟悉程度如何? -

- -
- {confidenceLevels.map(({ level, label, color }) => ( - - ))} -
- - {selectedLevel && ( -

- 已選擇: {confidenceLevels.find(c => c.level === selectedLevel)?.label} -

- )} -
- ) -} \ No newline at end of file diff --git a/frontend/components/review/shared/DifficultyBadge.tsx b/frontend/components/review/shared/DifficultyBadge.tsx deleted file mode 100644 index 08fd056..0000000 --- a/frontend/components/review/shared/DifficultyBadge.tsx +++ /dev/null @@ -1,36 +0,0 @@ -interface DifficultyBadgeProps { - level: string - className?: string -} - -export const DifficultyBadge: React.FC = ({ - level, - className = '' -}) => { - const getBadgeStyle = (level: string) => { - switch (level?.toUpperCase()) { - case 'A1': - return 'bg-green-100 text-green-800 border-green-200' - case 'A2': - return 'bg-blue-100 text-blue-800 border-blue-200' - case 'B1': - return 'bg-yellow-100 text-yellow-800 border-yellow-200' - case 'B2': - return 'bg-orange-100 text-orange-800 border-orange-200' - case 'C1': - return 'bg-red-100 text-red-800 border-red-200' - case 'C2': - return 'bg-purple-100 text-purple-800 border-purple-200' - default: - return 'bg-gray-100 text-gray-800 border-gray-200' - } - } - - return ( - - {level?.toUpperCase() || 'N/A'} - - ) -} \ No newline at end of file diff --git a/frontend/components/review/shared/SynonymsDisplay.tsx b/frontend/components/review/shared/SynonymsDisplay.tsx deleted file mode 100644 index cbd340f..0000000 --- a/frontend/components/review/shared/SynonymsDisplay.tsx +++ /dev/null @@ -1,33 +0,0 @@ -interface SynonymsDisplayProps { - synonyms: string[] - className?: string - showLabel?: boolean -} - -export const SynonymsDisplay: React.FC = ({ - synonyms, - className = '', - showLabel = true -}) => { - if (!synonyms || synonyms.length === 0) { - return null - } - - return ( -
- {showLabel && ( - 同義詞: - )} -
- {synonyms.map((synonym, index) => ( - - {synonym} - - ))} -
-
- ) -} \ No newline at end of file