UNPKG

@aller/blink

Version:

A library for tracking user behaviour.

69 lines 2.45 kB
"use strict"; 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); }; var __spreadArrays = (this && this.__spreadArrays) || function () { for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length; for (var r = Array(s), k = 0, i = 0; i < il; i++) for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) r[k] = a[j]; return r; }; 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 __spreadArrays(state, [ { 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 __spreadArrays(state, [ { type: 'stop', time: action.payload.time || new Date(), }, ]); default: 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(__assign({}, state), (_a = {}, _a[action.payload.id] = { activity: activity(actState, action), url: action.payload.url, id: action.payload.id, }, _a)); } default: return state; } } exports.default = activeTime; //# sourceMappingURL=active-time.js.map