Usage with Hyperapp
We delete the view property because tint will automatically generate it
based on the node that is passed to the app.
We've also introduced an actions object for your static methods and an
optional template property when the node is rendered from a template.
Everything else is exactly equals on hyperapp.
Here is the thread that gave rise to this wrapper.
TODO app sample
<html>
<head>
<script type="module">
import app from "https://cdn.jsdelivr.net/gh/marcodpt/tint/hyperapp.js"
app({
actions: {
AddTodo: state => ({
...state,
value: "",
todos: state.todos.concat(state.value),
}),
NewValue: (state, event) => ({
...state,
value: event.target.value,
})
},
init: {
todos: [],
value: ""
},
node: document.getElementById("app")
})
</script>
</head>
<body>
<main id="app">
<h1>To do list</h1>
<input type="text" value:="value" oninput:="NewValue">
<ul>
<li each:="todos" text:></li>
</ul>
<button onclick:="AddTodo">New!</button>
</main>
</body>
</html>