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