diff options
Diffstat (limited to 'src/main.ts')
-rw-r--r-- | src/main.ts | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/src/main.ts b/src/main.ts index aecb754..bba799e 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,4 +1,31 @@ -import * as form from 'view/form' -import * as dom from 'lib/dom' +import { h, withVar, mount } from 'lib/rx' +import * as Form from 'view/form' +import * as Play from 'view/play' +import * as Options from 'view/options' -dom.show(form.view()) +enum Page { + Form, + Play +} + +mount( + withVar(Page.Form, (page, updatePage) => [ + h('header', + { onclick: () => updatePage(_ => Page.Form) }, + 'Chords' + ), + page.map(p => + p === Page.Form + ? Form.view({ + options: Options.load(), + onSubmit: (options: Options.Model) => { + Options.save(options) + updatePage(_ => Page.Play) + } + }) + : Play.view({ + options: Options.load() + }) + ) + ]) +) |