diff --git a/src/renderer/components/SelectCurrency.js b/src/renderer/components/SelectCurrency.js index 06bd7bc5de..7d68bb2c38 100644 --- a/src/renderer/components/SelectCurrency.js +++ b/src/renderer/components/SelectCurrency.js @@ -62,7 +62,9 @@ const SelectCurrency = ({ const onChangeCallback = useCallback(item => onChange(item ? item.currency : null), [onChange]); const noOptionsMessage = useCallback( ({ inputValue }: { inputValue: string }) => - t("common.selectCurrencyNoOption", { currencyName: inputValue }), + inputValue + ? t("common.selectCurrencyNoOption", { currencyName: inputValue }) + : t("common.selectCurrencyEmptyOption"), [t], ); diff --git a/src/renderer/modals/Send/fields/AmountField.js b/src/renderer/modals/Send/fields/AmountField.js index 676e181612..ddb38c9f52 100644 --- a/src/renderer/modals/Send/fields/AmountField.js +++ b/src/renderer/modals/Send/fields/AmountField.js @@ -70,10 +70,11 @@ const AmountField = ({ if (!status) return null; const { useAllAmount } = transaction; const { amount, errors, warnings } = status; - let { amount: amountError } = errors; + let { amount: amountError, gasPrice: messageGas } = errors; let { amount: amountWarning } = warnings; // we ignore zero case for displaying field error because field is empty. + if (amount.eq(0) && (bridgePending || !useAllAmount)) { amountError = null; amountWarning = null; @@ -115,7 +116,7 @@ const AmountField = ({ { - const [language, region = ""] = locale.split("-"); - const languageDisplayName = new window.Intl.DisplayNames([locale], { type: "language" }).of( - language, +const getRegionOption = (regionLocale, languageLocale) => { + const [language, region = ""] = regionLocale.split("-"); + const languageDisplayName = new window.Intl.DisplayNames([languageLocale], { + type: "language", + }).of(language); + const regionDisplayName = new window.Intl.DisplayNames([languageLocale], { type: "region" }).of( + region, ); - const regionDisplayName = new window.Intl.DisplayNames([locale], { type: "region" }).of(region); const labelPrefix = upperFirst(regionDisplayName); const labelSuffix = regionDisplayName ? ` (${upperFirst(languageDisplayName)})` : ""; const label = `${labelPrefix}${labelSuffix}`; - return { value: locale, locale, language, region, label }; + return { value: regionLocale, locale: regionLocale, language, region, label }; }; -const regionsOptions = Object.keys(regionsByKey) - .map(getRegionOption) - .sort((a, b) => a.label.localeCompare(b.label)); +const getRegionsOptions = languageLocale => + Object.keys(regionsByKey) + .map(regionLocale => getRegionOption(regionLocale, languageLocale)) + .sort((a, b) => a.label.localeCompare(b.label)); const RegionSelect = () => { const dispatch = useDispatch(); + const language = useSelector(languageSelector); const locale = useSelector(localeSelector); + const regionsOptions = useMemo(() => { + return getRegionsOptions(language); + }, [language]); + const handleChangeRegion = useCallback( ({ locale }: { locale: string }) => { moment.locale(locale); @@ -39,8 +47,8 @@ const RegionSelect = () => { ); const currentRegionOption = useMemo( - () => regionsOptions.find(o => o.value === locale) || getRegionOption(locale), - [locale], + () => regionsOptions.find(o => o.value === locale) || getRegionOption(locale, language), + [locale, language, regionsOptions], ); return ( diff --git a/static/i18n/en/app.json b/static/i18n/en/app.json index 5005409353..3983d1dc2a 100644 --- a/static/i18n/en/app.json +++ b/static/i18n/en/app.json @@ -77,6 +77,7 @@ "selectAccountNoOption": "No account matching \"{{accountName}}\"", "selectCurrency": "Choose a crypto asset", "selectCurrencyNoOption": "No crypto asset \"{{currencyName}}\"", + "selectCurrencyEmptyOption": "No crypto asset", "selectValidatorNoOption": "No validator matching \"{{accountName}}\"", "selectNoResults": "No results found matching \"{{query}}\"", "sortBy": "Sort by",