2.4.3 • Published 9 months ago

@hopara/react v2.4.3

Weekly downloads
-
License
UNLICENSED
Repository
github
Last release
9 months ago

@hopara/react

This package provides a react component to add Hopara visualizations to your project.

Requirements

The Hopara component is built on top of React.

Installing

Package manager

Using npm:

$ npm install --save @hopara/react

Using yarn:

$ yarn add @hopara/react

Once installed, you can import the library using import or require:

import {Hopara} from '@hopara/react';

Authentication

The component requires a valid accessToken. Use the Auth API to fetch it, as explained in our integration guide(https://docs.hopara.app/#/docs/integration-guide/2-authentication-integration.html)

Examples

Basic usage

<div className="HoparaEmbedded">
  <Hopara
    visualizationId="your-visualization-id"
    accessToken="your-access-token"
  />
</div>

Module API

You can further customize the integration by using the component props:

type HoparaProps = {
  // The visualization id
  visualizationId: string

  // Short-lived token provided by Auth API used for authentication in API calls
  accessToken: string

  // Long-lived token used to obtain a new accessToken when the current one expires.
  refreshToken: string | undefined

  // Switch the theme mode to dark scheme (default: false)
  darkMode: boolean | undefined

  // Overwrites data at rendering time
  dataLoaders: DataLoader[] | undefined

  // The initial row (e.g. asset) to load the visualization
  initialRow: InitialRow | undefined

  // The custom controller to be used on Hopara Visualization
  controller: HoparaController | undefined

  // The filters to be added on data fetches
  filters: Filter[] | undefined

  // Functions called when callback actions are triggered
  callbacks: CallbackFunction[]
}

Controller

You can provide a Hopara Controller to manually trigger a data refresh (i.e. fetch all data again).

Example

import {Hopara, HoparaController} from '@hopara/react'
const customController = new HoparaController()

<div className="HoparaEmbedded">
  <Hopara
    visualizationId="your-visualization-id"
    accessToken="your-access-token"
    controller={customController}
  />
</div>

Data Loader

By default Hopara will load the same visualization and data as seen as in hopara.app. You can use the data loader prop to provide a custom way to load the data.

type DataLoader = {
  // query name
  query: string

  // data source name
  source: string

  // callback to be used on data load
  loader: (filterSet: {limit: number, offset:number, filters: any[]}) => Promise<Record<string, any>[]>
}

Example

const dataLoaders = [{
  query: 'queryName',
  source: 'dataSourceName',
  loader: async () => {
    return [
      {
        id: 1,
        name: 'Eiffel Tower',
        country: 'France',
        longitude: 48.85845461500544,
        latitude: 2.294467845588995
      },
      {
        id: 2,
        name: 'Liberty Statue',
        country: 'USA',
        longitude: 40.68815550804761,
        latitude: -74.02620077137483
      },
      {
        id: 3,
        name: 'Great Wall of China',
        country: 'China',
        longitude: 40.43211592595951,
        latitude: 116.57040708445938,
      }
    ]
  }
}]
...
<div className="HoparaEmbedded">
  <Hopara
    visualizationId="your-visualization-id"
    accessToken="your-access-token"
    dataLoaders={dataLoaders}
  />

Initial Row

The initial row prop centers the visualization around a specific row (e.g. asset, facility).

type InitialRow = {
  layerId: string
  rowId: string
}

Filter

When adding a filter, the field name is handled as a dimension in Hopara.

Hopara.init({
  visualizationId: 'my-hopara-viz',
  accessToken: 'my-hopara-token',
  targetElementId: 'my-target-element',
  filters: [
    {
      field: 'type',
      values: ['REFRIGERATOR', 'FREEZER'],
    }
  ],
})

Callback Function

You can implement custom interactions by adding callback actions to a layer. When the user selects an object in the visualization and click on the action the registered javascript function will be called with the associated row data.

type CallbackFunction = {
  name: string
  callback: (row) => void
}
Hopara.init({
  visualizationId: 'my-hopara-viz',
  accessToken: 'my-hopara-token',
  targetElementId: 'my-target-element',
  callbacks: [
    {
      name: 'my-callback-action',
      callback: (row) => {
        console.log('Callback triggered', row)
      }
    }
  ],
})
2.2.14-b

1 year ago

2.3.28

11 months ago

2.3.27

11 months ago

2.4.1

9 months ago

2.4.0

9 months ago

2.3.29

10 months ago

2.4.3

9 months ago

2.3.24

11 months ago

2.4.2

9 months ago

2.3.26

11 months ago

2.3.25

11 months ago

2.3.20

12 months ago

2.3.22

12 months ago

2.2.14-a

1 year ago

2.3.31

10 months ago

2.3.30

10 months ago

2.3.33

10 months ago

2.3.32

10 months ago

2.3.0

1 year ago

2.3.2

1 year ago

2.3.1

1 year ago

2.3.4

1 year ago

2.3.3

1 year ago

2.3.6

1 year ago

2.3.5

1 year ago

2.3.8

1 year ago

2.3.7

1 year ago

2.3.9

1 year ago

2.2.20-a

1 year ago

2.2.20-b

1 year ago

2.3.22-a

12 months ago

2.3.11-a

1 year ago

2.3.11-b

1 year ago

2.3.11-c

1 year ago

2.4.0-a

9 months ago

2.2.17

1 year ago

2.2.18

1 year ago

2.2.15

1 year ago

2.2.16

1 year ago

2.2.13

1 year ago

2.2.14

1 year ago

2.2.19

1 year ago

2.2.28

1 year ago

2.2.26

1 year ago

2.2.27

1 year ago

2.2.24

1 year ago

2.2.25

1 year ago

2.2.22

1 year ago

2.2.23

1 year ago

2.2.20

1 year ago

2.2.21

1 year ago

2.3.17

1 year ago

2.3.16

1 year ago

2.3.19

12 months ago

2.3.18

1 year ago

2.3.13

1 year ago

2.3.12

1 year ago

2.3.15

1 year ago

2.3.14

1 year ago

2.3.11

1 year ago

2.3.10

1 year ago

2.2.12-a

1 year ago

2.2.12-c

1 year ago

2.2.12-b

1 year ago

2.2.12

1 year ago

2.2.10-a

1 year ago

2.0.3-c

2 years ago

2.0.3-d

2 years ago

2.0.19-c

2 years ago

2.0.19-d

2 years ago

2.0.19-a

2 years ago

2.0.19-b

2 years ago

0.4.10

2 years ago

0.4.11

2 years ago

2.2.1

1 year ago

2.2.0

1 year ago

2.2.3

1 year ago

2.2.2

1 year ago

2.2.5

1 year ago

2.2.4

1 year ago

2.2.7

1 year ago

2.2.6

1 year ago

2.1.2

2 years ago

2.0.15

2 years ago

2.1.1

2 years ago

2.0.16

2 years ago

2.1.4

1 year ago

2.0.13

2 years ago

2.1.6

1 year ago

2.1.5

1 year ago

2.0.12

2 years ago

2.1.8

1 year ago

2.1.7

1 year ago

2.0.10

2 years ago

2.1.0

2 years ago

2.2.9

1 year ago

2.0.19

2 years ago

2.0.17

2 years ago

2.0.26

2 years ago

2.0.27

2 years ago

2.0.25

2 years ago

2.0.22

2 years ago

2.0.23

2 years ago

2.0.20

2 years ago

2.0.21

2 years ago

2.2.1-a

1 year ago

0.4.9

2 years ago

0.4.8

2 years ago

2.0.28

2 years ago

2.0.29

2 years ago

2.0.37

2 years ago

2.0.3

2 years ago

2.0.38

2 years ago

2.0.2

2 years ago

2.0.35

2 years ago

2.0.5

2 years ago

2.0.4

2 years ago

2.0.33

2 years ago

2.0.7

2 years ago

2.0.34

2 years ago

2.0.31

2 years ago

2.0.9

2 years ago

2.0.32

2 years ago

2.0.8

2 years ago

2.0.1

2 years ago

2.0.0

2 years ago

2.1.9

1 year ago

2.0.15-a

2 years ago

2.1.10

1 year ago

2.1.6-a

1 year ago

2.1.6-b

1 year ago

2.1.10-a

1 year ago

0.4.7

2 years ago

0.4.6

2 years ago

2.2.10

1 year ago

2.2.5-b

1 year ago

0.4.11-a

2 years ago

2.2.5-a

1 year ago

2.2.5-f

1 year ago

2.2.5-d

1 year ago

0.4.5

2 years ago

0.4.4

2 years ago

0.4.2

2 years ago

0.4.1

2 years ago

0.3.107

2 years ago

0.3.106

2 years ago

0.3.109

2 years ago

0.3.108

2 years ago

0.3.105

2 years ago

0.3.104

2 years ago

0.3.102

2 years ago

0.3.101

2 years ago

0.3.99

2 years ago

0.3.97

2 years ago

0.3.98

2 years ago

0.3.96-b

2 years ago

0.3.96-a

2 years ago

0.3.96

2 years ago

0.3.95

2 years ago

0.3.94

2 years ago

0.3.93

2 years ago

0.3.92

2 years ago

0.3.91

2 years ago

0.3.90

2 years ago

0.3.89

2 years ago

0.3.88-c

2 years ago

0.3.88-b

2 years ago

0.3.86

2 years ago

0.3.85

2 years ago

0.3.88

2 years ago

0.3.87

2 years ago

0.3.84

2 years ago

0.3.83

2 years ago

0.3.82

2 years ago

0.3.81

2 years ago

0.3.80

2 years ago

0.3.79

2 years ago

0.3.75

2 years ago

0.3.73

2 years ago

0.3.72

2 years ago

0.3.78

2 years ago

0.3.76

2 years ago

0.3.71

2 years ago

0.3.70

2 years ago

0.3.69

2 years ago

0.3.68

2 years ago

0.3.67

2 years ago

0.3.65

2 years ago

0.3.64

2 years ago

0.3.63

2 years ago

0.3.62

2 years ago

0.3.61

2 years ago

0.3.60

2 years ago

0.3.59

2 years ago

0.3.58

2 years ago

0.3.56

2 years ago

0.3.55

2 years ago

0.3.53

2 years ago

0.3.52

2 years ago

0.3.50-1

2 years ago

0.3.51

2 years ago

0.3.49-d

2 years ago

0.3.49-e

2 years ago

0.3.49-b

2 years ago

0.3.49-a

2 years ago

0.3.49-c

2 years ago

0.3.50

2 years ago

0.3.49

2 years ago

0.3.48

2 years ago

0.3.47

2 years ago

0.3.46

2 years ago

0.3.45

2 years ago

0.3.44

2 years ago

0.3.31

2 years ago

0.3.30

2 years ago

0.3.39

2 years ago

0.3.38

2 years ago

0.3.37

2 years ago

0.3.34

2 years ago

0.3.34-a

2 years ago

0.3.32

2 years ago

0.3.34-f

2 years ago

0.3.34-g

2 years ago

0.3.29

2 years ago

0.3.34-k

2 years ago

0.3.20

3 years ago

0.3.27

2 years ago

0.3.41-b

2 years ago

0.3.26

2 years ago

0.3.25

3 years ago

0.3.24

3 years ago

0.3.43-d

2 years ago

0.3.22

3 years ago

0.3.43-c

2 years ago

0.3.21

3 years ago

0.3.19

3 years ago

0.3.18

3 years ago

0.3.9

3 years ago

0.3.16

3 years ago

0.3.31-a

2 years ago

0.3.15

3 years ago

0.3.14

3 years ago

0.3.31-c

2 years ago

0.3.13

3 years ago

0.3.31-b

2 years ago

0.3.10

3 years ago

0.3.42

2 years ago

0.3.41

2 years ago

0.3.40

2 years ago

0.3.42-a

2 years ago

0.3.42-b

2 years ago

0.3.43

2 years ago

0.1.117

3 years ago

0.1.119

3 years ago

0.1.114

3 years ago

0.1.116

3 years ago

0.1.115

3 years ago

0.3.0

3 years ago

0.2.1

3 years ago

0.2.0

3 years ago

0.3.6

3 years ago

0.3.5

3 years ago

0.1.120

3 years ago

0.3.8

3 years ago

0.3.7

3 years ago

0.3.2

3 years ago

0.2.3

3 years ago

0.3.1

3 years ago

0.2.2

3 years ago

0.3.4

3 years ago

0.2.5

3 years ago

0.2.4

3 years ago

0.1.109

3 years ago

0.1.108

3 years ago

0.1.113

3 years ago

0.1.105

3 years ago

0.1.104

3 years ago

0.1.112

3 years ago

0.1.103

3 years ago

0.1.102

3 years ago

0.1.101

3 years ago

0.1.100

3 years ago

0.1.99

3 years ago

0.1.98

3 years ago

0.1.96

3 years ago