import React, { useCallback, useEffect, useState } from 'react'; import { FormattedMessage as T } from 'components'; import { CLASSES } from 'common/classes'; import classNames from 'classnames'; import { MenuItem, Button } from '@blueprintjs/core'; import { Select } from '@blueprintjs/select'; export default function CurrencySelectList({ currenciesList, selectedCurrencyCode, defaultSelectText = , onCurrencySelected, popoverFill = false, disabled = false, }) { const [selectedCurrency, setSelectedCurrency] = useState(null); // Filters currencies list. const filterCurrencies = (query, currency, _index, exactMatch) => { const normalizedTitle = currency.currency_code.toLowerCase(); const normalizedQuery = query.toLowerCase(); if (exactMatch) { return normalizedTitle === normalizedQuery; } else { return ( `${currency.currency_code} ${normalizedTitle}`.indexOf( normalizedQuery, ) >= 0 ); } }; const onCurrencySelect = useCallback((currency) => { setSelectedCurrency({ ...currency }); onCurrencySelected && onCurrencySelected(currency); }); const currencyCodeRenderer = useCallback((CurrencyCode, { handleClick }) => { return ( ); }, []); useEffect(() => { if (typeof selectedCurrencyCode !== 'undefined') { const currency = selectedCurrencyCode ? currenciesList.find((a) => a.currency_code === selectedCurrencyCode) : null; setSelectedCurrency(currency); } }, [selectedCurrencyCode, currenciesList, setSelectedCurrency]); return ( ); }