Auswahlen
{currentSelections.length > 0 && {currentSelections.length}}
{currentSelections.length === 0
?
Noch keine Auswahlen
: currentSelections.map((sel, i) => (
{i + 1}
{sel.mode === 'rect' ? 'Rect' : 'Poly'}
{sel.mode === 'rect' && sel.bbox
? `${Math.round(sel.bbox.width)}×${Math.round(sel.bbox.height)}`
: `${sel.polygon?.length ?? 0} Pkt.`}
))}
{statusMsg &&
{statusMsg}
}
Wörter
{selectedObjectId
? ` (Objekt ${objects.findIndex(o => o.id === selectedObjectId) + 1})`
: ' (neues Objekt)'}
{/* Existing word chips for selected object */}
{selectedObjectId && (
{(objectWords[selectedObjectId] || []).map(w => (
{w.titel_de}
))}
{(objectWords[selectedObjectId] || []).length === 0 && (
Noch keine Wörter
)}
)}
{/* Pending words for new object */}
{!selectedObjectId && pendingWords.length > 0 && (
{pendingWords.map((w, i) => (
{w}
))}
)}
{/* Add word input */}
selectedObjectId
? setWordInputs(prev => ({ ...prev, [selectedObjectId]: e.target.value }))
: setNewWordInput(e.target.value)}
onKeyDown={e => {
if (e.key === 'Enter') selectedObjectId ? handleAddObjectWord(selectedObjectId) : handleAddPendingWord()
}}
placeholder="Wort hinzufügen…"
style={{ flex:1, padding:'4px 8px', borderRadius:'var(--r-sm)', border:'1px solid var(--border)', background:'var(--surface-2)', color:'var(--text-1)', fontFamily:'var(--font)', fontSize:12 }}
/>