import React from 'react' const KEY_NAMES = ['C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#', 'A', 'A#', 'B'] function transposeNote(note, semitones) { if (!note || semitones === 0) return note const idx = KEY_NAMES.indexOf(note) if (idx === -1) return note return KEY_NAMES[(idx + semitones + 120) % 12] } function ScalesDisplay({ scales, semitones = 0 }) { if (!scales || scales.length === 0) return null return (

Suggested Scales

{scales.map((scale, i) => { const parts = scale.name.split(' ') const scaleRoot = parts[0] const scaleSuffix = parts.slice(1).join(' ') const transposedRoot = transposeNote(scaleRoot, semitones) const transposedNotes = scale.notes.map(n => transposeNote(n, semitones)) return (
{/* Header row */}
{transposedRoot} {scaleSuffix} {scale.guitar_friendly && ( guitar )} {i === 0 && ( Best fit )}
{/* Note chips */}
{transposedNotes.map((note, j) => ( {note} ))}
) })}
) } export default React.memo(ScalesDisplay)