npm stats
  • Search
  • About
  • Repo
  • Sponsor
  • more
    • Search
    • About
    • Repo
    • Sponsor

Made by Antonio Ramirez

@exodus/heat-map-view

1.0.14

@alex.alexandrius

npmHomeRepoSnykSocket
Downloads:49060
$ npm install @exodus/heat-map-view
DailyWeeklyMonthlyYearly

Heat Map View

Heat Map View logo

Heat up performance offenders! 🔥


HeatMapView helps us detect frequently re-rendered views without having phone connected to computer at all times. A significant portion of React performance issues are caused by unnecessary re-renders. This library enables us to observe components which are re-rendered too frequently in real time.

Installation

yarn add @exodus/heat-map-view

Usage

Import initHeatMapView

import { initHeatMapView } from '@exodus/heat-map-view'

Initialize it in App.js

useEffect(
  () => {
    if (ready) {
      if (__DEV__) {
        initHeatMapView({
          enabled: true,
          divisor: 20,
          dynamicOpacity: false, 
          overlayStyle: {
            borderWidth: 1,
            borderColor: 'white',
          },

          surface: 'floor',
          skipInstances: 1,
          opacity: 0.5,
        })
      }
    }
  },
  [ready]
)

Config

PropDefaultParams TypeDescription
divisor30numberRender count divisor. Heat is calculated by renderCount / divisor = [0-1]. 0 - Blue, 1 - Red.
dynamicOpacityfalsebooleanHeat makes view less transparent. If enabled 0 - Fully transparent, 1 - Fully opaque.
opacity0.5numberHeatMap overlay opacity. Disabled if dynamicOpacity === true
minHeat0numberMinimum heat value to be visible.
maxHeat-1numberMaximum heat value to be visible. -1 equals infinity.
overlayStyle{}objectCustom overlay style.
surface'floor''floor'|'ceiling'Should heatmap draw on top or bottom of the component.
skipInstances2numberSkips initial number view instances.

Disable/Enable HeatMapView in runtime

import {
  initHeatMapView, // Initializes and enables HeatMapView
  installHeatMapView, // Enables HeatMapView
  uninstallHeatMapView, // Disables HeatMapView
  isHeatMapViewInstalled, // Check if HeatMapView is enabled
} from '@exodus/heat-map-view'

Create Heat Map toggler

const styles = StyleSheet.create({
  heatMapViewEmergency: {
    position: 'absolute',
    height: 30,
    width: 50,
    backgroundColor: 'transparent',
    left: dimensionsWidth / 2 - 25,
    top: getStatusBarHeight(),
  },
})

function HeatMapViewToggle() {
  return (
    <TouchableOpacity
      style={styles.heatMapViewEmergency}
      onPress={() => {
        if (isHeatMapViewInstalled()) {
          uninstallHeatMapView()
        } else {
          installHeatMapView()
        }
      }}
    />
  )
}

Roadmap

  • Dynamic heat style provider
  • Heat by velocity (Friction)
  • Include example