Redux Beacon
  • Introduction
  • Getting Started (Redux)
  • Getting Started (ngrx)
  • Examples & Recipes
  • Targets
    • GoogleAnalytics
    • GoogleAnalyticsGtag
    • GoogleTagManager
    • Segment
    • Amplitude
    • React Native: GoogleAnalytics
    • React Native: GoogleTagManager
    • React Native: Segment
  • API Reference
    • createMiddleware
    • createMetaReducer
    • EventDefinition
    • EventsMap
    • EventsMapper
  • Extensions
    • logger
    • OfflineWeb
    • OfflineReactNative
  • Utils
    • debounceEvent
    • ensure
    • combineEvents
  • FAQ
  • Migration Guide (v1 to v2)
  • Notes on Offline Events
Powered by GitBook
On this page
  • Import
  • Syntax
  • Parameters
  • Example
  1. Utils

debounceEvent

If you have an event definition tied to a Redux action that fires too frequently, you can use this util to limit the frequency of analytics events (e.g. form input).

Import

import debounceEvent from '@redux-beacon/debounce-event';

Syntax

debounceEvent(msDelay, eventDef)

Parameters

  • msDelay: number

    • The time in milliseconds that needs to elapse between event definition calls

      before the analytics event is dispatched to a target.

  • eventDef: EventDefinition

    • The event you want to debounce.

Example

import debounceEvent from '@redux-beacon/debounce-event';

// A normal event definition
const searchTerm = (action) => ({
  hitType: 'event',
  eventCategory: 'books',
  eventAction: 'search',
  eventLabel: action.payload
});

const eventsMap = {
  // Assume that SEARCH_TERM_ENTERED fires whenever a user types a character into
  // an input field.
  SEARCH_TERM_ENTERED: debounceEvent(1000, searchTerm)
  // The analytics event will only fire after 1s since the last entered character
};

// provide the events map when creating your middleware or meta reducer...
PreviousUtilsNextensure

Last updated 7 years ago