aboutsummaryrefslogtreecommitdiff
path: root/src/main.ts
blob: bba799e928e7595243af57085591b989f67a30b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
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'

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()
        })
    )
  ])
)