UNPKG

@aller/blink

Version:

A library for tracking user behaviour.

108 lines (103 loc) 2.15 kB
import { AD_SCREEN_ENTER, AD_SCREEN_EXIT, ARTICLE_PREVIEW_SCREEN_ENTER, ARTICLE_PREVIEW_SCREEN_EXIT, AD_SCREEN_ENTER_0, AD_SCREEN_EXIT_0, PAGE_INIT, BOX_SCREEN_ENTER, BOX_SCREEN_EXIT, } from '../actions'; function inscreen(state = [], action: any) { switch (action.type) { case AD_SCREEN_ENTER: case ARTICLE_PREVIEW_SCREEN_ENTER: case BOX_SCREEN_ENTER: return [ ...state, { type: 'start', time: action.payload.time || new Date(), }, ]; case AD_SCREEN_EXIT: case ARTICLE_PREVIEW_SCREEN_EXIT: case BOX_SCREEN_EXIT: return [ ...state, { type: 'stop', time: action.payload.time || new Date(), }, ]; default: break; } return state; } export function inscreen0(state = [], action: any) { switch (action.type) { case AD_SCREEN_ENTER_0: return [ ...state, { type: 'start', time: action.payload.time || new Date(), }, ]; case AD_SCREEN_EXIT_0: return [ ...state, { type: 'stop', time: action.payload.time || new Date(), }, ]; default: break; } return state; } export function inscreenReducer( state: { [key: string]: any } = {}, action: any, ) { switch (action.type) { case PAGE_INIT: return {}; case AD_SCREEN_ENTER: case AD_SCREEN_EXIT: case ARTICLE_PREVIEW_SCREEN_ENTER: case ARTICLE_PREVIEW_SCREEN_EXIT: case BOX_SCREEN_ENTER: case BOX_SCREEN_EXIT: { return { ...state, [action.payload.id]: inscreen(state[action.payload.id], action), }; } default: break; } return state; } export function inscreenReducer0( state: { [key: string]: any } = {}, action: any, ) { switch (action.type) { case PAGE_INIT: return {}; case AD_SCREEN_ENTER_0: case AD_SCREEN_EXIT_0: { return { ...state, [action.payload.id]: inscreen0(state[action.payload.id], action), }; } default: break; } return state; }