UNPKG

@aller/blink

Version:

A library for tracking user behaviour.

59 lines (56 loc) 1.5 kB
import { VERSION } from '../config/config'; import generateUUID from '../utils/uuid'; import { PAGE_LOAD, PAGE_INIT, ARTICLE_ACTIVITY_START } from '../actions'; export interface GeneralState { abCookie?: number; cmId?: string; maxScroll?: number; pageType?: string; pageView?: string; plussData?: { hasAccess: boolean; customerNumber: string; }; previousPageView?: string; referrer?: string; site?: string; url?: string; userId?: string; version?: string; } export default function general(state: GeneralState = {}, action: any) { switch (action.type) { case PAGE_INIT: { return { ...state, abCookie: action.payload.abCookie, commercialSegments: action.payload.commercialSegments || '', pageType: action.payload.pageType || '', pageView: action.payload.pageView || generateUUID(), previousPageView: action.payload.previousPageView || state.pageView || undefined, referrer: action.payload.referrer || undefined, site: action.payload.site, url: action.payload.url, userId: action.payload.userId, version: VERSION, }; } case PAGE_LOAD: { return { ...state, cmId: action.payload.cmId, plussData: action.payload.plussData, }; } case ARTICLE_ACTIVITY_START: { return { ...state, maxScroll: action.payload.maxScroll, }; } default: break; } return state; }