Refreshing the SDK

Overview

The SDK runs collectors on initialisation and caches the results for subsequent sends. If a browser window is kept open for an extended period, this cached data may become stale.

To refresh the data, reinitialise the SDK. We recommend writing a wrapper to manage this for you.

Writing a Wrapper

import { useState, useEffect, useCallback } from 'react';
import { InnerworksMetrics } from '@innerworks-me/iw-auth-sdk';

function useInnerworksMetrics({ appId }: { appId: string }) {
  const [metrics, setMetrics] = useState<InnerworksMetrics | null>(null);

  const refresh = useCallback(() => {
    setMetrics(new InnerworksMetrics({ appId }));
  }, [appId]);

  useEffect(() => {
    refresh();
  }, [refresh]);

  return [metrics, refresh] as const;
}

Usage

const [innerworksMetrics, refreshInnerworksMetrics] = useInnerworksMetrics({
  appId: 'your-project-id',
});

// call refreshInnerworksMetrics() at any point to reinitialise the SDK