wagmi
Version:
React Hooks for Ethereum
33 lines • 1.23 kB
JavaScript
'use client';
import { useQueryClient } from '@tanstack/react-query';
import { getBlockQueryOptions, } from '@wagmi/core/query';
import { useQuery } from '../utils/query.js';
import { useChainId } from './useChainId.js';
import { useConfig } from './useConfig.js';
import { useWatchBlocks, } from './useWatchBlocks.js';
/** https://wagmi.sh/react/hooks/useBlock */
export function useBlock(parameters = {}) {
const config = useConfig(parameters);
const chainId = useChainId({ config });
const options = getBlockQueryOptions(config, {
...parameters,
chainId: parameters.chainId ?? chainId,
});
const queryClient = useQueryClient();
useWatchBlocks({
...{
config: parameters.config,
chainId: parameters.chainId,
...(typeof parameters.watch === 'object' ? parameters.watch : {}),
},
enabled: Boolean((options.enabled ?? true) &&
(typeof parameters.watch === 'object'
? parameters.watch.enabled
: parameters.watch)),
onBlock(block) {
queryClient.setQueryData(options.queryKey, block);
},
});
return useQuery(options);
}
//# sourceMappingURL=useBlock.js.map