0.0.1 • Published 3 years ago

@blackbox-vision/react-native-analytics v0.0.1

Weekly downloads
-
License
MIT
Repository
-
Last release
3 years ago

RN Analytics License: MIT

This package let us use Firebase Analytics to log events and track views.

Install

You can install this library via NPM or YARN.

NPM

npm i @blackbox-vision/react-native-babel-preset

YARN

yarn add @blackbox-vision/react-native-babel-preset

Use case

This library let us solve 2 use cases:

Usage

Log events

import * as analytics from "@blackbox-vision/react-native-analytics";

const handleAction = async () => {
  await analytics.logEvent("custom-event", {
    // info associated to custom event
  });
};

Log screen views

import { useRef } from "react";
import { NavigationContainer } from "@react-navigation/native";

import * as analytics from "@blackbox-vision/react-native-analytics";

export default () => {
  const navigationRef = useRef();
  const routeNameRef = useRef();

  return (
    <NavigationContainer
      ref={navigationRef}
      onReady={() => {
        routeNameRef.current = navigationRef.current.getCurrentRoute().name;
      }}
      onStateChange={async () => {
        const currentRouteName = navigationRef.current.getCurrentRoute().name;

        await analytics.logScreenView(routeNameRef.current, currentRouteName);

        // Save the current route name for later comparison
        routeNameRef.current = currentRouteName;
      }}
    >
      {/* ... */}
    </NavigationContainer>
  );
};

API

logEvent(name, info?, options?)

This function returns a Promise that is fulfilled when the log has sent.

name

Type: String

The name of the event.

info

Type: Object

An object with properties associated to the event

options

Type: Object

Receives an object to handle retrial logic:

  • retries: Number - The number of max retries.
  • onFailedAttempt(error): Function - A callback to notice if a retrial has an error.

logScreenView(previousRouteName, currentRouteName, options?)

This function returns a Promise that is fulfilled when the log has sent.

previousRouteName

Type: String

Receives the name of the previous screen.

currentRouteName

Type: Object

Receives the name of the current screen.

options

Type: Object

Receives an object to handle retrial logic:

  • retries: Number - The number of max retries.
  • onFailedAttempt(error): Function - A callback to notice if a retrial has an error.

Issues

Please, open an issue following one of the issues templates. We will do our best to fix them.

Contributing

If you want to contribute to this project see contributing for more information.

License

Distributed under the MIT license. See LICENSE for more information.