import { useCallback } from "react"; import { CryptoCurrency, CryptoOrTokenCurrency } from "@ledgerhq/types-cryptoassets"; import { isCurrencySupported } from "@ledgerhq/ledger-wallet-framework/currencies/support"; import { useCurrenciesUnderFeatureFlag } from "./useCurrenciesUnderFeatureFlag"; /** * Hook that returns a predicate function to check if a currency or token is accepted. * A currency is accepted if: * - It is supported by the platform (via isCurrencySupported) * - It is not deactivated by a feature flag * * For tokens, the parent currency is checked instead. */ export function useAcceptedCurrency() { const { deactivatedCurrencyIds } = useCurrenciesUnderFeatureFlag(); const isAcceptedCurrency = useCallback( (currencyOrToken: CryptoOrTokenCurrency): boolean => { const currency: CryptoCurrency = currencyOrToken.type === "TokenCurrency" ? currencyOrToken.parentCurrency : currencyOrToken; return isCurrencySupported(currency) && !deactivatedCurrencyIds.has(currency.id); }, [deactivatedCurrencyIds], ); return isAcceptedCurrency; }