UNPKG

@aller/blink

Version:

A library for tracking user behaviour.

66 lines (63 loc) 1.88 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; clientHeight?: string; clientWidth?: string; pageType?: string; pageView?: string; plussData?: { hasAccess: boolean; customerNumber: string; }; previousPageView?: string; referrer?: string; site?: string; scrollHeight?: number; pageScrollMaxOffsetY?: number; pageScrollLatestOffsetY?: number; url?: string; version?: string; } export default function general(state: GeneralState = {}, action: any) { switch (action.type) { case PAGE_INIT: { return { ...state, abCookie: action.payload.abCookie, customUserAgent: action.payload.customUserAgent, 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, version: VERSION, }; } case PAGE_LOAD: { return { ...state, clientHeight: action.payload.clientHeight, clientWidth: action.payload.clientWidth, scrollHeight: action.payload.scrollHeight, plussData: action.payload.plussData, }; } case ARTICLE_ACTIVITY_START: { return { ...state, pageScrollMaxOffsetY: Math.max( action.payload.pageScrollOffsetY || 0, state.pageScrollMaxOffsetY || 0, ), pageScrollLatestOffsetY: action.payload.pageScrollOffsetY || 0, }; } default: return state; } }