Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ function PaymentCardChangeCurrencyForm({changeBillingCurrency, isSecurityCodeReq
const [currency, setCurrency] = useState<ValueOf<typeof CONST.PAYMENT_CARD_CURRENCY>>(initialCurrency ?? CONST.PAYMENT_CARD_CURRENCY.USD);

const validate = (values: FormOnyxValues<typeof ONYXKEYS.FORMS.CHANGE_BILLING_CURRENCY_FORM>): FormInputErrors<typeof ONYXKEYS.FORMS.CHANGE_BILLING_CURRENCY_FORM> => {
const errors = getFieldRequiredErrors(values, REQUIRED_FIELDS);
const errors = getFieldRequiredErrors(values, REQUIRED_FIELDS, translate);

if (values.securityCode && !isValidSecurityCode(values.securityCode)) {
errors.securityCode = translate('addPaymentCardPage.error.securityCode');
Expand Down
2 changes: 1 addition & 1 deletion src/components/AddPaymentCard/PaymentCardForm.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ function PaymentCardForm({
const [cardNumber, setCardNumber] = useState('');

const validate = (values: FormOnyxValues<typeof ONYXKEYS.FORMS.ADD_PAYMENT_CARD_FORM>): FormInputErrors<typeof ONYXKEYS.FORMS.ADD_PAYMENT_CARD_FORM> => {
const errors = getFieldRequiredErrors(values, REQUIRED_FIELDS);
const errors = getFieldRequiredErrors(values, REQUIRED_FIELDS, translate);

if (values.nameOnCard && !isValidLegalName(values.nameOnCard)) {
errors.nameOnCard = translate(label.error.nameOnCard);
Expand Down
2 changes: 1 addition & 1 deletion src/components/SubStepForms/AddressStep.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ function AddressStep<TFormID extends keyof OnyxFormValuesMapping>({

const validate = useCallback(
(values: FormOnyxValues<TFormID>): FormInputErrors<TFormID> => {
const errors = getFieldRequiredErrors(values, stepFields);
const errors = getFieldRequiredErrors(values, stepFields, translate);

const street = values[inputFieldsIDs.street as keyof typeof values];
if (street && !isValidAddress(street as FormValue)) {
Expand Down
2 changes: 1 addition & 1 deletion src/components/SubStepForms/AgreementsFullStep.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@ function AgreementsFullStep<TFormID extends keyof OnyxFormValuesMapping>({

const validate = useCallback(
(values: FormOnyxValues<TFormID>): FormInputErrors<TFormID> => {
const errors = getFieldRequiredErrors(values, stepFields);
const errors = getFieldRequiredErrors(values, stepFields, translate);

if (!isRequiredFulfilled(values[inputIDs.authorizedToBindClientToAgreement] as string)) {
errors[inputIDs.authorizedToBindClientToAgreement] = translate('agreementsStep.error.authorized');
Expand Down
9 changes: 6 additions & 3 deletions src/components/SubStepForms/CountryFullStep.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,12 @@ function CountryFullStep({onBackButtonPress, stepNames, onSubmit, policyID, isCo
onSubmit();
};

const validate = useCallback((values: FormOnyxValues<typeof ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM>): FormInputErrors<typeof ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM> => {
return getFieldRequiredErrors(values, [COUNTRY]);
}, []);
const validate = useCallback(
(values: FormOnyxValues<typeof ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM>): FormInputErrors<typeof ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM> => {
return getFieldRequiredErrors(values, [COUNTRY], translate);
},
[translate],
);

useEffect(() => {
clearErrors(ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM);
Expand Down
2 changes: 1 addition & 1 deletion src/components/SubStepForms/DateOfBirthStep.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ function DateOfBirthStep<TFormID extends keyof OnyxFormValuesMapping>({

const validate = useCallback(
(values: FormOnyxValues<TFormID>): FormInputErrors<TFormID> => {
const errors = getFieldRequiredErrors(values, stepFields);
const errors = getFieldRequiredErrors(values, stepFields, translate);

const valuesToValidate = values[dobInputID as keyof FormOnyxValues<TFormID>] as string;
if (valuesToValidate) {
Expand Down
4 changes: 2 additions & 2 deletions src/components/SubStepForms/DocusignFullStep.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -65,9 +65,9 @@ function DocusignFullStep<TFormID extends keyof OnyxFormValuesMapping>({

const validate = useCallback(
(values: FormOnyxValues<TFormID>): FormInputErrors<TFormID> => {
return getFieldRequiredErrors(values, [inputID]);
return getFieldRequiredErrors(values, [inputID], translate);
},
[inputID],
[inputID, translate],
);

const handleSelectFile = (files: FileObject[]) => {
Expand Down
2 changes: 1 addition & 1 deletion src/components/SubStepForms/FullNameStep.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ function FullNameStep<TFormID extends keyof OnyxFormValuesMapping>({

const validate = useCallback(
(values: FormOnyxValues<TFormID>): FormInputErrors<TFormID> => {
const errors = getFieldRequiredErrors(values, stepFields);
const errors = getFieldRequiredErrors(values, stepFields, translate);

const firstName = values[firstNameInputID as keyof FormOnyxValues<TFormID>] as string;
if (!isRequiredFulfilled(firstName)) {
Expand Down
4 changes: 2 additions & 2 deletions src/components/SubStepForms/PushRowFieldsStep.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -39,9 +39,9 @@ function PushRowFieldsStep<TFormID extends keyof OnyxFormValuesMapping>({formID,

const validate = useCallback(
(values: FormOnyxValues<TFormID>): FormInputErrors<TFormID> => {
return getFieldRequiredErrors(values, pushRowFieldsIDs);
return getFieldRequiredErrors(values, pushRowFieldsIDs, translate);
},
[pushRowFieldsIDs],
[pushRowFieldsIDs, translate],
);

return (
Expand Down
2 changes: 1 addition & 1 deletion src/components/SubStepForms/RegistrationNumberStep.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,7 @@ function RegistrationNumberStep<TFormID extends keyof OnyxFormValuesMapping>({

const validate = useCallback(
(values: FormOnyxValues<TFormID>): FormInputErrors<TFormID> => {
const errors = getFieldRequiredErrors(values, [inputID]);
const errors = getFieldRequiredErrors(values, [inputID], translate);

if (values[inputID] && !isValidRegistrationNumber(values[inputID] as string, country)) {
errors[inputID] = translate('businessInfoStep.error.registrationNumber');
Expand Down
2 changes: 1 addition & 1 deletion src/components/TextPicker/TextSelectorModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ function TextSelectorModal({
const formValue = values[rest.inputID];

if (required) {
errors = getFieldRequiredErrors(values, [rest.inputID]);
errors = getFieldRequiredErrors(values, [rest.inputID], translate);
}

if (formValue.length > maxLength) {
Expand Down
24 changes: 13 additions & 11 deletions src/libs/ValidationUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,6 @@ import type {OnyxFormKey} from '@src/ONYXKEYS';
import type {Report, TaxRates} from '@src/types/onyx';
import {getMonthFromExpirationDateString, getYearFromExpirationDateString} from './CardUtils';
import DateUtils from './DateUtils';
// eslint-disable-next-line @typescript-eslint/no-deprecated
import {translateLocal} from './Localize';
import {getPhoneNumberWithoutSpecialChars} from './LoginUtils';
import {parsePhoneNumber} from './PhoneNumber';
import StringUtils from './StringUtils';
Expand Down Expand Up @@ -122,15 +120,19 @@ function isRequiredFulfilled(value?: FormValue | number[] | string[] | Record<st
* @param values - all form values
* @param requiredFields - required fields for particular form
*/
function getFieldRequiredErrors<TFormID extends OnyxFormKey>(values: FormOnyxValues<TFormID>, requiredFields: Array<FormOnyxKeys<TFormID>>): FormInputErrors<TFormID> {
function getFieldRequiredErrors<TFormID extends OnyxFormKey>(
values: FormOnyxValues<TFormID>,
requiredFields: Array<FormOnyxKeys<TFormID>>,
translate: LocalizedTranslate,
): FormInputErrors<TFormID> {
const errors: FormInputErrors<TFormID> = {};

for (const fieldKey of requiredFields) {
if (isRequiredFulfilled(values[fieldKey] as FormValue)) {
continue;
}
// eslint-disable-next-line @typescript-eslint/no-deprecated
errors[fieldKey] = translateLocal('common.error.fieldRequired');
errors[fieldKey] = translate('common.error.fieldRequired');
}

return errors;
Expand Down Expand Up @@ -213,13 +215,13 @@ function meetsMaximumAgeRequirement(date: string): boolean {
/**
* Validate that given date is in a specified range of years before now.
*/
function getAgeRequirementError(date: string, minimumAge: number, maximumAge: number): string {
function getAgeRequirementError(translate: LocalizedTranslate, date: string, minimumAge: number, maximumAge: number): string {
const currentDate = startOfDay(new Date());
const testDate = parse(date, CONST.DATE.FNS_FORMAT_STRING, currentDate);

if (!isValid(testDate)) {
// eslint-disable-next-line @typescript-eslint/no-deprecated
return translateLocal('common.error.dateInvalid');
return translate('common.error.dateInvalid');
}

const maximalDate = subYears(currentDate, minimumAge);
Expand All @@ -231,31 +233,31 @@ function getAgeRequirementError(date: string, minimumAge: number, maximumAge: nu

if (isSameDay(testDate, maximalDate) || isAfter(testDate, maximalDate)) {
// eslint-disable-next-line @typescript-eslint/no-deprecated
return translateLocal('privatePersonalDetails.error.dateShouldBeBefore', format(maximalDate, CONST.DATE.FNS_FORMAT_STRING));
return translate('privatePersonalDetails.error.dateShouldBeBefore', format(maximalDate, CONST.DATE.FNS_FORMAT_STRING));
}
// eslint-disable-next-line @typescript-eslint/no-deprecated
return translateLocal('privatePersonalDetails.error.dateShouldBeAfter', format(minimalDate, CONST.DATE.FNS_FORMAT_STRING));
return translate('privatePersonalDetails.error.dateShouldBeAfter', format(minimalDate, CONST.DATE.FNS_FORMAT_STRING));
}

/**
* Validate that given date is not in the past.
*/
function getDatePassedError(inputDate: string): string {
function getDatePassedError(translate: LocalizedTranslate, inputDate: string): string {
const currentDate = new Date();
const parsedDate = new Date(`${inputDate}T00:00:00`); // set time to 00:00:00 for accurate comparison

// If input date is not valid, return an error
if (!isValid(parsedDate)) {
// eslint-disable-next-line @typescript-eslint/no-deprecated
return translateLocal('common.error.dateInvalid');
return translate('common.error.dateInvalid');
}

// Clear time for currentDate so comparison is based solely on the date
currentDate.setHours(0, 0, 0, 0);

if (parsedDate < currentDate) {
// eslint-disable-next-line @typescript-eslint/no-deprecated
return translateLocal('common.error.dateInvalid');
return translate('common.error.dateInvalid');
}

return '';
Expand Down
6 changes: 3 additions & 3 deletions src/libs/actions/TaxRate.ts
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ function covertTaxNameToID(name: string) {
* Function to validate tax name
*/
const validateTaxName = (policy: Policy, values: FormOnyxValues<typeof ONYXKEYS.FORMS.WORKSPACE_TAX_NAME_FORM>, translate: LocalizedTranslate) => {
const errors = getFieldRequiredErrors(values, [INPUT_IDS.NAME]);
const errors = getFieldRequiredErrors(values, [INPUT_IDS.NAME], translate);

const name = values[INPUT_IDS.NAME];
if (name.length > CONST.TAX_RATES.NAME_MAX_LENGTH) {
Expand All @@ -53,7 +53,7 @@ const validateTaxName = (policy: Policy, values: FormOnyxValues<typeof ONYXKEYS.
};

const validateTaxCode = (policy: Policy, values: FormOnyxValues<typeof ONYXKEYS.FORMS.WORKSPACE_TAX_CODE_FORM>, translate: LocalizedTranslate) => {
const errors = getFieldRequiredErrors(values, [INPUT_IDS_TAX_CODE.TAX_CODE]);
const errors = getFieldRequiredErrors(values, [INPUT_IDS_TAX_CODE.TAX_CODE], translate);

const taxCode = values[INPUT_IDS_TAX_CODE.TAX_CODE];
if (taxCode.length > CONST.TAX_RATES.NAME_MAX_LENGTH) {
Expand All @@ -69,7 +69,7 @@ const validateTaxCode = (policy: Policy, values: FormOnyxValues<typeof ONYXKEYS.
* Function to validate tax value
*/
const validateTaxValue = (values: FormOnyxValues<typeof ONYXKEYS.FORMS.WORKSPACE_TAX_VALUE_FORM>, translate: LocalizedTranslate) => {
const errors = getFieldRequiredErrors(values, [INPUT_IDS.VALUE]);
const errors = getFieldRequiredErrors(values, [INPUT_IDS.VALUE], translate);

const value = values[INPUT_IDS.VALUE];
if (!isValidPercentage(value)) {
Expand Down
2 changes: 1 addition & 1 deletion src/pages/EnablePayments/AdditionalDetailsStep.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -69,14 +69,14 @@
function AdditionalDetailsStep({currentUserPersonalDetails}: AdditionalDetailsStepProps) {
const {translate} = useLocalize();
const styles = useThemeStyles();
const [walletAdditionalDetails = DEFAULT_WALLET_ADDITIONAL_DETAILS] = useOnyx(ONYXKEYS.WALLET_ADDITIONAL_DETAILS);

Check failure on line 72 in src/pages/EnablePayments/AdditionalDetailsStep.tsx

View workflow job for this annotation

GitHub Actions / Changed files ESLint check

useOnyx() calls require you to pass the "canBeMissing" param
const currentDate = new Date();
const minDate = subYears(currentDate, CONST.DATE_BIRTH.MAX_AGE);
const maxDate = subYears(currentDate, CONST.DATE_BIRTH.MIN_AGE_FOR_PAYMENT);
const shouldAskForFullSSN = walletAdditionalDetails?.errorCode === CONST.WALLET.ERROR.SSN;

const validate = (values: FormOnyxValues<typeof ONYXKEYS.FORMS.WALLET_ADDITIONAL_DETAILS>): FormInputErrors<typeof ONYXKEYS.FORMS.WALLET_ADDITIONAL_DETAILS> => {
const errors = getFieldRequiredErrors(values, STEP_FIELDS);
const errors = getFieldRequiredErrors(values, STEP_FIELDS, translate);

if (values.dob) {
if (!isValidPastDate(values.dob) || !meetsMaximumAgeRequirement(values.dob)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ function PhoneNumberStep({onNext, onMove, isEditing}: SubStepProps) {

const validate = useCallback(
(values: FormOnyxValues<typeof ONYXKEYS.FORMS.WALLET_ADDITIONAL_DETAILS>): FormInputErrors<typeof ONYXKEYS.FORMS.WALLET_ADDITIONAL_DETAILS> => {
const errors = getFieldRequiredErrors(values, STEP_FIELDS);
const errors = getFieldRequiredErrors(values, STEP_FIELDS, translate);

if (values.phoneNumber) {
const phoneNumberWithCountryCode = appendCountryCode(values.phoneNumber, countryCode);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ function SocialSecurityNumberStep({onNext, onMove, isEditing}: SubStepProps) {

const validate = useCallback(
(values: FormOnyxValues<typeof ONYXKEYS.FORMS.WALLET_ADDITIONAL_DETAILS>): FormInputErrors<typeof ONYXKEYS.FORMS.WALLET_ADDITIONAL_DETAILS> => {
const errors = getFieldRequiredErrors(values, STEP_FIELDS);
const errors = getFieldRequiredErrors(values, STEP_FIELDS, translate);

if (shouldAskForFullSSN) {
if (values.ssn && !isValidSSNFullNine(values.ssn)) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,9 +19,9 @@ function JobTitle({onNext, onMove, isEditing}: SubStepProps) {

const validate = useCallback(
(values: FormOnyxValues<typeof ONYXKEYS.FORMS.ENTER_SINGER_INFO_FORM>): FormInputErrors<typeof ONYXKEYS.FORMS.ENTER_SINGER_INFO_FORM> => {
return getFieldRequiredErrors(values, [inputID]);
return getFieldRequiredErrors(values, [inputID], translate);
},
[inputID],
[inputID, translate],
);

const handleSubmit = useEnterSignerInfoStepFormSubmit({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ function Name({onNext, onMove, isEditing}: SubStepProps) {

const validate = useCallback(
(values: FormOnyxValues<typeof ONYXKEYS.FORMS.ENTER_SINGER_INFO_FORM>): FormInputErrors<typeof ONYXKEYS.FORMS.ENTER_SINGER_INFO_FORM> => {
const errors = getFieldRequiredErrors(values, [inputID]);
const errors = getFieldRequiredErrors(values, [inputID], translate);

if (values[inputID] && !isValidLegalName(String(values[inputID]))) {
errors[inputID] = translate('bankAccount.error.fullName');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,9 +69,9 @@ function UploadDocuments({onNext, isEditing, policyID}: UploadDocumentsProps) {
const validate = useCallback(
(values: FormOnyxValues<typeof ONYXKEYS.FORMS.ENTER_SINGER_INFO_FORM>): FormInputErrors<typeof ONYXKEYS.FORMS.ENTER_SINGER_INFO_FORM> => {
setIsPDSandFSGDownloadedTouched(true);
return getFieldRequiredErrors(values, STEP_FIELDS);
return getFieldRequiredErrors(values, STEP_FIELDS, translate);
},
[STEP_FIELDS],
[STEP_FIELDS, translate],
);

const handleSubmit = useEnterSignerInfoStepFormSubmit({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,8 +58,8 @@ function Documents({onNext, isEditing, ownerBeingModifiedID}: DocumentsProps) {

const validate = useCallback(
(values: FormOnyxValues<typeof ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM>): FormInputErrors<typeof ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM> =>
getFieldRequiredErrors(values, STEP_FIELDS),
[STEP_FIELDS],
getFieldRequiredErrors(values, STEP_FIELDS, translate),
[STEP_FIELDS, translate],
);

const handleSelectFile = (files: FileObject[], uploadedFiles: FileObject[], inputID: string, setFiles: React.Dispatch<React.SetStateAction<FileObject[]>>) => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

function Last4SSN({onNext, isEditing, onMove, isUserEnteringHisOwnData, ownerBeingModifiedID}: Last4SSNProps) {
const {translate} = useLocalize();
const [reimbursementAccountDraft] = useOnyx(ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM_DRAFT);

Check failure on line 19 in src/pages/ReimbursementAccount/NonUSD/BeneficialOwnerInfo/BeneficialOwnerDetailsFormSubSteps/Last4SSN.tsx

View workflow job for this annotation

GitHub Actions / Changed files ESLint check

useOnyx() calls require you to pass the "canBeMissing" param

const last4SSNInputID = `${PREFIX}_${ownerBeingModifiedID}_${SSN_LAST_4}` as const;
const defaultLast4SSN = SafeString(reimbursementAccountDraft?.[last4SSNInputID]);
Expand All @@ -24,7 +24,7 @@

const validate = useCallback(
(values: FormOnyxValues<typeof ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM>): FormInputErrors<typeof ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM> => {
const errors = getFieldRequiredErrors(values, [last4SSNInputID]);
const errors = getFieldRequiredErrors(values, [last4SSNInputID], translate);

if (values[last4SSNInputID] && !isValidSSNLastFour(SafeString(values[last4SSNInputID]))) {
errors[last4SSNInputID] = translate('bankAccount.error.ssnLast4');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,9 +34,9 @@ function Nationality({onNext, isEditing, isUserEnteringHisOwnData, ownerBeingMod

const validate = useCallback(
(values: FormOnyxValues<typeof ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM>): FormInputErrors<typeof ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM> => {
return getFieldRequiredErrors(values, [nationalityInputID]);
return getFieldRequiredErrors(values, [nationalityInputID], translate);
},
[nationalityInputID],
[nationalityInputID, translate],
);

return (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@

function OwnershipPercentage({onNext, isEditing, onMove, isUserEnteringHisOwnData, ownerBeingModifiedID, totalOwnedPercentage, setTotalOwnedPercentage}: OwnershipPercentageProps) {
const {translate} = useLocalize();
const [reimbursementAccountDraft] = useOnyx(ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM_DRAFT);

Check failure on line 24 in src/pages/ReimbursementAccount/NonUSD/BeneficialOwnerInfo/BeneficialOwnerDetailsFormSubSteps/OwnershipPercentage.tsx

View workflow job for this annotation

GitHub Actions / Changed files ESLint check

useOnyx() calls require you to pass the "canBeMissing" param

const ownershipPercentageInputID = `${PREFIX}_${ownerBeingModifiedID}_${OWNERSHIP_PERCENTAGE}` as const;
const defaultOwnershipPercentage = SafeString(reimbursementAccountDraft?.[ownershipPercentageInputID]);
Expand All @@ -29,7 +29,7 @@

const validate = useCallback(
(values: FormOnyxValues<typeof ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM>): FormInputErrors<typeof ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM> => {
const errors = getFieldRequiredErrors(values, [ownershipPercentageInputID]);
const errors = getFieldRequiredErrors(values, [ownershipPercentageInputID], translate);

if (values[ownershipPercentageInputID] && !isValidOwnershipPercentage(SafeString(values[ownershipPercentageInputID]), totalOwnedPercentage, ownerBeingModifiedID)) {
errors[ownershipPercentageInputID] = translate('bankAccount.error.ownershipPercentage');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ function ContactInformation({onNext, isEditing}: ContactInformationProps) {

const validate = useCallback(
(values: FormOnyxValues<typeof ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM>): FormInputErrors<typeof ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM> => {
const errors = getFieldRequiredErrors(values, STEP_FIELDS);
const errors = getFieldRequiredErrors(values, STEP_FIELDS, translate);

if (values[BUSINESS_CONTACT_NUMBER] && !isValidPhoneInternational(values[BUSINESS_CONTACT_NUMBER])) {
errors[BUSINESS_CONTACT_NUMBER] = translate('common.error.phoneNumber');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -43,8 +43,8 @@
const {translate} = useLocalize();
const styles = useThemeStyles();

const [reimbursementAccount] = useOnyx(ONYXKEYS.REIMBURSEMENT_ACCOUNT);

Check failure on line 46 in src/pages/ReimbursementAccount/NonUSD/BusinessInfo/subSteps/IncorporationLocation.tsx

View workflow job for this annotation

GitHub Actions / Changed files ESLint check

useOnyx() calls require you to pass the "canBeMissing" param
const [reimbursementAccountDraft] = useOnyx(ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM_DRAFT);

Check failure on line 47 in src/pages/ReimbursementAccount/NonUSD/BusinessInfo/subSteps/IncorporationLocation.tsx

View workflow job for this annotation

GitHub Actions / Changed files ESLint check

useOnyx() calls require you to pass the "canBeMissing" param
const onyxValues = useMemo(
() =>
getSubStepValues(
Expand All @@ -65,9 +65,9 @@

const validate = useCallback(
(values: FormOnyxValues<typeof ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM>): FormInputErrors<typeof ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM> => {
return getFieldRequiredErrors(values, shouldGatherState ? STEP_FIELDS : [FORMATION_INCORPORATION_COUNTRY_CODE]);
return getFieldRequiredErrors(values, shouldGatherState ? STEP_FIELDS : [FORMATION_INCORPORATION_COUNTRY_CODE], translate);
},
[shouldGatherState],
[shouldGatherState, translate],
);

const handleSubmit = useReimbursementAccountStepFormSubmit({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@
function Name({onNext, onMove, isEditing}: NameProps) {
const {translate} = useLocalize();

const [reimbursementAccount] = useOnyx(ONYXKEYS.REIMBURSEMENT_ACCOUNT);

Check failure on line 21 in src/pages/ReimbursementAccount/NonUSD/BusinessInfo/subSteps/Name.tsx

View workflow job for this annotation

GitHub Actions / Changed files ESLint check

useOnyx() calls require you to pass the "canBeMissing" param
const defaultValue = reimbursementAccount?.achData?.corpay?.[COMPANY_NAME] ?? '';

const validate = useCallback(
(values: FormOnyxValues<typeof ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM>): FormInputErrors<typeof ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM> => {
const errors = getFieldRequiredErrors(values, STEP_FIELDS);
const errors = getFieldRequiredErrors(values, STEP_FIELDS, translate);

if (values.companyName && !isValidCompanyName(values.companyName)) {
errors.companyName = translate('bankAccount.error.companyName');
Expand Down
Loading
Loading