diff --git a/src/CONST.ts b/src/CONST.ts index b79a7979681c..048c2dee5bab 100755 --- a/src/CONST.ts +++ b/src/CONST.ts @@ -79,6 +79,10 @@ const CONST = { RESERVED_FIRST_NAMES: ['Expensify', 'Concierge'], }, + LEGAL_NAME: { + MAX_LENGTH: 40, + }, + PULL_REQUEST_NUMBER, MERCHANT_NAME_MAX_LENGTH: 255, diff --git a/src/pages/settings/Profile/PersonalDetails/LegalNamePage.js b/src/pages/settings/Profile/PersonalDetails/LegalNamePage.js index 725c3f4ffbb9..046af8204b97 100644 --- a/src/pages/settings/Profile/PersonalDetails/LegalNamePage.js +++ b/src/pages/settings/Profile/PersonalDetails/LegalNamePage.js @@ -19,6 +19,7 @@ import Navigation from '../../../../libs/Navigation/Navigation'; import ROUTES from '../../../../ROUTES'; import usePrivatePersonalDetails from '../../../../hooks/usePrivatePersonalDetails'; import FullscreenLoadingIndicator from '../../../../components/FullscreenLoadingIndicator'; +import * as ErrorUtils from '../../../../libs/ErrorUtils'; const propTypes = { /* Onyx Props */ @@ -53,16 +54,22 @@ function LegalNamePage(props) { const errors = {}; if (!ValidationUtils.isValidLegalName(values.legalFirstName)) { - errors.legalFirstName = 'privatePersonalDetails.error.hasInvalidCharacter'; + ErrorUtils.addErrorMessage(errors, 'legalFirstName', 'privatePersonalDetails.error.hasInvalidCharacter'); } else if (_.isEmpty(values.legalFirstName)) { errors.legalFirstName = 'common.error.fieldRequired'; } + if (values.legalFirstName.length > CONST.LEGAL_NAME.MAX_LENGTH) { + ErrorUtils.addErrorMessage(errors, 'legalFirstName', ['common.error.characterLimitExceedCounter', {length: values.legalFirstName.length, limit: CONST.LEGAL_NAME.MAX_LENGTH}]); + } if (!ValidationUtils.isValidLegalName(values.legalLastName)) { - errors.legalLastName = 'privatePersonalDetails.error.hasInvalidCharacter'; + ErrorUtils.addErrorMessage(errors, 'legalLastName', 'privatePersonalDetails.error.hasInvalidCharacter'); } else if (_.isEmpty(values.legalLastName)) { errors.legalLastName = 'common.error.fieldRequired'; } + if (values.legalLastName.length > CONST.LEGAL_NAME.MAX_LENGTH) { + ErrorUtils.addErrorMessage(errors, 'legalLastName', ['common.error.characterLimitExceedCounter', {length: values.legalLastName.length, limit: CONST.LEGAL_NAME.MAX_LENGTH}]); + } return errors; }, []); @@ -96,7 +103,7 @@ function LegalNamePage(props) { accessibilityLabel={props.translate('privatePersonalDetails.legalFirstName')} accessibilityRole={CONST.ACCESSIBILITY_ROLE.TEXT} defaultValue={legalFirstName} - maxLength={CONST.DISPLAY_NAME.MAX_LENGTH} + maxLength={CONST.LEGAL_NAME.MAX_LENGTH + CONST.SEARCH_MAX_LENGTH} spellCheck={false} /> @@ -108,7 +115,7 @@ function LegalNamePage(props) { accessibilityLabel={props.translate('privatePersonalDetails.legalLastName')} accessibilityRole={CONST.ACCESSIBILITY_ROLE.TEXT} defaultValue={legalLastName} - maxLength={CONST.DISPLAY_NAME.MAX_LENGTH} + maxLength={CONST.LEGAL_NAME.MAX_LENGTH + CONST.SEARCH_MAX_LENGTH} spellCheck={false} />