Skip to main content

Step 3: Connect to RelayX

Create dashboard/src/relayx.js to hold the shared RelayApp instance:

import { RelayApp } from "@relay-x/app-sdk";

export const app = new RelayApp({
api_key: import.meta.env.VITE_RELAYX_API_KEY,
secret: import.meta.env.VITE_RELAYX_SECRET,
mode: import.meta.env.VITE_RELAYX_MODE || "production",
});

export const DEVICE_IDENT = import.meta.env.VITE_DEVICE_IDENT;

Wrap the app tree in RelayProvider. Edit dashboard/src/main.jsx:

import React from "react";
import ReactDOM from "react-dom/client";
import { RelayProvider } from "@relay-x/ui";
import "@relay-x/ui/styles.css";

import { app } from "./relayx";
import App from "./App";

ReactDOM.createRoot(document.getElementById("root")).render(
<React.StrictMode>
<RelayProvider app={app}>
<App />
</RelayProvider>
</React.StrictMode>,
);

Every hook and component inside RelayProvider has access to RelayX with no further wiring.

Test it

Start the dev server:

npm run dev

Open http://localhost:5173. The page loads without errors. Open the browser console and verify there are no authentication or connection errors.