summaryrefslogtreecommitdiffstats
path: root/main.mjs
diff options
context:
space:
mode:
authorBrian Cully <bjc@spork.org>2025-05-12 09:52:18 -0400
committerBrian Cully <bjc@spork.org>2025-05-12 09:52:18 -0400
commit9353c94aedf64384afdcef3bc9cffbcc6e348d73 (patch)
tree44bd1d274859dfea8df5a95aba45b630d80d9e12 /main.mjs
parent6ca6c457227b2cb46ae45b4990b60d06ca33589e (diff)
downloadchords-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.mjs29
1 files changed, 18 insertions, 11 deletions
diff --git a/main.mjs b/main.mjs
index 3054208..f0e4ed8 100644
--- a/main.mjs
+++ b/main.mjs
@@ -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);