mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-10-22 11:22:43 +02:00
3732c5f71e
ESLint rules have been added to enforce our JSDoc conventions. These rules were introduced by updating `@metamask/eslint-config` to v9. Some of the rules have been disabled because the effort to fix all lint errors was too high. It might be easiest to enable these rules one directory at a time, or one rule at a time. Most of the changes in this PR were a result of running `yarn lint:fix`. There were a handful of manual changes that seemed obvious and simple to make. Anything beyond that and the rule was left disabled.
50 lines
1.7 KiB
JavaScript
50 lines
1.7 KiB
JavaScript
import isEqual from 'lodash/isEqual';
|
|
import { shallowEqual, useSelector } from 'react-redux';
|
|
import {
|
|
getEstimatedGasFeeTimeBounds,
|
|
getGasEstimateType,
|
|
getGasFeeEstimates,
|
|
getIsGasEstimatesLoading,
|
|
} from '../ducks/metamask/metamask';
|
|
import { useSafeGasEstimatePolling } from './useSafeGasEstimatePolling';
|
|
|
|
/**
|
|
* @typedef {object} GasEstimates
|
|
* @property {GasEstimateTypes} gasEstimateType - The type of estimate provided
|
|
* @property {import(
|
|
* '@metamask/controllers'
|
|
* ).GasFeeState['gasFeeEstimates']} gasFeeEstimates - The estimate object
|
|
* @property {import(
|
|
* '@metamask/controllers'
|
|
* ).GasFeeState['estimatedGasFeeTimeBounds']} [estimatedGasFeeTimeBounds] -
|
|
* estimated time boundaries for fee-market type estimates
|
|
* @property {boolean} isGasEstimateLoading - indicates whether the gas
|
|
* estimates are currently loading.
|
|
*/
|
|
|
|
/**
|
|
* Gets the current gasFeeEstimates from state and begins polling for new
|
|
* estimates. When this hook is removed from the tree it will signal to the
|
|
* GasFeeController that it is done requiring new gas estimates. Also checks
|
|
* the returned gas estimate for validity on the current network.
|
|
*
|
|
* @returns {GasFeeEstimates} GasFeeEstimates object
|
|
*/
|
|
export function useGasFeeEstimates() {
|
|
const gasEstimateType = useSelector(getGasEstimateType);
|
|
const gasFeeEstimates = useSelector(getGasFeeEstimates, isEqual);
|
|
const estimatedGasFeeTimeBounds = useSelector(
|
|
getEstimatedGasFeeTimeBounds,
|
|
shallowEqual,
|
|
);
|
|
const isGasEstimatesLoading = useSelector(getIsGasEstimatesLoading);
|
|
useSafeGasEstimatePolling();
|
|
|
|
return {
|
|
gasFeeEstimates,
|
|
gasEstimateType,
|
|
estimatedGasFeeTimeBounds,
|
|
isGasEstimatesLoading,
|
|
};
|
|
}
|