ConnectivityProvider
Provider component that configures ConnectivityClient and supplies default options to the React tree.
Signature
function ConnectivityProvider(props: ConnectivityProviderProps): ReactElement;Props
| Prop | Type | Required | Default | Description |
|---|---|---|---|---|
children | ReactNode | ✅ | — | React tree |
detectors | Detector[] | ✅ | — | Connectivity detection strategies |
gracePeriodMs | number | 0 | Grace period before offline transition (ms) | |
onJobError | (error, job) => void | — | Called on final job failure | |
defaultOptions | ConnectivityProviderOptions | — | Global defaults |
defaultOptions
interface ConnectivityProviderOptions {
actions?: Partial<ActionOptions>;
connectivity?: {
fallback?: ReactNode;
delayMs?: number;
};
};Behavior
- First render:
getConnectivityClient(options)initializes singleton useEffect: callsclient.start()- Unmount: calls
client.destroy() defaultOptionsprovided to subtree via React Context
Example
<ConnectivityProvider
detectors={[browserOnlineDetector(), heartbeatDetector({ url: '/api/health' })]}
gracePeriodMs={3_000}
onJobError={(error, job) => Sentry.captureException(error)}
defaultOptions={{
actions: {
whenOffline: 'queue',
retry: { maxAttempts: 3, backoffMs: (n) => n * 1_000 },
},
connectivity: {
fallback: <GlobalOffline />,
delayMs: 2_000,
},
}}
>
<App />
</ConnectivityProvider>Without Provider
All hooks reference the singleton directly. Without Provider:
defaultOptionswon’t apply- You must call
start()manually
See Without React.
Related
Last updated on