En utilisant cycle.js et xstream, je voudrais compter les clics sur les boutons et les réinitialiser.Suppression d'un clic sur un bouton jusqu'à ce que l'événement de dernière réinitialisation ne fonctionne pas
Je prévoyais d'y parvenir en comptant tous les clics sur les boutons après la dernière réinitialisation. Pour ce faire, j'ai pensé à supprimer tous les clics sur les boutons jusqu'à la dernière réinitialisation, et compter ce qui reste.
Cependant, je suis parti avec 2 boutons qui ne fonctionnent pas
Un conseil?
function main(sources: ISources): ISinks {
const dom = sources.dom;
const resetClick$ = dom.select("#resetButton")
.events("click")
.map(ev => 0)
.startWith(0)
const button1Click$ = dom.select("#button1")
.events("click")
.compose(dropUntil(resetClick$.last()))
.map(ev => 1)
.fold((acc, n) => acc + n, 0)
.startWith(0)
const button2Click$ = dom.select("#button2")
.events("click")
.compose(dropUntil(resetClick$.last()))
.map(ev => 1)
.fold((acc, n) => acc + n, 0)
.startWith(0)
const vtree$ = Stream.combine(button1Click$, button2Click$)
.map(n =>
div([
input("#button1", { attrs: { type: "button", value: "Click Me!"}}),
input("#button2", { attrs: { type: "button", value: "Click Me!"}}),
input("#resetButton", { attrs: { type: "button", value: "Reset!"}}),
p(["Clicks: " + n[0] + " + " + n[1]]),
p(["Click total: " + (n[0] + n[1])])
])
)
const sinks: ISinks = {
dom: vtree$
};
return sinks;
}