'use client' import React, { useState, useCallback } from 'react' import { SyllableBow, simpleSyllableSplit } from './SyllableBow' interface FlashCardProps { front: string back: string cardNumber: number totalCards: number leitnerBox: number onCorrect: () => void onIncorrect: () => void isDark: boolean syllablesFront?: string[] syllablesBack?: string[] ipaFront?: string ipaBack?: string } const boxLabels = ['Neu', 'Gelernt', 'Gefestigt'] const boxColors = ['text-yellow-400', 'text-blue-400', 'text-green-400'] export function FlashCard({ front, back, cardNumber, totalCards, leitnerBox, onCorrect, onIncorrect, isDark, syllablesFront, syllablesBack, ipaFront, ipaBack, }: FlashCardProps) { const [isFlipped, setIsFlipped] = useState(false) const handleFlip = useCallback(() => { setIsFlipped((f) => !f) }, []) const handleCorrect = useCallback(() => { setIsFlipped(false) onCorrect() }, [onCorrect]) const handleIncorrect = useCallback(() => { setIsFlipped(false) onIncorrect() }, [onIncorrect]) return (
{/* Card */}
{/* Front */}
ENGLISCH {syllablesFront && syllablesFront.length > 0 ? ( ) : ( {front} )} {ipaFront && {ipaFront}} Klick zum Umdrehen
{/* Back */}
DEUTSCH {back}
{/* Status Bar */}
Karte {cardNumber} von {totalCards} Box: {boxLabels[leitnerBox] || boxLabels[0]}
{/* Progress */}
{/* Answer Buttons */} {isFlipped && (
)}
) }