UNPKG

@aller/blink

Version:

A library for tracking user behaviour.

64 lines 2.12 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); }; 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