useExtensions
A hook that interacts with extensions and exposes their status.
Usage
Extensions data can be accessed with the useExtensions
hook in any component wrapped with ExtensionsProvider
:
import { useExtensions } from '@w3ux/react-connect-kit';
const extensions = useExtensions();
Syncing Extensions
Web3 extensions are injected into the window.injectedWeb3
object, which is an asynchronous process that happens when the window loads. For this reason, ExtensionsProvider
also provides a gettingExtensions
boolean value, that signals whether the initial check for injectedWeb3 is underway.
gettingExtensions
will initially be true, and updated to false once window.injectedWeb3
is present, or if injectedWeb3 is not found after a 5 second timeout.
Interface
gettingExtensions
boolean
Returns a boolean reflecting whether window.injectedWeb3
is being checked.
extensionsStatus
Record<string, Extens`ionStatus>
A key value record of each extension and their status. Empty object by default until setExtensionStatus
is called.
setExtensionStatus
(id: string, status: ExtensionStatus): void
A function that takes an extension id and status, and updates the extensionsStatus record. Accepts values of installed
, not_authenticated
and connected
.
removeExtensionStatus
(id: string): void
Removes an extension from the extensionsStatus
record. This should be called when the extension is not found / not installed.
extensionInstalled
(id: string): boolean
A function that takes an extension id checks whether the extension is installed.
extensionCanConnect
(id: string): boolean
Checks if the provided extension id can be connected to. Returns false if the extension is not installed or is not connected.