aboutsummaryrefslogtreecommitdiffstats
path: root/root/meta/mmm.component/todoMVC/text$moonscript -> mmm$component.moon
blob: dc4e5e16d0ad471a123e3a0a7b3ee464e6fadb40 (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
32
33
34
import ReactiveVar, text, elements from require 'mmm.component'
import article, div, form, span, h3, a, input from elements

parent = div!
todoItem = (desc, done) ->
  -- convert into reactive data sources
  desc, done = (ReactiveVar desc), ReactiveVar done
  with me = div style:
      margin: '8px'
      padding: '8px'
      background: '#eeeeee'
    \append h3 (desc\map text), style: 'margin: 0;'
    \append span done\map (done) -> text if done then 'done' else 'not done yet'
    \append input type: 'checkbox', checked: done, onchange: (e) => done\set e.target.checked
    \append a (text 'delete'), href: '#', onclick: (e) => parent\remove me

parent\append todoItem 'write a Component System', true
parent\append todoItem 'eat Lasagna', true
parent\append todoItem 'do other things'

desc = ReactiveVar 'start'
form = with form {
    action: ''
    style:
      margin: '2px'
    onsubmit: (e) =>
      e\preventDefault!
      parent\append todoItem desc\get!
      desc\set ''
  }
  \append input type: 'text', value: desc, onchange: (e) => desc\set e.target.value
  \append input type: 'submit', value: 'add'

article parent, form