0.0.397 • Published 3 months ago

react-semaphor v0.0.397

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

Integrating dashboard into your React app is a straightforward three-step process.

1) Install Semaphor Package

Open your terminal in your project directory and run the following command. This command installs the semaphor package and adds it to your project dependencies.

npm i semaphor

2) Get Auth Token

Before rendering the Dashboard, first acquire the AuthToken. This token enhances the security of your dashboard by restricting access to only users with the token. Make a POST fetch call as shown below.

const DASHBOARD_ID = 'd_cf007a8b-19bc-46ad-8787-2915445b7b86'; // Replace with your actual dashboard ID
const DASHBOARD_SECRET = 'ds_f32f0b30-b7e1-40f9-ba6a-9804a5b9d635'; // Replace with your actual dashboard secret
const TOKEN_URL = 'https://semaphor.cloud/api/v1/token';

async function fetchToken() {
  try {
    const response = await fetch(TOKEN_URL, {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
      },
      body: JSON.stringify({
        dashboardId: DASHBOARD_ID,
        dashboardSecret: DASHBOARD_SECRET,
      }),
    });
    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }

    const token = await response.json();
    if (token?.accessToken) {
      setAuthToken(token);
    }
  } catch (error) {
    console.error('There was an error!', error);
  }
}

3) Initialize Dashboard

Here is a simple example of a React component that demonstrates how to use the Dashboard component from the semaphor package. Make sure you import style.css either at the beginning of your component or in your global CSS file. This step is necessary for correctly loading your dashboard styles.

import { useEffect, useState } from 'react';
import { AuthToken, Dashboard } from 'semaphor';
import '../node_modules/semaphor/dist/style.css'; // IMPORTANT! Include the CSS file. This is the default style, you can customize it.

function App() {
  const [authToken, setAuthToken] = useState<AuthToken>();

  return (
    <div>
      <h2>My cool dashboard</h2>
      <Dashboard authToken={authToken} id={DASHBOARD_ID} />
    </div>
  );
}

Full Code

Here is the complete React code that uses the above steps. You can copy and paste this example into your own application.

import { useEffect, useState } from 'react';
import { AuthToken, Dashboard } from 'semaphor';
import '../node_modules/semaphor/dist/style.css'; // IMPORTANT! Include the CSS file. This is the default style, you can customize it.

const DASHBOARD_ID = 'd_cf007a8b-19bc-46ad-8787-2915445b7b86'; // Replace with your actual dashboard ID
const DASHBOARD_SECRET = 'ds_f32f0b30-b7e1-40f9-ba6a-9804a5b9d635'; // Replace with your actual dashboard secret
const TOKEN_URL = 'https://semaphor.cloud/api/v1/token';

function App() {
  const [authToken, setAuthToken] = useState<AuthToken>();

  useEffect(() => {
    async function fetchToken() {
      try {
        const response = await fetch(TOKEN_URL, {
          method: 'POST',
          headers: {
            'Content-Type': 'application/json',
          },
          body: JSON.stringify({
            dashboardId: DASHBOARD_ID,
            dashboardSecret: DASHBOARD_SECRET,
          }),
        });
        if (!response.ok) {
          throw new Error(`HTTP error! status: ${response.status}`);
        }

        const token = await response.json();
        if (token?.accessToken) {
          setAuthToken(token);
        }
      } catch (error) {
        console.error('There was an error!', error);
      }
    }
    fetchToken();
  }, []);

  return (
    <div>
      <h2>My cool dashboard</h2>
      <Dashboard authToken={authToken} id={DASHBOARD_ID} />
    </div>
  );
}

export default App;

Key Considerations

  • Security Note: Keep the DASHBOARD_SECRET secure and do not expose it in client-side code in production. This example is for demonstration purposes only. When deploying in production, obtain the authentication token from a secure, server-side environment.
  • Fetching the AuthToken: Before the dashboard can be displayed, an authentication token must be fetched. The useEffect hook is used to perform this action when the component mounts.
0.0.315

5 months ago

0.0.314

5 months ago

0.0.313

5 months ago

0.0.312

5 months ago

0.0.319

5 months ago

0.0.318

5 months ago

0.0.317

5 months ago

0.0.316

5 months ago

0.0.311

5 months ago

0.0.310

5 months ago

0.0.309

5 months ago

0.0.326

5 months ago

0.0.325

5 months ago

0.0.324

5 months ago

0.0.323

5 months ago

0.0.329

5 months ago

0.0.328

5 months ago

0.0.327

5 months ago

0.0.322

5 months ago

0.0.321

5 months ago

0.0.320

5 months ago

0.0.337

5 months ago

0.0.336

5 months ago

0.0.335

5 months ago

0.0.334

5 months ago

0.0.338

5 months ago

0.0.333

5 months ago

0.0.332

5 months ago

0.0.331

5 months ago

0.0.330

5 months ago

0.0.348

4 months ago

0.0.347

4 months ago

0.0.346

4 months ago

0.0.345

4 months ago

0.0.349

4 months ago

0.0.340

4 months ago

0.0.344

4 months ago

0.0.343

4 months ago

0.0.342

4 months ago

0.0.341

4 months ago

0.0.37710

3 months ago

0.0.37711

3 months ago

0.0.37714

3 months ago

0.0.37715

3 months ago

0.0.37712

3 months ago

0.0.37713

3 months ago

0.0.37718

3 months ago

0.0.37719

3 months ago

0.0.37716

3 months ago

0.0.37717

3 months ago

0.0.304

5 months ago

0.0.303

5 months ago

0.0.302

5 months ago

0.0.301

5 months ago

0.0.308

5 months ago

0.0.307

5 months ago

0.0.306

5 months ago

0.0.305

5 months ago

0.0.300

5 months ago

0.0.3791

3 months ago

0.0.3777

3 months ago

0.0.3771

3 months ago

0.0.3772

3 months ago

0.0.3773

3 months ago

0.0.3774

3 months ago

0.0.3775

3 months ago

0.0.3776

3 months ago

0.0.3931

3 months ago

0.0.3932

3 months ago

0.0.279

7 months ago

0.0.395

3 months ago

0.0.274

7 months ago

0.0.394

3 months ago

0.0.273

7 months ago

0.0.393

3 months ago

0.0.272

7 months ago

0.0.392

3 months ago

0.0.271

7 months ago

0.0.278

7 months ago

0.0.277

7 months ago

0.0.397

3 months ago

0.0.276

7 months ago

0.0.396

3 months ago

0.0.275

7 months ago

0.0.391

3 months ago

0.0.270

7 months ago

0.0.390

3 months ago

0.0.285

7 months ago

0.0.284

7 months ago

0.0.283

7 months ago

0.0.282

7 months ago

0.0.289

6 months ago

0.0.288

7 months ago

0.0.287

7 months ago

0.0.286

7 months ago

0.0.281

7 months ago

0.0.280

7 months ago

0.0.296

5 months ago

0.0.295

5 months ago

0.0.294

5 months ago

0.0.293

5 months ago

0.0.299

5 months ago

0.0.298

5 months ago

0.0.297

5 months ago

0.0.292

6 months ago

0.0.291

6 months ago

0.0.290

6 months ago

0.0.359

4 months ago

0.0.358

4 months ago

0.0.357

4 months ago

0.0.356

4 months ago

0.0.351

4 months ago

0.0.350

4 months ago

0.0.355

4 months ago

0.0.354

4 months ago

0.0.353

4 months ago

0.0.352

4 months ago

0.0.369

3 months ago

0.0.368

3 months ago

0.0.367

3 months ago

0.0.362

4 months ago

0.0.361

4 months ago

0.0.360

4 months ago

0.0.366

3 months ago

0.0.365

3 months ago

0.0.364

3 months ago

0.0.363

3 months ago

0.0.379

3 months ago

0.0.378

3 months ago

0.0.373

3 months ago

0.0.372

3 months ago

0.0.371

3 months ago

0.0.370

3 months ago

0.0.377

3 months ago

0.0.376

3 months ago

0.0.375

3 months ago

0.0.269

7 months ago

0.0.389

3 months ago

0.0.268

7 months ago

0.0.384

3 months ago

0.0.263

7 months ago

0.0.383

3 months ago

0.0.262

7 months ago

0.0.382

3 months ago

0.0.261

7 months ago

0.0.381

3 months ago

0.0.388

3 months ago

0.0.267

7 months ago

0.0.387

3 months ago

0.0.266

7 months ago

0.0.386

3 months ago

0.0.265

7 months ago

0.0.385

3 months ago

0.0.264

7 months ago

0.0.380

3 months ago

0.0.249

8 months ago

0.0.248

8 months ago

0.0.247

8 months ago

0.0.259

8 months ago

0.0.258

8 months ago

0.0.257

8 months ago

0.0.252

8 months ago

0.0.251

8 months ago

0.0.250

8 months ago

0.0.256

8 months ago

0.0.255

8 months ago

0.0.254

8 months ago

0.0.253

8 months ago

0.0.260

8 months ago

0.0.246

8 months ago

0.0.205

9 months ago

0.0.204

9 months ago

0.0.203

9 months ago

0.0.202

9 months ago

0.0.209

9 months ago

0.0.208

9 months ago

0.0.207

9 months ago

0.0.206

9 months ago

0.0.201

9 months ago

0.0.200

9 months ago

0.0.216

9 months ago

0.0.215

9 months ago

0.0.214

9 months ago

0.0.213

9 months ago

0.0.219

8 months ago

0.0.218

8 months ago

0.0.217

8 months ago

0.0.212

9 months ago

0.0.211

9 months ago

0.0.210

9 months ago

0.0.227

8 months ago

0.0.226

8 months ago

0.0.225

8 months ago

0.0.224

8 months ago

0.0.229

8 months ago

0.0.228

8 months ago

0.0.223

8 months ago

0.0.222

8 months ago

0.0.221

8 months ago

0.0.220

8 months ago

0.0.197

9 months ago

0.0.196

10 months ago

0.0.195

10 months ago

0.0.194

10 months ago

0.0.199

9 months ago

0.0.198

9 months ago

0.0.193

10 months ago

0.0.192

10 months ago

0.0.191

10 months ago

0.0.190

10 months ago

0.0.186

10 months ago

0.0.185

10 months ago

0.0.184

10 months ago

0.0.189

10 months ago

0.0.188

10 months ago

0.0.187

10 months ago

0.0.238

8 months ago

0.0.237

8 months ago

0.0.236

8 months ago

0.0.235

8 months ago

0.0.239

8 months ago

0.0.230

8 months ago

0.0.234

8 months ago

0.0.233

8 months ago

0.0.232

8 months ago

0.0.231

8 months ago

0.0.241

8 months ago

0.0.240

8 months ago

0.0.245

8 months ago

0.0.244

8 months ago

0.0.243

8 months ago

0.0.242

8 months ago

0.0.159

12 months ago

0.0.158

12 months ago

0.0.153

12 months ago

0.0.152

12 months ago

0.0.151

12 months ago

0.0.150

12 months ago

0.0.157

12 months ago

0.0.156

12 months ago

0.0.155

12 months ago

0.0.154

12 months ago

0.0.169

11 months ago

0.0.164

11 months ago

0.0.163

11 months ago

0.0.162

12 months ago

0.0.161

12 months ago

0.0.168

11 months ago

0.0.167

11 months ago

0.0.166

11 months ago

0.0.165

11 months ago

0.0.160

12 months ago

0.0.175

10 months ago

0.0.174

10 months ago

0.0.173

10 months ago

0.0.172

11 months ago

0.0.179

10 months ago

0.0.178

10 months ago

0.0.177

10 months ago

0.0.176

10 months ago

0.0.171

11 months ago

0.0.170

11 months ago

0.0.106

1 year ago

0.0.105

1 year ago

0.0.104

1 year ago

0.0.103

1 year ago

0.0.109

1 year ago

0.0.108

1 year ago

0.0.107

1 year ago

0.0.183

10 months ago

0.0.102

1 year ago

0.0.101

1 year ago

0.0.182

10 months ago

0.0.181

10 months ago

0.0.180

10 months ago

0.0.117

1 year ago

0.0.116

1 year ago

0.0.115

1 year ago

0.0.114

1 year ago

0.0.119

1 year ago

0.0.118

1 year ago

0.0.113

1 year ago

0.0.112

1 year ago

0.0.111

1 year ago

0.0.110

1 year ago

0.0.128

1 year ago

0.0.127

1 year ago

0.0.126

1 year ago

0.0.125

1 year ago

0.0.129

1 year ago

0.0.120

1 year ago

0.0.124

1 year ago

0.0.123

1 year ago

0.0.122

1 year ago

0.0.121

1 year ago

0.0.139

12 months ago

0.0.138

1 year ago

0.0.137

1 year ago

0.0.136

1 year ago

0.0.131

1 year ago

0.0.130

1 year ago

0.0.135

1 year ago

0.0.134

1 year ago

0.0.133

1 year ago

0.0.132

1 year ago

0.0.149

12 months ago

0.0.96

1 year ago

0.0.148

12 months ago

0.0.97

1 year ago

0.0.147

12 months ago

0.0.98

1 year ago

0.0.99

1 year ago

0.0.142

12 months ago

0.0.141

12 months ago

0.0.140

12 months ago

0.0.146

12 months ago

0.0.145

12 months ago

0.0.144

12 months ago

0.0.143

12 months ago

0.0.95

1 year ago

0.0.90

1 year ago

0.0.91

1 year ago

0.0.92

1 year ago

0.0.93

1 year ago

0.0.94

1 year ago

0.0.88

1 year ago

0.0.89

1 year ago

0.0.84

1 year ago

0.0.85

1 year ago

0.0.86

1 year ago

0.0.87

1 year ago

0.0.83

1 year ago

0.0.82

1 year ago

0.0.80

1 year ago

0.0.81

1 year ago

0.0.79

1 year ago

0.0.77

1 year ago

0.0.78

1 year ago

0.0.76

1 year ago

0.0.75

1 year ago

0.0.74

1 year ago

0.0.73

1 year ago

0.0.72

1 year ago

0.0.71

1 year ago

0.0.70

1 year ago

0.0.66

1 year ago

0.0.67

1 year ago

0.0.68

1 year ago

0.0.69

1 year ago

0.0.64

1 year ago

0.0.65

1 year ago

0.0.63

1 year ago

0.0.62

1 year ago

0.0.60

1 year ago

0.0.61

1 year ago

0.0.59

1 year ago

0.0.53

1 year ago

0.0.54

1 year ago

0.0.55

1 year ago

0.0.56

1 year ago

0.0.57

1 year ago

0.0.58

1 year ago

0.0.51

1 year ago

0.0.52

1 year ago

0.0.50

1 year ago

0.0.49

1 year ago

0.0.46

1 year ago

0.0.47

1 year ago

0.0.2

1 year ago

0.0.48

1 year ago

0.0.40

1 year ago

0.0.41

1 year ago

0.0.42

1 year ago

0.0.43

1 year ago

0.0.45

1 year ago

0.0.37

1 year ago

0.0.38

1 year ago

0.0.39

1 year ago

0.0.36

1 year ago

0.0.35

1 year ago

0.0.32

1 year ago

0.0.33

1 year ago

0.0.34

1 year ago

0.0.30

1 year ago

0.0.31

1 year ago

0.0.26

1 year ago

0.0.27

1 year ago

0.0.28

1 year ago

0.0.29

1 year ago

0.0.20

1 year ago

0.0.21

1 year ago

0.0.22

1 year ago

0.0.23

1 year ago

0.0.24

1 year ago

0.0.25

1 year ago

0.0.19

1 year ago

0.0.18

1 year ago

0.0.17

1 year ago

0.0.16

1 year ago

0.0.15

1 year ago

0.0.14

1 year ago

0.0.13

1 year ago

0.0.12

1 year ago

0.0.11

1 year ago

0.0.10

1 year ago

0.0.1

1 year ago

0.0.0

1 year ago