JSFiddle - React, Tailwind, and code Playground

by vikikamath

HTML

<script src="//cdnjs.cloudflare.com/ajax/libs/bacon.js/0.7.49/Bacon.min.js"></script>

JavaScript

var currVal, prevVal;

var computeScreenId = function(){
    var now = new Date()
    prevVal = currVal // update state of screenId
    currVal = now.getTime()
    return {
        "type": "screenLoaded",
        "currVal": currVal,
        "prevVal": prevVal
    }
}

Bacon.fromArray([{
    type: 'ready'
}, {
    type: 'action'
}, {
    type: 'ready'
}, {
    type: 'ready'
}, {
    type: 'ready'
}, {
    type: 'action'
}, {
    type: 'ready'
}, {
    type: 'ready'
}]) // analyticsStream.plug(hashchangeStream)
.map(function (e) {
    if (e.type === 'ready') { // send screenLoaded event
        return computeScreenId();
    } else { // return action event
        e['currVal'] = currVal
        e['prevVal'] = prevVal
        return e;
    }

})
.log()
//.log()