From 38c8a3ad5dd9b39fe03c1cdcd1f64ea9d0fc42d2 Mon Sep 17 00:00:00 2001 From: s-ol Date: Tue, 13 Nov 2018 19:32:47 +1100 Subject: only pre-compile moonscript if no Lua variant available --- .../todoMVC/text$lua -> mmm$component.lua | 45 ++++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 root/meta/mmm.component/todoMVC/text$lua -> mmm$component.lua (limited to 'root/meta/mmm.component/todoMVC/text$lua -> mmm$component.lua') diff --git a/root/meta/mmm.component/todoMVC/text$lua -> mmm$component.lua b/root/meta/mmm.component/todoMVC/text$lua -> mmm$component.lua new file mode 100644 index 0000000..04dae47 --- /dev/null +++ b/root/meta/mmm.component/todoMVC/text$lua -> mmm$component.lua @@ -0,0 +1,45 @@ +local component = require 'mmm.component' +local ReactiveVar, text, e = component.ReactiveVar, component.text, component.elements + +local parent = e.div() +local function todoItem(desc, done) + -- convert into reactive data sources + local desc, done = ReactiveVar(desc), ReactiveVar(done) + local me = e.div{ + style = { + margin = '8px', + padding = '8px', + background = '#eeeeee', + }, + e.h3{ desc:map(text), style = 'margin: 0;' }, + e.span(done:map(function (done) + if done then + return text 'done' + else + return text 'not done yet' + end + end)), + e.input{ type = 'checkbox', checked = done, onchange = function(_, e) done:set(e.target.checked) end }, + e.a{ text 'delete', href = '#', onclick = function() parent:remove(me) end } + } + return me +end + +parent:append(todoItem('write a Component System', true)) +parent:append(todoItem('eat Lasagna', true)) +parent:append(todoItem('do other things')) + +local desc = ReactiveVar 'start' +local form = e.form{ + action = '', + style = { margin = '2px' }, + onsubmit = function(_, e) + e:preventDefault() + parent:append(todoItem(desc:get())) + desc:set '' + end, +} +form:append(e.input{ type = 'text', value = desc, onchange = function(_, e) desc:set(e.target.value) end }) +form:append(e.input{ type = 'submit', value = 'add' }) + +return e.article(parent, form) -- cgit v1.2.3