mirror of
https://github.com/kremalicious/metamask-extension.git
synced 2024-11-22 18:00:18 +01:00
b9d9112b97
* dealt with most of the problems in the Create Account dialog * Fixed "newAccountNumberName" localizations * In another language, don't allow accounts named, for instance, Cuenta 3 * Editing an account name later now follows the same rules * Fixing lint errors * Responding to the review by @adonesky1 * Worked with @montelaidev to alter the RegExp, in order to catch spaces before and after the account name * Fixed line breaks for eslint
38 lines
1.2 KiB
JavaScript
38 lines
1.2 KiB
JavaScript
export function getAccountNameErrorMessage(
|
|
accounts,
|
|
context,
|
|
newAccountName,
|
|
defaultAccountName,
|
|
) {
|
|
const isDuplicateAccountName = accounts.some(
|
|
(item) => item.name === newAccountName,
|
|
);
|
|
|
|
const localizedWordForAccount = context
|
|
.t('newAccountNumberName')
|
|
.replace(' $1', '');
|
|
|
|
// Match strings starting with ${localizedWordForAccount} and then any numeral, case insensitive
|
|
// Trim spaces before and after
|
|
const reservedRegEx = new RegExp(
|
|
`^\\s*${localizedWordForAccount} \\d+\\s*$`,
|
|
'iu',
|
|
);
|
|
const isReservedAccountName = reservedRegEx.test(newAccountName);
|
|
|
|
const isValidAccountName =
|
|
newAccountName === defaultAccountName || // What is written in the text field is the same as the placeholder
|
|
(!isDuplicateAccountName && !isReservedAccountName);
|
|
|
|
let errorMessage;
|
|
if (isValidAccountName) {
|
|
errorMessage = '\u200d'; // This is Unicode for an invisible character, so the spacing stays constant
|
|
} else if (isDuplicateAccountName) {
|
|
errorMessage = context.t('accountNameDuplicate');
|
|
} else if (isReservedAccountName) {
|
|
errorMessage = context.t('accountNameReserved');
|
|
}
|
|
|
|
return { isValidAccountName, errorMessage };
|
|
}
|