npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

rooker

v1.0.2

Published

A HOC for Google Analytics

Downloads

5

Readme

Rooker

Rooker is a lightweight Google Analytics wrapper for React components. Quickly configure and set up event handlers with ease. Rooker intelligently maps your DOM elements with generic or custom click event handlers through simple JSON configuration to keep your GA setup simple and organized.

Installation

npm install rooker --save

Usage / Example

Rooker is completely opt-in. You can wrap your entire React application with Rooker to add event handlers throughout your entire app, or simply wrap a single component and separate concerns.

  1. import { Rooker } from './Rooker';
  2. Write your configuration to include the elements you want to track (see config options below).
  3. Wrap your configuration in Rooker with your component.
import React, { Component } from 'react';
import { Rooker } from './Rooker';

const config = {
	defaults: {
		category : 'My Event',
		action   : 'Click',
		label    : 'My Campaign',
	},
	ua    : 'UA-55555555-4',
	host  : 'none',
	track : [
		'.trackMe',
		'#trackMeToo',
		{
			target   : 'span',
			category : 'SpanClicks',
			action   : 'click',
			label    : 'CustomSpanClickEvent'
		}
	]
}

class App extends Component {
  render() {
    return (
      <div className="App">
        <header className="App-header">
            <h3>My App</h3>
        </header>
		<button className='trackMe'>Track My Clicks!</button>
        <a href='/' id='trackMeToo'>Track My Clicks Too!</a>
        <span>Track My Clicks</span>
        <span>Track My Clicks</span>
        <span>Track My Clicks</span>
      </div>
    );
  }
}

export default Rooker(config, App);

Configuration Options

  1. defaults - Set default event configuration. If you want to reuse the same event across your entire configuration, or set a default event, use this.
  2. ua - Your Google Analytics ID. This is only necessary if you haven't globally configured Google Analytics in your app.
  3. host - Your Google Analytics host. This is only necessary if you haven't globally configured Google Analytics in your app.
  4. track - A smart array of strings or objects that you want to add click event trackers to. You can use any combination or strings or objects.
    • Generic DOM elements can be represented as lower case strings: e.g. 'button', 'span', 'div', 'a', etc. These elements will be represented in Google Analytics by the settings in defaults.
    • Objects have the following properties and add more specific event tracking descriptions:
    config: {
      track: [
        {
          target   : '#customId',
          category : 'Custom Category',
          action   : 'click',
          label    : 'CustomLabel'
        }
      ]
    }
Complete config example:
const config = {
	defaults: {
		category : 'My Event',
		action   : 'Click',
		label    : 'My Campaign',
	},
	ua    : 'UA-55555555-4',
	host  : 'none',
	track : [
		'.trackMe',
		'#trackMeToo',
		{
			target   : 'span',
			category : 'SpanClicks',
			action   : 'click',
			label    : 'CustomSpanClickEvent'
		}
	]
}

TODO

  • Add Testing
  • Extend event functionality beyond clicks

License

ISC