Getting Started with Analytics SDK for React

    Step 1 - Create the React App

    1 - Open your favorite terminal

    2 - Create a new React application using the "create-react-app" command

    > npx create-react-app getting-started --template typescript
    

    3 - Change directories into the newly created app directory and open the project in your favorite Editor. In this example, we are using Visual Studio Code.

    > cd getting-started
    > code .
    

    Step 2 - Add Analytics JavaScript API

    1 - Expand the public folder and create a new folder called assets. Now, create another folder called reveal within the assets folder.

    2 - Copy all the Javacript files located at %public%/Documents/Infragistics/Analytics/SDK/Web/JS/Client into the assets/reveal folder you created previously.

    3 - Open and modify the index.html file to include the infragistics.reveal.js script at the bottom of the page just before the closing </body> tag.

    <script src="assets/reveal/infragistics.reveal.js"></script>
    

    4 - Install the remaining Analytics JavaScript API dependencies:

    • Jquery 2.2 or greater
    <script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script>
    
    • Day.js 1.8.15 or greater
    <script src="https://unpkg.com/dayjs@1.8.21/dayjs.min.js"></script>
    
    • Quill RTE 1.3.6 or greater
    <link href="https://cdn.quilljs.com/1.3.6/quill.snow.css" rel="stylesheet" type="text/css">    
    <script src="https://cdn.quilljs.com/1.3.6/quill.min.js"></script>
    
    • Spectrum v 1.8.0 or newer (Optional) - this is only needed if you enable the UI for the end user to set the background color for a particular visualization.
    <link href="https://cdnjs.cloudflare.com/ajax/libs/spectrum/1.8.0/spectrum.min.css" rel="stylesheet" type="text/css" >
    <script src="https://cdnjs.cloudflare.com/ajax/libs/spectrum/1.8.0/spectrum.min.js"></script>
    

    The final index.html files should look similar to this:

    <!DOCTYPE html>
    <html lang="en">
      <head>
        <meta charset="utf-8" />
        <link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
        <meta name="viewport" content="width=device-width, initial-scale=1" />
        <meta name="theme-color" content="#000000" />
        <meta
          name="description"
          content="Web site created using create-react-app"
        />
        <link rel="apple-touch-icon" href="%PUBLIC_URL%/logo192.png" />
        <!--
          manifest.json provides metadata used when your web app is installed on a
          user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/
        -->
        <link rel="manifest" href="%PUBLIC_URL%/manifest.json" />
        <!--
          Notice the use of %PUBLIC_URL% in the tags above.
          It will be replaced with the URL of the `public` folder during the build.
          Only files inside the `public` folder can be referenced from the HTML.
    
          Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will
          work correctly both with client-side routing and a non-root public URL.
          Learn how to configure a non-root public URL by running `npm run build`.
        -->
        <link href="https://cdn.quilljs.com/1.3.6/quill.snow.css" rel="stylesheet" type="text/css">  
        <title>React App</title>
      </head>
      <body>
        <noscript>You need to enable JavaScript to run this app.</noscript>
        <div id="root"></div>
        <!--
          This HTML file is a template.
          If you open it directly in the browser, you will see an empty page.
    
          You can add webfonts, meta tags, or analytics to this file.
          The build step will place the bundled scripts into the <body> tag.
    
          To begin the development, run `npm start` or `yarn start`.
          To create a production bundle, use `npm run build` or `yarn build`.
        -->
        <script src="https://cdn.jsdelivr.net/npm/jquery@3.6.0/dist/jquery.min.js"></script>
        <script src="https://unpkg.com/dayjs@1.8.21/dayjs.min.js"></script>
        <script src="https://cdn.quilljs.com/1.3.6/quill.min.js"></script>
        <script src="assets/reveal/infragistics.reveal.js"></script>
      </body>
    </html>
    

    Step 3 - Initialize the Analytics view

    1 - Open and modify the src/app.tsx file. Delete all the contents within the return statement and add a new <div> tag and set the id to revealView.

    function App() {
      return (
        <div id="revealView" style={{height: "100vh", width: "100%"}}></div>
      );
    }
    

    2 - First, we need to make sure that we can use jQuery by declaring a new variable named $, of type any, at the top of the file just under the import statements. This will make sure TypeScript will compile our JavaScript.

    declare let $: any;
    

    3 - Within the App() function component, initialize the revealView.

      $.ig.AnalyticsSdkSettings.ensureFontsLoadedAsync().then(() => {
        var revealView = new $.ig.AnalyticsView("#revealView");
      }); 
    

    This JavaScript code first calls the $.ig.AnalyticsSdkSettings.ensureFontsLoadedAsync to ensure that all fonts have been properly loaded. Next, we instaniate a new instance of the AnalyticsView by creating a new $.ig.AnalyticsView and passing in the #revealView selector.

    The final index.html file should look like this:

    import React from 'react';
    import logo from './logo.svg';
    import './App.css';
    
    declare let $: any;
    
    function App() {
    
      $.ig.AnalyticsSdkSettings.ensureFontsLoadedAsync().then(() => {
        var revealView = new $.ig.AnalyticsView("#revealView");
      }); 
    
      return (
        <div id="revealView" style={{height: "100vh", width: "100%"}}></div>
      );
    }
    
    export default App;
    
    Important

    Clients apps must set the $.ig.AnalyticsSdkSettings.setBaseUrl("url-to-server"); to the server address hosting the dashboards if the client is being hosting on a different URL.

    Step 4 - Run the Application

    In the Visual Studio Code terminal, type the npm start command

    > npm start
    

    Congratulations! You have written your first Analytics SDK React application.

    Next Steps:

    Note

    The source code to this sample can be found on GitHub.