@safe-global/safe-react-hooks
Version:
A collection of React Hooks that facilitates the interaction of React apps with Safe Smart Accounts
25 lines • 1.11 kB
JavaScript
import { useContext, useEffect, useState } from 'react';
import { SafeContext } from '../SafeContext.js';
import { useCompareObject } from '../hooks/helpers/useCompare.js';
import { createSignerClient } from '../createClient.js';
/**
* Hook to get a SafeClient instance with signing capabilities.
* @param params Parameters to customize the hook behavior.
* @param params.config SafeConfig to use instead of the one provided by `SafeProvider`.
* @returns SafeClient instance or `undefined` if the SafeClient is not initialized yet.
*/
export function useSignerClient(params = {}) {
const { signerClient: signerClientContext } = useContext(SafeContext);
const [signerClient, setSignerClient] = useState();
const hasConfigChanged = useCompareObject(params.config);
useEffect(() => {
if (params.config && hasConfigChanged) {
createSignerClient(params.config).then(setSignerClient);
}
}, [params.config, hasConfigChanged]);
if (params.config) {
return signerClient;
}
return signerClientContext;
}
//# sourceMappingURL=useSignerClient.js.map