Simple React Example

Here's a complete React component showing basic SDK integration with built-in authentication:

import './App.css';
import OpenGameSDK, { SDKEvents, SDKOpts } from "@opusgamelabs/game-sdk";

import { useState, useEffect } from 'react';

function App() {
  const [points, setPoints] = useState<number>(0);
  const [sdk, setSdk] = useState<OpenGameSDK | undefined>();
  const [sdkReady, setSdkReady] = useState(false);

  useEffect(() => {
    setSdk(new OpenGameSDK({ ui: { usePointsWidget: true } } as SDKOpts));
  }, []);

  useEffect(() => {
    if (sdk) sdk.init({ gameId: 'insert-game-id' });
  }, [sdk]);

  function updatePoints(): void {
    setPoints(points + 1);
    if (sdk) sdk.addPoints(1);
  }

  async function savePoints(): Promise<void> {
    if (sdk) await sdk.savePoints(points);
  }

  async function login(): Promise<void> {
    if (sdk) await sdk.login();
  }

  sdk?.on(SDKEvents.OnReady, () => {
    console.log('🚀 OpenGameSDK is ready');
    setSdkReady(true);
  });

  return (
    <div className="App">
      <header className="App-header">
        <p>
          Points: {points}
        </p>
        {sdkReady ?
          <>
            <button onClick={login}>Demo Login</button>
            <button onClick={updatePoints}>
              Add point
            </button>
            <button onClick={savePoints}>
              Save score
            </button>
          </> :
          <>
            <p>Loading...</p>
          </>
        }
      </header>
    </div>
  );
}

export default App;

Last updated