@aller/blink
Version:
A library for tracking user behaviour.
64 lines • 2.12 kB
JavaScript
var __assign = (this && this.__assign) || function () {
__assign = Object.assign || function(t) {
for (var s, i = 1, n = arguments.length; i < n; i++) {
s = arguments[i];
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
t[p] = s[p];
}
return t;
};
return __assign.apply(this, arguments);
};
Object.defineProperty(exports, "__esModule", { value: true });
var actions_1 = require("../actions");
function activity(state, action) {
if (state === void 0) { state = []; }
switch (action.type) {
case actions_1.ARTICLE_ACTIVITY_START:
return state.concat([
{
type: 'start',
time: action.payload.time || new Date(),
},
]);
case actions_1.ARTICLE_ACTIVITY_STOP:
// don't add anything if last thing we added was a stop event
if (state.length > 0 && state[state.length - 1].type === 'stop') {
return state;
}
return state.concat([
{
type: 'stop',
time: action.payload.time || new Date(),
},
]);
default:
break;
}
return state;
}
function activeTime(state, action) {
var _a;
if (state === void 0) { state = {}; }
switch (action.type) {
case actions_1.PAGE_INIT:
return {}; // Flush the store on pageInit
case actions_1.ARTICLE_ACTIVITY_START:
case actions_1.ARTICLE_ACTIVITY_STOP: {
var actState = state[action.payload.id]
? state[action.payload.id].activity
: [];
return __assign({}, state, (_a = {}, _a[action.payload.id] = {
activity: activity(actState, action),
url: action.payload.url,
id: action.payload.id,
}, _a));
}
default:
break;
}
return state;
}
exports.default = activeTime;
//# sourceMappingURL=active-time.js.map
;