Skip to content

Commit

Permalink
Fix lint
Browse files Browse the repository at this point in the history
  • Loading branch information
shubham1206agra committed Mar 7, 2025
1 parent d4cb727 commit fa787c3
Show file tree
Hide file tree
Showing 43 changed files with 296 additions and 397 deletions.
40 changes: 11 additions & 29 deletions src/pages/EnablePayments/AddBankAccount/substeps/PlaidStep.tsx
Original file line number Diff line number Diff line change
@@ -1,35 +1,24 @@
import {useIsFocused} from '@react-navigation/native';
import React, {useCallback, useEffect} from 'react';
import type {OnyxEntry} from 'react-native-onyx';
import {withOnyx} from 'react-native-onyx';
import {useOnyx} from 'react-native-onyx';
import AddPlaidBankAccount from '@components/AddPlaidBankAccount';
import FormProvider from '@components/Form/FormProvider';
import InputWrapper from '@components/Form/InputWrapper';
import useLocalize from '@hooks/useLocalize';
import type {SubStepProps} from '@hooks/useSubStep/types';
import useThemeStyles from '@hooks/useThemeStyles';
import * as BankAccounts from '@userActions/BankAccounts';
import {clearPersonalBankAccountSetupType, updateAddPersonalBankAccountDraft, validatePlaidSelection} from '@userActions/BankAccounts';
import ONYXKEYS from '@src/ONYXKEYS';
import type {PersonalBankAccountForm} from '@src/types/form';
import INPUT_IDS from '@src/types/form/PersonalBankAccountForm';
import type {PlaidData} from '@src/types/onyx';

type PlaidOnyxProps = {
/** The draft values of the bank account being setup */
personalBankAccountDraft: OnyxEntry<PersonalBankAccountForm>;

/** Contains plaid data */
plaidData: OnyxEntry<PlaidData>;
};

type PlaidStepProps = PlaidOnyxProps & SubStepProps;

const BANK_INFO_STEP_KEYS = INPUT_IDS.BANK_INFO_STEP;

function PlaidStep({personalBankAccountDraft, onNext, plaidData}: PlaidStepProps) {
function PlaidStep({onNext}: SubStepProps) {
const {translate} = useLocalize();
const styles = useThemeStyles();
const isFocused = useIsFocused();
const [personalBankAccountDraft] = useOnyx(ONYXKEYS.FORMS.PERSONAL_BANK_ACCOUNT_FORM_DRAFT);
const [plaidData] = useOnyx(ONYXKEYS.PLAID_DATA);
const selectedPlaidAccountID = personalBankAccountDraft?.[BANK_INFO_STEP_KEYS.PLAID_ACCOUNT_ID] ?? '';

const handleNextPress = useCallback(() => {
Expand All @@ -47,26 +36,26 @@ function PlaidStep({personalBankAccountDraft, onNext, plaidData}: PlaidStepProps
[BANK_INFO_STEP_KEYS.PLAID_ACCESS_TOKEN]: plaidData?.[BANK_INFO_STEP_KEYS.PLAID_ACCESS_TOKEN] ?? '',
};

BankAccounts.updateAddPersonalBankAccountDraft(bankAccountData);
updateAddPersonalBankAccountDraft(bankAccountData);
onNext();
}, [onNext, personalBankAccountDraft, plaidData]);

const handleSelectPlaidAccount = (plaidAccountID: string) => {
BankAccounts.updateAddPersonalBankAccountDraft({plaidAccountID});
updateAddPersonalBankAccountDraft({plaidAccountID});
};

useEffect(() => {
const plaidBankAccounts = plaidData?.bankAccounts ?? [];
if (isFocused || plaidBankAccounts.length) {
return;
}
BankAccounts.clearPersonalBankAccountSetupType();
clearPersonalBankAccountSetupType();
}, [isFocused, plaidData]);

return (
<FormProvider
formID={ONYXKEYS.FORMS.PERSONAL_BANK_ACCOUNT_FORM}
validate={BankAccounts.validatePlaidSelection}
validate={validatePlaidSelection}
onSubmit={handleNextPress}
scrollContextEnabled
submitButtonText={translate('common.next')}
Expand All @@ -79,7 +68,7 @@ function PlaidStep({personalBankAccountDraft, onNext, plaidData}: PlaidStepProps
text={translate('walletPage.chooseAccountBody')}
onSelect={handleSelectPlaidAccount}
plaidData={plaidData}
onExitPlaid={BankAccounts.clearPersonalBankAccountSetupType}
onExitPlaid={clearPersonalBankAccountSetupType}
allowDebit
isDisplayedInWalletFlow
selectedPlaidAccountID={selectedPlaidAccountID}
Expand All @@ -92,11 +81,4 @@ function PlaidStep({personalBankAccountDraft, onNext, plaidData}: PlaidStepProps

PlaidStep.displayName = 'PlaidStep';

export default withOnyx<PlaidStepProps, PlaidOnyxProps>({
personalBankAccountDraft: {
key: ONYXKEYS.FORMS.PERSONAL_BANK_ACCOUNT_FORM_DRAFT,
},
plaidData: {
key: ONYXKEYS.PLAID_DATA,
},
})(PlaidStep);
export default PlaidStep;
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,9 @@ import type {FormInputErrors, FormOnyxValues} from '@components/Form/types';
import Text from '@components/Text';
import TextInput from '@components/TextInput';
import useLocalize from '@hooks/useLocalize';
import usePolicy from '@hooks/usePolicy';
import useThemeStyles from '@hooks/useThemeStyles';
import * as ValidationUtils from '@libs/ValidationUtils';
import {getFieldRequiredErrors} from '@libs/ValidationUtils';
import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
import INPUT_IDS from '@src/types/form/ReimbursementAccountForm';
Expand All @@ -28,14 +29,14 @@ function EnterEmail({onSubmit, isUserDirector}: EnterEmailProps) {
const styles = useThemeStyles();

const [reimbursementAccount] = useOnyx(ONYXKEYS.REIMBURSEMENT_ACCOUNT);
const policyID = reimbursementAccount?.achData?.policyID ?? '-1';
const [policy] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY}${policyID}`);
const policyID = reimbursementAccount?.achData?.policyID;
const policy = usePolicy(policyID);
const currency = policy?.outputCurrency ?? '';
const shouldGatherBothEmails = currency === CONST.CURRENCY.AUD && !isUserDirector;

const validate = useCallback(
(values: FormOnyxValues<typeof ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM>): FormInputErrors<typeof ONYXKEYS.FORMS.REIMBURSEMENT_ACCOUNT_FORM> => {
const errors = ValidationUtils.getFieldRequiredErrors(values, shouldGatherBothEmails ? [SIGNER_EMAIL, SECOND_SIGNER_EMAIL] : [SIGNER_EMAIL]);
const errors = getFieldRequiredErrors(values, shouldGatherBothEmails ? [SIGNER_EMAIL, SECOND_SIGNER_EMAIL] : [SIGNER_EMAIL]);
if (values[SIGNER_EMAIL] && !Str.isValidEmail(values[SIGNER_EMAIL])) {
errors[SIGNER_EMAIL] = translate('bankAccount.error.email');
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import type {SubStepProps} from '@hooks/useSubStep/types';
import useThemeStyles from '@hooks/useThemeStyles';
import {setBankAccountSubStep, validatePlaidSelection} from '@userActions/BankAccounts';
import {updateReimbursementAccountDraft} from '@userActions/ReimbursementAccount';
import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
import INPUT_IDS from '@src/types/form/ReimbursementAccountForm';

Expand Down Expand Up @@ -47,7 +48,7 @@ function Plaid({onNext, setUSDBankAccountStep}: PlaidProps) {
onNext(bankAccountData);
}, [plaidData, reimbursementAccountDraft, onNext]);

const bankAccountID = Number(reimbursementAccount?.achData?.bankAccountID ?? '-1');
const bankAccountID = reimbursementAccount?.achData?.bankAccountID ?? CONST.DEFAULT_NUMBER_ID;

useEffect(() => {
const plaidBankAccounts = plaidData?.bankAccounts ?? [];
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import TextLink from '@components/TextLink';
import useLocalize from '@hooks/useLocalize';
import type {SubStepProps} from '@hooks/useSubStep/types';
import useThemeStyles from '@hooks/useThemeStyles';
import * as ValidationUtils from '@libs/ValidationUtils';
import {getFieldRequiredErrors} from '@libs/ValidationUtils';
import getSubStepValues from '@pages/ReimbursementAccount/utils/getSubStepValues';
import CONST from '@src/CONST';
import type {TranslationPaths} from '@src/languages/types';
Expand Down Expand Up @@ -44,7 +44,7 @@ function ConfirmationBusiness({onNext, onMove}: SubStepProps) {

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

if (!values.hasNoConnectionToCannabis) {
errors.hasNoConnectionToCannabis = translate('bankAccount.error.restrictedBusiness');
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import useLocalize from '@hooks/useLocalize';
import useReimbursementAccountStepFormSubmit from '@hooks/useReimbursementAccountStepFormSubmit';
import type {SubStepProps} from '@hooks/useSubStep/types';
import useThemeStyles from '@hooks/useThemeStyles';
import * as ValidationUtils from '@libs/ValidationUtils';
import {getFieldRequiredErrors, isValidDate, isValidPastDate} from '@libs/ValidationUtils';
import ONYXKEYS from '@src/ONYXKEYS';
import INPUT_IDS from '@src/types/form/ReimbursementAccountForm';

Expand All @@ -25,11 +25,11 @@ function IncorporationDateBusiness({onNext, isEditing}: SubStepProps) {

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

if (values.incorporationDate && !ValidationUtils.isValidDate(values.incorporationDate)) {
if (values.incorporationDate && !isValidDate(values.incorporationDate)) {
errors.incorporationDate = translate('common.error.dateInvalid');
} else if (values.incorporationDate && !ValidationUtils.isValidPastDate(values.incorporationDate)) {
} else if (values.incorporationDate && !isValidPastDate(values.incorporationDate)) {
errors.incorporationDate = translate('bankAccount.error.incorporationDateFuture');
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,15 +9,15 @@ import useLocalize from '@hooks/useLocalize';
import useReimbursementAccountStepFormSubmit from '@hooks/useReimbursementAccountStepFormSubmit';
import type {SubStepProps} from '@hooks/useSubStep/types';
import useThemeStyles from '@hooks/useThemeStyles';
import * as ValidationUtils from '@libs/ValidationUtils';
import {getFieldRequiredErrors} from '@libs/ValidationUtils';
import ONYXKEYS from '@src/ONYXKEYS';
import INPUT_IDS from '@src/types/form/ReimbursementAccountForm';

const COMPANY_INCORPORATION_STATE_KEY = INPUT_IDS.BUSINESS_INFO_STEP.INCORPORATION_STATE;
const STEP_FIELDS = [COMPANY_INCORPORATION_STATE_KEY];

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

function IncorporationStateBusiness({onNext, isEditing}: SubStepProps) {
const {translate} = useLocalize();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import useLocalize from '@hooks/useLocalize';
import useReimbursementAccountStepFormSubmit from '@hooks/useReimbursementAccountStepFormSubmit';
import type {SubStepProps} from '@hooks/useSubStep/types';
import useThemeStyles from '@hooks/useThemeStyles';
import * as ValidationUtils from '@libs/ValidationUtils';
import {getFieldRequiredErrors, isValidCompanyName} from '@libs/ValidationUtils';
import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
import INPUT_IDS from '@src/types/form/ReimbursementAccountForm';
Expand All @@ -30,9 +30,9 @@ function NameBusiness({onNext, isEditing}: SubStepProps) {

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

if (values.companyName && !ValidationUtils.isValidCompanyName(values.companyName)) {
if (values.companyName && !isValidCompanyName(values.companyName)) {
errors.companyName = translate('bankAccount.error.companyName');
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import useLocalize from '@hooks/useLocalize';
import useReimbursementAccountStepFormSubmit from '@hooks/useReimbursementAccountStepFormSubmit';
import type {SubStepProps} from '@hooks/useSubStep/types';
import useThemeStyles from '@hooks/useThemeStyles';
import * as ValidationUtils from '@libs/ValidationUtils';
import {getFieldRequiredErrors, isValidUSPhone} from '@libs/ValidationUtils';
import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
import INPUT_IDS from '@src/types/form/ReimbursementAccountForm';
Expand All @@ -27,9 +27,9 @@ function PhoneNumberBusiness({onNext, isEditing}: SubStepProps) {

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

if (values.companyPhone && !ValidationUtils.isValidUSPhone(values.companyPhone, true)) {
if (values.companyPhone && !isValidUSPhone(values.companyPhone, true)) {
errors.companyPhone = translate('bankAccount.error.phoneNumber');
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import useLocalize from '@hooks/useLocalize';
import useReimbursementAccountStepFormSubmit from '@hooks/useReimbursementAccountStepFormSubmit';
import type {SubStepProps} from '@hooks/useSubStep/types';
import useThemeStyles from '@hooks/useThemeStyles';
import * as ValidationUtils from '@libs/ValidationUtils';
import {getFieldRequiredErrors, isValidTaxID} from '@libs/ValidationUtils';
import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
import INPUT_IDS from '@src/types/form/ReimbursementAccountForm';
Expand All @@ -22,15 +22,15 @@ function TaxIdBusiness({onNext, isEditing}: SubStepProps) {

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

const defaultCompanyTaxId = reimbursementAccount?.achData?.companyTaxID ?? '';
const bankAccountID = reimbursementAccount?.achData?.bankAccountID ?? 0;
const defaultCompanyTaxId = reimbursementAccount?.achData?.companyTaxID;
const bankAccountID = reimbursementAccount?.achData?.bankAccountID ?? CONST.DEFAULT_NUMBER_ID;
const shouldDisableCompanyTaxID = !!(bankAccountID && defaultCompanyTaxId && reimbursementAccount?.achData?.state !== 'SETUP');

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

if (values.companyTaxID && !ValidationUtils.isValidTaxID(values.companyTaxID)) {
if (values.companyTaxID && !isValidTaxID(values.companyTaxID)) {
errors.companyTaxID = translate('bankAccount.error.taxID');
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import useLocalize from '@hooks/useLocalize';
import useReimbursementAccountStepFormSubmit from '@hooks/useReimbursementAccountStepFormSubmit';
import type {SubStepProps} from '@hooks/useSubStep/types';
import useThemeStyles from '@hooks/useThemeStyles';
import * as ValidationUtils from '@libs/ValidationUtils';
import {getFieldRequiredErrors} from '@libs/ValidationUtils';
import ONYXKEYS from '@src/ONYXKEYS';
import INPUT_IDS from '@src/types/form/ReimbursementAccountForm';
import BusinessTypePicker from './BusinessTypePicker';
Expand All @@ -23,7 +23,7 @@ function TypeBusiness({onNext, isEditing}: SubStepProps) {
const [reimbursementAccount] = useOnyx(ONYXKEYS.REIMBURSEMENT_ACCOUNT);

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

const defaultIncorporationType = reimbursementAccount?.achData?.incorporationType ?? '';

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ import useReimbursementAccountStepFormSubmit from '@hooks/useReimbursementAccoun
import type {SubStepProps} from '@hooks/useSubStep/types';
import useThemeStyles from '@hooks/useThemeStyles';
import {getDefaultCompanyWebsite} from '@libs/BankAccountUtils';
import * as ValidationUtils from '@libs/ValidationUtils';
import * as BankAccounts from '@userActions/BankAccounts';
import {getFieldRequiredErrors, isValidWebsite} from '@libs/ValidationUtils';
import {addBusinessWebsiteForDraft} from '@userActions/BankAccounts';
import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
import INPUT_IDS from '@src/types/form/ReimbursementAccountForm';
Expand All @@ -32,9 +32,9 @@ function WebsiteBusiness({onNext, isEditing}: SubStepProps) {

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

if (values.website && !ValidationUtils.isValidWebsite(Str.sanitizeURL(values.website, CONST.COMPANY_WEBSITE_DEFAULT_SCHEME))) {
if (values.website && !isValidWebsite(Str.sanitizeURL(values.website, CONST.COMPANY_WEBSITE_DEFAULT_SCHEME))) {
errors.website = translate('bankAccount.error.website');
}

Expand All @@ -46,7 +46,7 @@ function WebsiteBusiness({onNext, isEditing}: SubStepProps) {
fieldIds: STEP_FIELDS,
onNext: (values) => {
const website = Str.sanitizeURL((values as {website: string})?.website, CONST.COMPANY_WEBSITE_DEFAULT_SCHEME);
BankAccounts.addBusinessWebsiteForDraft(website);
addBusinessWebsiteForDraft(website);
onNext();
},
shouldSaveDraft: true,
Expand Down
Loading

0 comments on commit fa787c3

Please sign in to comment.