Words
{(pictureWords.length + pendingWords.length) > 0 && (
{pictureWords.length + pendingWords.length}
)}
{wordInputVisible && (
setWordInput(e.target.value)}
onKeyDown={e => {
if (e.key === 'Enter') addWord()
if (e.key === 'Escape') { setWordInputVisible(false); setWordInput('') }
}}
placeholder="Wort (titel_de)…"
style={{
width: '100%', padding: '5px 8px', borderRadius: 'var(--r-sm)',
border: '1px solid var(--border)', background: 'var(--surface-2)',
color: 'var(--text-1)', fontFamily: 'var(--font)', fontSize: 12,
boxSizing: 'border-box',
}}
/>
setWordLevel(Math.min(100, Math.max(1, Number(e.target.value))))}
style={{
flex: 1, padding: '4px 6px', borderRadius: 'var(--r-sm)',
border: '1px solid var(--border)', background: 'var(--surface-2)',
color: 'var(--text-1)', fontFamily: 'var(--font)', fontSize: 12,
}}
/>
)}
{/* Saved words from db_words_db_pictures */}
{pictureWords.length > 0 && (
0 ? 8 : 0 }}>
{pictureWords.map(w => (
{w.titel_de}
L{w.level}
))}
)}
{/* Pending new words (not yet saved) */}
{pendingWords.length > 0 && (
{pendingWords.map((w, i) => (
{w.titel_de}
setPendingWords(prev => prev.map((x, j) => j === i ? { ...x, level: Math.min(100, Math.max(1, Number(e.target.value))) } : x))}
style={{
width: 44, padding: '2px 4px', borderRadius: 'var(--r-sm)',
border: '1px solid color-mix(in srgb, var(--primary) 40%, transparent)',
background: 'var(--surface)', color: 'var(--primary)',
fontFamily: 'var(--font)', fontSize: 11, textAlign: 'center',
}}
/>
))}
)}
{pictureWords.length === 0 && pendingWords.length === 0 && (
Noch keine Words
)}