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