DevTools
Connectivity DevTools is a debugging panel that visualizes connectivity state and the job queue, and lets you manually control retry, cancel, and flush.
Demo
In the demo below, switch to offline and run actions to see jobs queuing up in the DevTools panel (bottom-right). You can manually control them with Retry, Cancel, and Flush All buttons.
Live
Offline
Toggle network to see toast notifications
Offline
Actions
→ Stored in queue
Offline Queue
Queue is empty
import { useConnectivity } from "@connectivity-js/react" import { toast } from "sonner" function NetworkStatus() { const { status } = useConnectivity() useEffect(() => { if (status === "offline") { toast.error("You are offline") } else if (status === "online") { toast.success("Back online!") } }, [status]) return <div>Status: {status}</div> }
React Usage
Install @connectivity-js/react-devtools and add <ConnectivityDevTools /> to your app:
pnpm add @connectivity-js/react-devtoolsimport {
ConnectivityProvider,
browserOnlineDetector,
} from "@connectivity-js/react";
import { getConnectivityClient } from "@connectivity-js/core";
import { ConnectivityDevTools } from "@connectivity-js/react-devtools";
function App() {
return (
<ConnectivityProvider detectors={[browserOnlineDetector()]}>
<YourApp />
<ConnectivityDevTools client={getConnectivityClient()} />
</ConnectivityProvider>
);
}Props
| Prop | Type | Default | Description |
|---|---|---|---|
client | ConnectivityClient | — | ConnectivityClient instance (required) |
position | 'bottom-left' | 'bottom-right' | 'bottom-right' | Panel position |
initialOpen | boolean | true | Whether panel is open initially |
enabled | boolean | true | Whether to show the panel |
Vanilla JS Usage
Use @connectivity-js/devtools without React:
pnpm add @connectivity-js/core @connectivity-js/devtoolsimport {
getConnectivityClient,
browserOnlineDetector,
} from "@connectivity-js/core";
import { renderConnectivityDevTools } from "@connectivity-js/devtools";
const client = getConnectivityClient({
detectors: [browserOnlineDetector()],
});
client.start();
const cleanup = renderConnectivityDevTools(document.body, client, {
position: "bottom-right",
initialOpen: true,
});
// on unmount
cleanup();Panel Features
- Status: Current connectivity state (online/offline/unknown), duration, quality (rtt, effectiveType, downlink)
- Queue: Job list with actionKey, status, input, Retry/Cancel buttons
- Flush All: Flush all pending jobs
Last updated on