Why Gemfury? Push, build, and install  RubyGems npm packages Python packages Maven artifacts PHP packages Go Modules Debian packages RPM packages NuGet packages

Repository URL to install this package:

Details    
@doodle/tracking / src / helpers / getTrackingClickChannel.js
Size: Mime:
import getTrackingClickHandler from './getTrackingClickHandler';

/**
 * Helper function to create an eventChannel that listens and reacts to click events in sagas.
 * https://redux-saga.js.org/docs/advanced/Channels.html For implementation details.
 * @param {Function} eventChannel provided by redux-saga
 * @return {Function} serves as channel for the click events
 */
const getTrackingClickChannel = eventChannel => {
  const trackingClickChannel = eventChannel(emit => {
    if (typeof document === 'undefined') {
      return () => {};
    }

    const trackingClickHandler = getTrackingClickHandler(emit);

    document.body.addEventListener('click', trackingClickHandler);
    return () => document.body.removeEventListener('click', trackingClickHandler);
  });
  return trackingClickChannel;
};

export default getTrackingClickChannel;