4.4.6 • Published 9 months ago

@phygrid/signals-react v4.4.6

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

@phygrid/signals-react

A React library for integrating Phygrid Signals into your react applications.

Installation

Use either yarn or npm to install the package:

# Using yarn
yarn install @phygrid/signals-react

# Using npm
npm install @phygrid/signals-react

Usage

Basic Integration

The simplest way to integrate Signals into your React application is using the useGridSignals hook:

import React, { useEffect } from 'react';
import './App.css';
import { useGridSignals } from "@phygrid/signals-react";

function App() {
  const { isReady, signalsService } = useGridSignals();
  
  useEffect(() => {
    if (isReady) {
      // Example of sending an event
      signalsService.sendEvent(...);
    }
  }, [isReady, signalsService]);

  return (
    <div className="App">
      <p>Hello Signals</p>
    </div>
  );
}

export default App;

Custom Parameters

For more control, you can initialize the signals service with custom parameters using the useGridSignalsWithExternalParams hook:

import React, { useEffect } from 'react';
import './App.css';
import { useGridSignalsWithExternalParams } from "@phygrid/signals-react";

function App() {
  const initParams = {
    "deviceId": "device-12345",
    "installationId": "install-67890",
    "spaceId": "space-abcdef",
    "tenantId": "tenant-xyz",
    "appVersion": "1.0.0",
    "appId": "com.example.app",
    "environment": "production",
    "dataResidency": "EU",
    "country": "SE",
    "installationVersion": "2.3.4",
    "accessToken": "eyJhbGciOiJIUzI1NiIsInR...",
    "clientUserAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)",
    "ip": "192.168.1.100"
  };
  
  const { isReady, signalsService } = useGridSignalsWithExternalParams(initParams);
  
  useEffect(() => {
    if (isReady) {
      // Example of sending an event
      signalsService.sendEvent(...);
    }
  }, [isReady, signalsService]);

  return (
    <div className="App">
      <p>Hello Signals</p>
    </div>
  );
}

export default App;

API Reference

Hooks

useGridSignals()

Initializes the signals service with default parameters.

Returns:

  • isReady (boolean): Indicates whether the signals service is initialized and ready to use
  • signalsService (object): The signals service instance for sending events

useGridSignalsWithExternalParams(initParams)

Initializes the signals service with custom parameters.

Parameters:

  • initParams (object): Configuration object with the following properties:
    • deviceId (string): Unique identifier for the device
    • installationId (string): Unique identifier for the installation
    • spaceId (string): Identifier for the space
    • tenantId (string): Identifier for the tenant
    • appVersion (string): Version of the application
    • appId (string): Identifier for the application
    • environment (string): Environment (e.g., "production", "development")
    • dataResidency (string): Location for data residency
    • country (string): Country code
    • installationVersion (string): Version of the installation
    • accessToken (string): JWT or other access token
    • clientUserAgent (string): User agent string
    • ip (string): IP address

Returns:

  • isReady (boolean): Indicates whether the signals service is initialized and ready to use
  • signalsService (object): The signals service instance for sending events

Available Methods

Complete details regarding the available methods in signalsService can be found in here


Troubleshooting

If you find any errors when importing the package, make sure that 1. config-overrides.js is setup properly, an example is given below:

const webpack = require('webpack');
const path = require('path');

module.exports = function override(config, env) {
  config.module.rules.push({
    test: /\.(ts|tsx)$/,
    loader: 'ts-loader',
    options: {
      transpileOnly: true,
      compilerOptions: {
        module: 'esnext',
        moduleResolution: 'node',
      },
    },
    exclude: /node_modules/,
  });

  delete config.externals;

  config.plugins.push(
    new webpack.IgnorePlugin({ resourceRegExp: /^https-proxy-agent$/ }),
    new webpack.IgnorePlugin({ resourceRegExp: /^http-proxy-agent$/ })
  );

  config.resolve.fallback = {
    assert: require.resolve('assert/'),
    buffer: require.resolve('buffer/'),
    stream: require.resolve('stream-browserify'),
    util: require.resolve('util/'),
    net: false,
    tls: false,
    fs: false,
    child_process: false,
    http: false,
    https: false,
    os: false,
    url: false,
  };

  config.module.rules.push({
    test: /abort-controller/,
    resolve: { fullySpecified: false },
  });

  config.resolve.alias = {
    ...config.resolve.alias,
    'react': path.resolve('./node_modules/react'),
    'react-dom': path.resolve('./node_modules/react-dom')
  };

  return config;
};
  1. Make sure that your webpack.config.js is setup properly, for example:
const webpack = require('webpack');
const path = require('path');

module.exports = function override(config, env) {
  // Add React resolution alias
  config.resolve.alias = {
    ...config.resolve.alias,
    'react': path.resolve('./node_modules/react'),
    'react-dom': path.resolve('./node_modules/react-dom')
  };

  // Add externals configuration
  config.externals = {
    ...config.externals,
    react: 'React',
    'react-dom': 'ReactDOM'
  };

  // Existing fallbacks for node.js core modules
  config.resolve.fallback = {
    http: require.resolve('stream-http'),
    https: require.resolve('https-browserify'),
    stream: require.resolve('stream-browserify'),
    util: require.resolve('util/'),
    os: require.resolve('os-browserify/browser'),
    assert: require.resolve('assert/'),
    net: false,
    tls: false,
  };
  
  config.plugins.push(
    new webpack.ProvidePlugin({
      process: 'process/browser',
      Buffer: ['buffer', 'Buffer'],
    })
  );
  
  return config;
};
  1. If you are using typescript, make sure you have tsconfig.json setup properly, for example:
{
  "compilerOptions": {
    "target": "es5",
    "lib": [
      "dom",
      "dom.iterable",
      "esnext"
    ],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": true,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": true,
    "module": "esnext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noEmit": true,
    "jsx": "react",
    "baseUrl": "src"
  },
  "include": [
    "src"
  ]
}
  1. For react version related issues, make sure you add following in your package.json file:
{
  "resolutions": {
      "react": "^18.0.0",
      "react-dom": "^18.0.0"
    },
}
4.2.219

1 year ago

4.2.459

11 months ago

4.2.338

1 year ago

4.2.217

1 year ago

4.2.339

1 year ago

4.2.457

11 months ago

4.2.336

1 year ago

4.2.458

11 months ago

4.2.337

1 year ago

4.2.216

1 year ago

4.2.466

10 months ago

4.2.345

1 year ago

4.2.224

1 year ago

4.2.467

10 months ago

4.2.346

1 year ago

4.2.225

1 year ago

4.2.464

11 months ago

4.2.343

1 year ago

4.2.222

1 year ago

4.2.465

11 months ago

4.2.344

1 year ago

4.2.223

1 year ago

4.2.462

11 months ago

4.2.341

1 year ago

4.2.220

1 year ago

4.2.463

11 months ago

4.2.342

1 year ago

4.2.221

1 year ago

4.2.460

11 months ago

4.2.461

11 months ago

4.2.340

1 year ago

4.2.329

1 year ago

4.2.448

11 months ago

4.2.327

1 year ago

4.2.449

11 months ago

4.2.328

1 year ago

4.2.446

11 months ago

4.2.325

1 year ago

4.2.447

11 months ago

4.2.326

1 year ago

4.0.1

1 year ago

4.2.455

11 months ago

4.2.334

1 year ago

4.2.456

11 months ago

4.2.335

1 year ago

4.2.453

11 months ago

4.2.332

1 year ago

4.2.454

11 months ago

4.2.333

1 year ago

4.2.212

1 year ago

4.2.451

11 months ago

4.2.330

1 year ago

4.2.452

11 months ago

4.2.331

1 year ago

4.2.450

11 months ago

4.2.439

11 months ago

4.2.318

1 year ago

4.2.319

1 year ago

4.2.437

11 months ago

4.2.316

1 year ago

4.2.438

11 months ago

4.2.317

1 year ago

4.2.435

11 months ago

4.2.314

1 year ago

4.2.436

11 months ago

4.2.315

1 year ago

4.2.444

11 months ago

4.2.323

1 year ago

4.2.324

1 year ago

4.2.442

11 months ago

4.2.321

1 year ago

4.2.443

11 months ago

4.2.322

1 year ago

4.2.440

11 months ago

4.2.441

11 months ago

4.2.320

1 year ago

4.2.309

1 year ago

4.2.428

12 months ago

4.2.307

1 year ago

4.3.7-dev

10 months ago

4.2.429

12 months ago

4.2.308

1 year ago

4.2.426

12 months ago

4.2.305

1 year ago

4.2.427

12 months ago

4.2.306

1 year ago

4.2.424

12 months ago

4.2.303

1 year ago

4.2.425

12 months ago

4.2.304

1 year ago

4.2.433

11 months ago

4.2.312

1 year ago

4.2.313

1 year ago

4.2.431

12 months ago

4.2.310

1 year ago

4.2.432

11 months ago

4.2.311

1 year ago

4.2.430

12 months ago

4.2.419

12 months ago

4.2.417

12 months ago

4.2.418

12 months ago

4.2.415

12 months ago

4.2.416

12 months ago

4.2.413

12 months ago

4.2.414

12 months ago

4.2.301

1 year ago

4.2.423

12 months ago

4.2.302

1 year ago

4.2.420

12 months ago

4.2.300

1 year ago

4.2.408

12 months ago

4.2.409

12 months ago

4.2.406

12 months ago

4.2.407

12 months ago

4.2.404

12 months ago

4.2.405

12 months ago

4.2.402

12 months ago

4.2.403

12 months ago

4.2.411

12 months ago

4.2.412

12 months ago

4.2.410

12 months ago

4.2.401

12 months ago

4.3.6-dev

10 months ago

4.3.5-dev

10 months ago

4.4.1

10 months ago

4.4.0

10 months ago

2.0.49

1 year ago

4.4.3

9 months ago

4.4.2

9 months ago

4.4.5

9 months ago

4.4.4

9 months ago

4.4.6

9 months ago

2.0.57

1 year ago

2.0.58

1 year ago

2.0.55

1 year ago

2.0.56

1 year ago

2.0.53

1 year ago

2.0.54

1 year ago

2.0.51

1 year ago

2.0.52

1 year ago

2.0.50

1 year ago

2.0.68

1 year ago

2.0.69

1 year ago

2.0.66

1 year ago

2.0.67

1 year ago

2.0.64

1 year ago

2.0.65

1 year ago

2.0.63

1 year ago

2.0.60

1 year ago

2.0.79

1 year ago

4.3.4-dev

10 months ago

2.0.77

1 year ago

2.0.78

1 year ago

2.0.75

1 year ago

2.0.76

1 year ago

2.0.73

1 year ago

2.0.74

1 year ago

2.0.71

1 year ago

2.0.72

1 year ago

2.0.70

1 year ago

2.0.88

1 year ago

2.0.89

1 year ago

2.0.86

1 year ago

2.0.87

1 year ago

2.0.84

1 year ago

2.0.85

1 year ago

2.0.82

1 year ago

2.0.83

1 year ago

2.0.80

1 year ago

2.0.81

1 year ago

2.0.99

1 year ago

2.0.97

1 year ago

2.0.98

1 year ago

2.0.95

1 year ago

2.0.96

1 year ago

2.0.93

1 year ago

2.0.94

1 year ago

2.0.91

1 year ago

2.0.92

1 year ago

2.0.90

1 year ago

4.3.3-dev

10 months ago

4.3.2-dev

10 months ago

2.0.151

1 year ago

2.0.150

1 year ago

2.0.139

1 year ago

2.0.138

1 year ago

2.0.137

1 year ago

2.0.136

1 year ago

2.0.135

1 year ago

2.0.134

1 year ago

2.0.133

1 year ago

2.0.132

1 year ago

2.0.131

1 year ago

2.0.130

1 year ago

4.2.293

1 year ago

4.2.294

1 year ago

4.2.291

1 year ago

4.2.292

1 year ago

2.0.149

1 year ago

2.0.148

1 year ago

4.2.290

1 year ago

2.0.147

1 year ago

2.0.146

1 year ago

2.0.145

1 year ago

2.0.144

1 year ago

2.0.143

1 year ago

4.2.299

1 year ago

2.0.142

1 year ago

2.0.141

1 year ago

4.2.297

1 year ago

2.0.140

1 year ago

4.2.298

1 year ago

4.2.295

1 year ago

4.2.296

1 year ago

4.3.9-dev

10 months ago

4.3.0-dev

10 months ago

2.0.109

1 year ago

4.2.282

1 year ago

2.0.119

1 year ago

4.2.283

1 year ago

2.0.118

1 year ago

4.2.280

1 year ago

2.0.117

1 year ago

4.2.281

1 year ago

2.0.116

1 year ago

2.0.115

1 year ago

2.0.114

1 year ago

2.0.113

1 year ago

2.0.112

1 year ago

2.0.111

1 year ago

2.0.110

1 year ago

4.2.288

1 year ago

4.2.289

1 year ago

4.2.286

1 year ago

4.2.287

1 year ago

4.2.284

1 year ago

4.2.285

1 year ago

4.2.392

1 year ago

4.2.271

1 year ago

4.2.393

1 year ago

4.2.272

1 year ago

2.0.129

1 year ago

4.2.390

1 year ago

2.0.128

1 year ago

4.2.391

1 year ago

4.2.270

1 year ago

2.0.127

1 year ago

2.0.126

1 year ago

2.0.125

1 year ago

2.0.124

1 year ago

2.0.123

1 year ago

4.2.279

1 year ago

2.0.122

1 year ago

2.0.121

1 year ago

4.2.398

1 year ago

4.2.277

1 year ago

2.0.120

1 year ago

4.2.399

1 year ago

4.2.278

1 year ago

4.2.396

1 year ago

4.2.275

1 year ago

4.2.397

1 year ago

4.2.276

1 year ago

4.2.394

1 year ago

4.2.273

1 year ago

4.2.395

1 year ago

4.2.274

1 year ago

4.2.259

1 year ago

4.2.381

1 year ago

4.2.260

1 year ago

4.2.261

1 year ago

4.2.380

1 year ago

4.2.389

1 year ago

4.2.268

1 year ago

4.2.269

1 year ago

4.2.387

1 year ago

4.2.266

1 year ago

4.2.388

1 year ago

4.2.267

1 year ago

4.2.264

1 year ago

4.2.386

1 year ago

4.2.265

1 year ago

4.2.383

1 year ago

4.2.262

1 year ago

4.2.263

1 year ago

4.2.248

1 year ago

4.2.249

1 year ago

2.0.108

1 year ago

4.2.371

1 year ago

4.2.250

1 year ago

2.0.107

1 year ago

2.0.106

1 year ago

2.0.105

1 year ago

2.0.104

1 year ago

2.0.103

1 year ago

2.0.102

1 year ago

2.0.101

1 year ago

4.2.257

1 year ago

2.0.100

1 year ago

4.2.379

1 year ago

4.2.258

1 year ago

4.2.255

1 year ago

4.2.256

1 year ago

4.2.253

1 year ago

4.2.254

1 year ago

4.2.372

1 year ago

4.2.251

1 year ago

4.2.252

1 year ago

4.2.239

1 year ago

4.2.358

1 year ago

4.2.237

1 year ago

4.2.359

1 year ago

4.2.238

1 year ago

4.3.8-dev

10 months ago

4.2.360

1 year ago

4.2.246

1 year ago

4.2.247

1 year ago

4.2.244

1 year ago

4.2.245

1 year ago

4.2.363

1 year ago

4.2.242

1 year ago

4.2.364

1 year ago

4.2.243

1 year ago

4.2.361

1 year ago

4.2.240

1 year ago

4.2.362

1 year ago

4.2.241

1 year ago

4.2.349

1 year ago

4.2.228

1 year ago

4.2.229

1 year ago

4.2.468

10 months ago

4.2.347

1 year ago

4.2.226

1 year ago

4.2.469

10 months ago

4.2.348

1 year ago

4.2.227

1 year ago

4.2.470

10 months ago

4.2.356

1 year ago

4.2.235

1 year ago

4.2.357

1 year ago

4.2.236

1 year ago

4.2.354

1 year ago

4.2.233

1 year ago

4.2.355

1 year ago

4.2.234

1 year ago

4.2.473

10 months ago

4.2.352

1 year ago

4.2.231

1 year ago

4.2.353

1 year ago

4.2.232

1 year ago

4.2.471

10 months ago

4.2.350

1 year ago

4.2.472

10 months ago

4.2.351

1 year ago

4.2.230

1 year ago

2.0.48

1 year ago

2.0.47

1 year ago

2.0.46

2 years ago

2.0.45

2 years ago

2.0.44

2 years ago

2.0.42

2 years ago

2.0.41

2 years ago

2.0.40

2 years ago

2.0.39

2 years ago

2.0.38

2 years ago

2.0.37

2 years ago

2.0.36

2 years ago

2.0.35

2 years ago

2.0.34

2 years ago

2.0.33

2 years ago

2.0.32

2 years ago

2.0.31

2 years ago

2.0.30

2 years ago

2.0.29

2 years ago

2.0.28

2 years ago

2.0.27

2 years ago

2.0.26

2 years ago

2.0.24

2 years ago

2.0.7

2 years ago

2.0.3

2 years ago

2.0.0

2 years ago

1.0.0

2 years ago

0.2.0

2 years ago

0.1.18

2 years ago

0.1.16

2 years ago

0.1.3

2 years ago

0.1.2

2 years ago

0.1.1

2 years ago