The Fingerprint React SDK is an easy way to integrate Fingerprint into your Preact application. It supports all capabilities of the JS agent and provides a built-in caching mechanism.

How to install

Add @fingerprintjs/fingerprintjs-pro-react as a dependency to your application via npm or yarn.

npm install @fingerprintjs/fingerprintjs-pro-react
yarn add @fingerprintjs/fingerprintjs-pro-react

Wrap your application (or component) in FpjsProvider. You need to specify your public API key and other configuration options based on your chosen region and active integration.

// src/components/app.js
import {
  FpjsProvider,
  // defaultEndpoint,
  // defaultScriptUrlPattern
} from '@fingerprintjs/fingerprintjs-pro-react';
import Home from '../routes/home';

export default function Wrapper() {
  return (
    <FpjsProvider
      loadOptions={{
        apiKey: "<PUBLIC_API_KEY>",
        // endpoint: ["<CUSTOM_ENDPOINT>", defaultEndpoint],
        // scriptUrlPattern: ["<CUSTOM_SCRIPT_URL>", defaultScriptUrlPattern],
        // region: "eu"
      }}
    >
      <Home />
    </FpjsProvider>
  );
}

Use the useVisitorData hook in your components to identify visitors.

// src/routes/home/index.js
import {useVisitorData} from '@fingerprintjs/fingerprintjs-pro-react'

export default function Home() {
  const {isLoading, error, data, getData} = useVisitorData(
    {extendedResult: true},
    {immediate: true}
  )

  return (
    <div id='preact_root'>
      <button onClick={() => getData({ignoreCache: true})}>
        Reload data
      </button>
      <p>VisitorId: {isLoading ? 'Loading...' : data?.visitorId}</p>
      <p>Full visitor data:</p>
      <pre>{error ? error.message : JSON.stringify(data, null, 2)}</pre>
    </div>
  )
}

Note: The Fingerprint React SDK is available as an NPM package. If you are using Preact without a build tool, you can use the JS agent directly by importing it from our CDN.

Documentation

You can find the full documentation in the official GitHub repository. The repository also contains an example app demonstrating usage of the library.