const choo = require('../../') const html = require('../../html') const app = choo() app.model({ state: { counter: 0 }, reducers: { increment: (data, state) => ({ counter: state.counter + 1 }), decrement: (data, state) => ({ counter: state.counter - 1 }) }, effects: { incrementAsync: function (data, state, send, done) { setTimeout(() => send('increment', done), 1000) }, decrementAsync: function (data, state, send, done) { setTimeout(() => send('decrement', done), 1000) } } }) const mainView = (state, prev, send) => { return html` Async counter Clicked ${state.counter} times! send('increment')}>Increment send('decrement')}>Decrement send('incrementAsync')}>Increment async send('decrementAsync')}>Decrement async ` } app.router((route) => [ route('/', mainView) ]) const tree = app.start() document.body.appendChild(tree)
Clicked ${state.counter} times!