UNPKG

@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
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