Slide 93
Slide 93 text
import xs from 'xstream'
import Cycle from '@cycle/xstream-run'
import {div, button, p, makeDOMDriver} from '@cycle/dom'
function main(sources) {
let dec$ = sources.DOM.select('.dec').events('click').mapTo(-1);
let inc$ = sources.DOM.select('.inc').events('click').mapTo(+1);
let action$ = xs.merge(inc$, dec$);
let count$ = action$.fold((x,y) => x + y, 0);
let vdom$ = count$.map(count =>
div([
button('.dec', 'Decrement'),
button('.inc', 'Increment'),
p(`Counter: ${count}`)
])
);
let sinks = { DOM: vdom$ };
return sinks;
}
Cycle.run(main, {
DOM: makeDOMDriver('#main-container')
});