mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-27 12:56:01 +01: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.
48 lines
1.8 KiB
JavaScript
48 lines
1.8 KiB
JavaScript
import { useMemo } from 'react';
|
|
import { useSelector } from 'react-redux';
|
|
import { getCurrentCurrency, getShouldShowFiat } from '../selectors';
|
|
import { decEthToConvertedCurrency } from '../helpers/utils/conversions.util';
|
|
import { formatCurrency } from '../helpers/utils/confirm-tx.util';
|
|
import { getConversionRate } from '../ducks/metamask/metamask';
|
|
|
|
/**
|
|
* Get an Eth amount converted to fiat and formatted for display
|
|
*
|
|
* @param {string} [ethAmount] - The eth amount to convert
|
|
* @param {Object} [overrides] - A configuration object that allows the called to explicitly
|
|
* ensure fiat is shown even if the property is not set in state.
|
|
* @param {boolean} [overrides.showFiat] - If truthy, ensures the fiat value is shown even if the showFiat value from state is falsey
|
|
* @param {boolean} hideCurrencySymbol - Indicates whether the returned formatted amount should include the trailing currency symbol
|
|
* @returns {string} The formatted token amount in the user's chosen fiat currency
|
|
*/
|
|
export function useEthFiatAmount(
|
|
ethAmount,
|
|
overrides = {},
|
|
hideCurrencySymbol,
|
|
) {
|
|
const conversionRate = useSelector(getConversionRate);
|
|
const currentCurrency = useSelector(getCurrentCurrency);
|
|
const userPrefersShownFiat = useSelector(getShouldShowFiat);
|
|
const showFiat = overrides.showFiat ?? userPrefersShownFiat;
|
|
const formattedFiat = useMemo(
|
|
() => decEthToConvertedCurrency(ethAmount, currentCurrency, conversionRate),
|
|
[conversionRate, currentCurrency, ethAmount],
|
|
);
|
|
|
|
if (
|
|
!showFiat ||
|
|
currentCurrency.toUpperCase() === 'ETH' ||
|
|
conversionRate <= 0 ||
|
|
ethAmount === undefined
|
|
) {
|
|
return undefined;
|
|
}
|
|
|
|
return hideCurrencySymbol
|
|
? formatCurrency(formattedFiat, currentCurrency)
|
|
: `${formatCurrency(
|
|
formattedFiat,
|
|
currentCurrency,
|
|
)} ${currentCurrency.toUpperCase()}`;
|
|
}
|