diff options
Diffstat (limited to 'client/lib/scales.js')
| -rw-r--r-- | client/lib/scales.js | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/client/lib/scales.js b/client/lib/scales.js index 1462504..fd7b5a7 100644 --- a/client/lib/scales.js +++ b/client/lib/scales.js @@ -120,6 +120,7 @@ const scales = [ ].map( (opt) => new Intonation(opt) ) let scale = scales[0] +let handleChange = function(){} function build () { scales.forEach( (scale, i) => { @@ -127,24 +128,30 @@ function build () { scale.heading.innerHTML = scale.name scale.heading.classList.add('heading') scale.heading.addEventListener('click', function(){ - set_scale(i) + pick(i) }) scale_list.appendChild(scale.heading) }) - set_scale(0) + pick(0) } -function set_scale (i){ +function pick (i){ if (scale) { scale.heading.classList.remove('selected') } scale = scales[i] scale.heading.classList.add('selected') + handleChange(scale) } function current () { return scale } -export default { scales, current, build } +function onChange (fn) { + handleChange = fn +} + + +export default { scales, current, build, pick, onChange } |
