diff options
| author | Brian Cully <bjc@spork.org> | 2025-05-12 09:52:18 -0400 |
|---|---|---|
| committer | Brian Cully <bjc@spork.org> | 2025-05-12 09:52:18 -0400 |
| commit | 9353c94aedf64384afdcef3bc9cffbcc6e348d73 (patch) | |
| tree | 44bd1d274859dfea8df5a95aba45b630d80d9e12 /main.mjs | |
| parent | 6ca6c457227b2cb46ae45b4990b60d06ca33589e (diff) | |
| download | chords-9353c94aedf64384afdcef3bc9cffbcc6e348d73.tar.gz chords-9353c94aedf64384afdcef3bc9cffbcc6e348d73.zip | |
convert to web components
one less thing to hard-code: element ids, which were brittle already.
Diffstat (limited to 'main.mjs')
| -rw-r--r-- | main.mjs | 29 |
1 files changed, 18 insertions, 11 deletions
@@ -2,25 +2,32 @@ import Fretboard, { fretToNote } from './fretboard.mjs'; import KeyPicker from './key-picker.mjs'; import History from './history.mjs'; +function memoize(fn) { + let val = undefined; + return function () { + if (val === undefined) { + val = fn(); + } + return val; + } +} + function notes(form) { const strings = ['string1', 'string2', 'string3', 'string4', 'string5', 'string6']; const formData = new FormData(form); - console.log('notes', form, formData); + console.debug('notes', form, formData); return strings.map((klass) => fretToNote(form, klass, formData.get(klass))); } function onSave(form) { - console.log('we done saved', form, notes(form)); + console.debug('we done saved', form, notes(form)); } +function init() { + console.debug('App#init', this); -function main() { - const fretboard = document.getElementById('fretboard'); - const keyPicker = document.getElementById('key-picker'); - const history = document.getElementById('history'); - - Fretboard(fretboard, { onSave }); - KeyPicker(keyPicker); - History(history, keyPicker); + Fretboard.register(); + KeyPicker.register(); + History.register(); } -document.addEventListener('DOMContentLoaded', main); +document.addEventListener('DOMContentLoaded', init); |
