Skip to content
2 changes: 1 addition & 1 deletion src/CONST/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -623,7 +623,7 @@ const CONST = {
},
BETAS: {
ALL: 'all',
AUTO_SUBMIT: 'autoSubmit',
ASAP_SUBMIT: 'asapSubmit',
DEFAULT_ROOMS: 'defaultRooms',
P2P_DISTANCE_REQUESTS: 'p2pDistanceRequests',
SPOTNANA_TRAVEL: 'spotnanaTravel',
Expand Down
6 changes: 3 additions & 3 deletions src/ONYXKEYS.ts
Original file line number Diff line number Diff line change
Expand Up @@ -164,12 +164,12 @@ const ONYXKEYS = {
NVP_DISMISSED_REFERRAL_BANNERS: 'nvp_dismissedReferralBanners',

/**
* This NVP contains if user has ever seen the instant submit explanation modal and user intent to not show the instant submit explanation modal again
* This NVP contains if user has ever seen the ASAP submit explanation modal and user intent to not show the ASAP submit explanation modal again
* undefined : user has never seen the modal
* false : user has seen the modal but has not chosen "do not show again"
* true : user has seen the modal and does not want to see it again
*/
NVP_DISMISSED_INSTANT_SUBMIT_EXPLANATION: 'nvp_dismissedInstantSubmitExplanation',
NVP_DISMISSED_ASAP_SUBMIT_EXPLANATION: 'nvp_dismissedASAPSubmitExplanation',
Comment thread
ishpaul777 marked this conversation as resolved.

/** This NVP contains the training modals the user denied showing again */
NVP_HAS_SEEN_TRACK_TRAINING: 'nvp_hasSeenTrackTraining',
Expand Down Expand Up @@ -1069,7 +1069,7 @@ type OnyxValuesMapping = {
[ONYXKEYS.NVP_RECENT_ATTENDEES]: Attendee[];
[ONYXKEYS.NVP_TRY_FOCUS_MODE]: boolean;
[ONYXKEYS.NVP_DISMISSED_HOLD_USE_EXPLANATION]: boolean;
[ONYXKEYS.NVP_DISMISSED_INSTANT_SUBMIT_EXPLANATION]: boolean;
[ONYXKEYS.NVP_DISMISSED_ASAP_SUBMIT_EXPLANATION]: boolean;
[ONYXKEYS.NVP_LAST_PAYMENT_METHOD]: OnyxTypes.LastPaymentMethod;
[ONYXKEYS.NVP_LAST_LOCATION_PERMISSION_PROMPT]: string;
[ONYXKEYS.LAST_EXPORT_METHOD]: OnyxTypes.LastExportMethod;
Expand Down
10 changes: 5 additions & 5 deletions src/components/AutoSubmitModal.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ import useStyleUtils from '@hooks/useStyleUtils';
import useThemeStyles from '@hooks/useThemeStyles';
import colors from '@styles/theme/colors';
import variables from '@styles/variables';
import {dismissInstantSubmitExplanation} from '@userActions/User';
import {dismissASAPSubmitExplanation} from '@userActions/User';
import CONST from '@src/CONST';
import type {TranslationPaths} from '@src/languages/types';
import ONYXKEYS from '@src/ONYXKEYS';
Expand All @@ -29,17 +29,17 @@ const menuSections = [
];

function AutoSubmitModal() {
const [dismissedInstantSubmitExplanation] = useOnyx(ONYXKEYS.NVP_DISMISSED_INSTANT_SUBMIT_EXPLANATION, {canBeMissing: true});
const [dismissedASAPSubmitExplanation] = useOnyx(ONYXKEYS.NVP_DISMISSED_ASAP_SUBMIT_EXPLANATION, {canBeMissing: true});
const {translate} = useLocalize();
const styles = useThemeStyles();
const StyleUtils = useStyleUtils();

const onClose = useCallback((willShowAgain: boolean) => {
InteractionManager.runAfterInteractions(() => {
if (!willShowAgain) {
dismissInstantSubmitExplanation(true);
dismissASAPSubmitExplanation(true);
} else {
dismissInstantSubmitExplanation(false);
dismissASAPSubmitExplanation(false);
}
});
}, []);
Expand All @@ -58,7 +58,7 @@ function AutoSubmitModal() {
illustrationInnerContainerStyle={[styles.alignItemsCenter, styles.justifyContentCenter, StyleUtils.getBackgroundColorStyle(colors.green700), styles.p8]}
modalInnerContainerStyle={styles.pt0}
illustrationOuterContainerStyle={styles.p0}
shouldShowDismissModalOption={dismissedInstantSubmitExplanation === false}
shouldShowDismissModalOption={dismissedASAPSubmitExplanation === false}
onConfirm={onClose}
titleStyles={[styles.mb1]}
contentInnerContainerStyles={[styles.mb5]}
Expand Down
15 changes: 12 additions & 3 deletions src/libs/NextStepUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@
import type {ValueOf} from 'type-fest';
import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
import type {Policy, Report, ReportNextStep, TransactionViolations} from '@src/types/onyx';
import type {Beta, Policy, Report, ReportNextStep, TransactionViolations} from '@src/types/onyx';
import type {Message} from '@src/types/onyx/ReportNextStep';
import type DeepValueOf from '@src/types/utils/DeepValueOf';
import EmailUtils from './EmailUtils';
import Permissions from './Permissions';
import {getLoginsByAccountIDs, getPersonalDetailsByIDs} from './PersonalDetailsUtils';
import {getApprovalWorkflow, getCorrectedAutoReportingFrequency, getReimburserAccountID} from './PolicyUtils';
import {
Expand All @@ -23,7 +24,7 @@

let currentUserAccountID = -1;
let currentUserEmail = '';
Onyx.connect({

Check warning on line 27 in src/libs/NextStepUtils.ts

View workflow job for this annotation

GitHub Actions / Changed files ESLint check

Onyx.connect() is deprecated. Use useOnyx() hook instead and pass the data as parameters to a pure function
key: ONYXKEYS.SESSION,
callback: (value) => {
if (!value) {
Expand All @@ -36,14 +37,20 @@
});

let allPolicies: OnyxCollection<Policy>;
Onyx.connect({

Check warning on line 40 in src/libs/NextStepUtils.ts

View workflow job for this annotation

GitHub Actions / Changed files ESLint check

Onyx.connect() is deprecated. Use useOnyx() hook instead and pass the data as parameters to a pure function
key: ONYXKEYS.COLLECTION.POLICY,
waitForCollectionCallback: true,
callback: (value) => (allPolicies = value),
});

let allBetas: OnyxEntry<Beta[]>;
Onyx.connect({

Check warning on line 47 in src/libs/NextStepUtils.ts

View workflow job for this annotation

GitHub Actions / Changed files ESLint check

Onyx.connect() is deprecated. Use useOnyx() hook instead and pass the data as parameters to a pure function
key: ONYXKEYS.BETAS,
callback: (value) => (allBetas = value),
});

Comment thread
luacmartins marked this conversation as resolved.
let transactionViolations: OnyxCollection<TransactionViolations>;
Onyx.connect({

Check warning on line 53 in src/libs/NextStepUtils.ts

View workflow job for this annotation

GitHub Actions / Changed files ESLint check

Onyx.connect() is deprecated. Use useOnyx() hook instead and pass the data as parameters to a pure function
key: ONYXKEYS.COLLECTION.TRANSACTION_VIOLATIONS,
waitForCollectionCallback: true,
callback: (value) => {
Expand Down Expand Up @@ -142,7 +149,9 @@
const {harvesting, autoReportingOffset} = policy;
const autoReportingFrequency = getCorrectedAutoReportingFrequency(policy);
const hasViolations = hasViolationsReportUtils(report?.reportID, transactionViolations);
const shouldShowFixMessage = hasViolations && autoReportingFrequency === CONST.POLICY.AUTO_REPORTING_FREQUENCIES.INSTANT;
const isASAPSubmitBetaEnabled = Permissions.isBetaEnabled(CONST.BETAS.ASAP_SUBMIT, allBetas);
const isInstantSubmitEnabled = autoReportingFrequency === CONST.POLICY.AUTO_REPORTING_FREQUENCIES.INSTANT;
const shouldShowFixMessage = hasViolations && isInstantSubmitEnabled && !isASAPSubmitBetaEnabled;
const [policyOwnerPersonalDetails, ownerPersonalDetails] = getPersonalDetailsByIDs({
accountIDs: [policy.ownerAccountID ?? CONST.DEFAULT_NUMBER_ID, ownerAccountID],
currentUserAccountID,
Expand Down Expand Up @@ -200,7 +209,7 @@
switch (predictedNextStatus) {
// Generates an optimistic nextStep once a report has been opened
case CONST.REPORT.STATUS_NUM.OPEN:
if (shouldFixViolations) {
if ((isASAPSubmitBetaEnabled && hasViolations && isInstantSubmitEnabled) || shouldFixViolations) {
optimisticNextStep = {
type,
icon: CONST.NEXT_STEP.ICONS.HOURGLASS,
Expand Down
12 changes: 10 additions & 2 deletions src/libs/ReportUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -884,7 +884,7 @@
const parsedReportActionMessageCache: Record<string, string> = {};

let conciergeReportID: OnyxEntry<string>;
Onyx.connect({

Check warning on line 887 in src/libs/ReportUtils.ts

View workflow job for this annotation

GitHub Actions / Changed files ESLint check

Onyx.connect() is deprecated. Use useOnyx() hook instead and pass the data as parameters to a pure function
key: ONYXKEYS.CONCIERGE_REPORT_ID,
callback: (value) => {
conciergeReportID = value;
Expand All @@ -892,7 +892,7 @@
});

const defaultAvatarBuildingIconTestID = 'SvgDefaultAvatarBuilding Icon';
Onyx.connect({

Check warning on line 895 in src/libs/ReportUtils.ts

View workflow job for this annotation

GitHub Actions / Changed files ESLint check

Onyx.connect() is deprecated. Use useOnyx() hook instead and pass the data as parameters to a pure function
key: ONYXKEYS.SESSION,
callback: (value) => {
// When signed out, val is undefined
Expand All @@ -910,7 +910,7 @@
let allPersonalDetails: OnyxEntry<PersonalDetailsList>;
let allPersonalDetailLogins: string[];
let currentUserPersonalDetails: OnyxEntry<PersonalDetails>;
Onyx.connect({

Check warning on line 913 in src/libs/ReportUtils.ts

View workflow job for this annotation

GitHub Actions / Changed files ESLint check

Onyx.connect() is deprecated. Use useOnyx() hook instead and pass the data as parameters to a pure function
key: ONYXKEYS.PERSONAL_DETAILS_LIST,
callback: (value) => {
if (currentUserAccountID) {
Expand All @@ -922,14 +922,14 @@
});

let allReportsDraft: OnyxCollection<Report>;
Onyx.connect({

Check warning on line 925 in src/libs/ReportUtils.ts

View workflow job for this annotation

GitHub Actions / Changed files ESLint check

Onyx.connect() is deprecated. Use useOnyx() hook instead and pass the data as parameters to a pure function
key: ONYXKEYS.COLLECTION.REPORT_DRAFT,
waitForCollectionCallback: true,
callback: (value) => (allReportsDraft = value),
});

let allPolicies: OnyxCollection<Policy>;
Onyx.connect({

Check warning on line 932 in src/libs/ReportUtils.ts

View workflow job for this annotation

GitHub Actions / Changed files ESLint check

Onyx.connect() is deprecated. Use useOnyx() hook instead and pass the data as parameters to a pure function
key: ONYXKEYS.COLLECTION.POLICY,
waitForCollectionCallback: true,
callback: (value) => (allPolicies = value),
Expand All @@ -937,7 +937,7 @@

let allReports: OnyxCollection<Report>;
let reportsByPolicyID: ReportByPolicyMap;
Onyx.connect({

Check warning on line 940 in src/libs/ReportUtils.ts

View workflow job for this annotation

GitHub Actions / Changed files ESLint check

Onyx.connect() is deprecated. Use useOnyx() hook instead and pass the data as parameters to a pure function
key: ONYXKEYS.COLLECTION.REPORT,
waitForCollectionCallback: true,
callback: (value) => {
Expand Down Expand Up @@ -5929,6 +5929,13 @@
* @param policy
*/
function getExpenseReportStateAndStatus(policy: OnyxEntry<Policy>, isEmptyOptimisticReport = false) {
const isASAPSubmitBetaEnabled = Permissions.isBetaEnabled(CONST.BETAS.ASAP_SUBMIT, allBetas);
if (isASAPSubmitBetaEnabled) {
return {
stateNum: CONST.REPORT.STATE_NUM.OPEN,
statusNum: CONST.REPORT.STATUS_NUM.OPEN,
};
}
const isInstantSubmitEnabledLocal = isInstantSubmitEnabled(policy);
const isSubmitAndCloseLocal = isSubmitAndClose(policy);
const arePaymentsDisabled = policy?.reimbursementChoice === CONST.POLICY.REIMBURSEMENT_CHOICES.REIMBURSEMENT_NO;
Expand Down Expand Up @@ -9670,8 +9677,9 @@
* - we have one, but it's waiting on the payee adding a bank account
* - we have one, but we can't add more transactions to it due to: report is approved or settled
*/
function shouldCreateNewMoneyRequestReport(existingIOUReport: OnyxInputOrEntry<Report> | undefined, chatReport: OnyxInputOrEntry<Report>): boolean {
return !existingIOUReport || hasIOUWaitingOnCurrentUserBankAccount(chatReport) || !canAddTransaction(existingIOUReport);
function shouldCreateNewMoneyRequestReport(existingIOUReport: OnyxInputOrEntry<Report> | undefined, chatReport: OnyxInputOrEntry<Report>, isScanRequest: boolean): boolean {
const isASAPSubmitBetaEnabled = Permissions.isBetaEnabled(CONST.BETAS.ASAP_SUBMIT, allBetas);
return !existingIOUReport || hasIOUWaitingOnCurrentUserBankAccount(chatReport) || !canAddTransaction(existingIOUReport) || (isScanRequest && isASAPSubmitBetaEnabled);

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding || (isScanRequest && isASAPSubmitBetaEnabled) condition caused Expense - Scan expense add to the 2nd report when adding from 1st report.
More details: #85217 (comment)

}

function getTripIDFromTransactionParentReportID(transactionParentReportID: string | undefined): string | undefined {
Expand Down
2 changes: 1 addition & 1 deletion src/libs/TransactionUtils/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -144,7 +144,7 @@ function isDistanceRequest(transaction: OnyxEntry<Transaction>): boolean {
return type === CONST.TRANSACTION.TYPE.CUSTOM_UNIT && customUnitName === CONST.CUSTOM_UNITS.NAME_DISTANCE;
}

function isScanRequest(transaction: OnyxEntry<Transaction>): boolean {
function isScanRequest(transaction: OnyxEntry<Transaction> | Partial<Transaction>): boolean {
// This is used during the expense creation flow before the transaction has been saved to the server
if (lodashHas(transaction, 'iouRequestType')) {
return transaction?.iouRequestType === CONST.IOU.REQUEST_TYPE.SCAN;
Expand Down
2 changes: 1 addition & 1 deletion src/libs/__mocks__/Permissions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,5 +10,5 @@ import type Beta from '@src/types/onyx/Beta';

export default {
...jest.requireActual<typeof Permissions>('../Permissions'),
isBetaEnabled: (beta: Beta, betas: Beta[]) => betas.includes(beta),
isBetaEnabled: (beta: Beta, betas: Beta[]) => !!betas?.includes(beta),
};
29 changes: 21 additions & 8 deletions src/libs/actions/IOU.ts
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ import {getManagerMcTestParticipant, getPersonalDetailsForAccountIDs} from '@lib
import Parser from '@libs/Parser';
import {getCustomUnitID} from '@libs/PerDiemRequestUtils';
import Performance from '@libs/Performance';
import Permissions from '@libs/Permissions';
import {getAccountIDsByLogins} from '@libs/PersonalDetailsUtils';
import {addSMSDomainIfPhoneNumber} from '@libs/PhoneNumber';
import {
Expand Down Expand Up @@ -662,6 +663,12 @@ type GetSearchOnyxUpdateParams = {
transactionThreadReportID: string | undefined;
};

let allBetas: OnyxEntry<OnyxTypes.Beta[]>;
Onyx.connect({
key: ONYXKEYS.BETAS,
callback: (value) => (allBetas = value),
});

Comment thread
luacmartins marked this conversation as resolved.
let allTransactions: NonNullable<OnyxCollection<OnyxTypes.Transaction>> = {};
Onyx.connect({
key: ONYXKEYS.COLLECTION.TRANSACTION,
Expand Down Expand Up @@ -1394,6 +1401,7 @@ function buildOnyxDataForMoneyRequest(moneyRequestParams: BuildOnyxDataForMoneyR

const isScanRequest = isScanRequestTransactionUtils(transaction);
const isPerDiemRequest = isPerDiemRequestTransactionUtils(transaction);
const isASAPSubmitBetaEnabled = Permissions.isBetaEnabled(CONST.BETAS.ASAP_SUBMIT, allBetas);
const outstandingChildRequest = getOutstandingChildRequest(iou.report);
const clearedPendingFields = Object.fromEntries(Object.keys(transaction.pendingFields ?? {}).map((key) => [key, null]));
const isMoneyRequestToManagerMcTest = isTestTransactionReport(iou.report);
Expand Down Expand Up @@ -1424,7 +1432,8 @@ function buildOnyxDataForMoneyRequest(moneyRequestParams: BuildOnyxDataForMoneyR
...chat.report,
lastReadTime: DateUtils.getDBTime(),
...(shouldCreateNewMoneyRequestReport ? {lastVisibleActionCreated: chat.reportPreviewAction.created} : {}),
iouReportID: iou.report.reportID,
// do not update iouReportID if auto submit beta is enabled and it is a scan request
...(isASAPSubmitBetaEnabled && isScanRequest ? {} : {iouReportID: iou.report.reportID}),
...outstandingChildRequest,
...(isNewChatReport ? {pendingFields: {createChat: CONST.RED_BRICK_ROAD_PENDING_ACTION.ADD}} : {}),
},
Expand Down Expand Up @@ -2411,6 +2420,7 @@ function buildOnyxDataForTrackExpense({
const {policy, tagList: policyTagList, categories: policyCategories} = policyParams;

const isScanRequest = isScanRequestTransactionUtils(transaction);
const isASAPSubmitBetaEnabled = Permissions.isBetaEnabled(CONST.BETAS.ASAP_SUBMIT, allBetas);
const isDistanceRequest = isDistanceRequestTransactionUtils(transaction);
const clearedPendingFields = Object.fromEntries(Object.keys(transaction.pendingFields ?? {}).map((key) => [key, null]));

Expand All @@ -2437,7 +2447,8 @@ function buildOnyxDataForTrackExpense({
lastMessageText: getReportActionText(iouAction),
lastMessageHtml: getReportActionHtml(iouAction),
lastReadTime: DateUtils.getDBTime(),
iouReportID: iouReport?.reportID,
// do not update iouReportID if auto submit beta is enabled and it is a scan request
iouReportID: isASAPSubmitBetaEnabled && isScanRequest ? null : iouReport?.reportID,
lastVisibleActionCreated: shouldCreateNewMoneyRequestReport ? reportPreviewAction?.created : chatReport.lastVisibleActionCreated,
},
},
Expand Down Expand Up @@ -3317,7 +3328,8 @@ function getMoneyRequestInformation(moneyRequestInformation: MoneyRequestInforma
iouReport = allReports?.[`${ONYXKEYS.COLLECTION.REPORT}${chatReport.iouReportID}`] ?? null;
}

const shouldCreateNewMoneyRequestReport = shouldCreateNewMoneyRequestReportReportUtils(iouReport, chatReport);
const isScanRequest = isScanRequestTransactionUtils({amount, receipt});
const shouldCreateNewMoneyRequestReport = shouldCreateNewMoneyRequestReportReportUtils(iouReport, chatReport, isScanRequest);

if (!iouReport || shouldCreateNewMoneyRequestReport) {
iouReport = isPolicyExpenseChat
Expand Down Expand Up @@ -3576,7 +3588,7 @@ function getPerDiemExpenseInformation(perDiemExpenseInformation: PerDiemExpenseI
iouReport = allReports?.[`${ONYXKEYS.COLLECTION.REPORT}${chatReport.iouReportID}`] ?? null;
}

const shouldCreateNewMoneyRequestReport = shouldCreateNewMoneyRequestReportReportUtils(iouReport, chatReport);
const shouldCreateNewMoneyRequestReport = shouldCreateNewMoneyRequestReportReportUtils(iouReport, chatReport, false);

if (!iouReport || shouldCreateNewMoneyRequestReport) {
iouReport = isPolicyExpenseChat
Expand Down Expand Up @@ -3787,8 +3799,8 @@ function getTrackExpenseInformation(params: GetTrackExpenseInformationParams): T
} else {
iouReport = allReports?.[`${ONYXKEYS.COLLECTION.REPORT}${chatReport.iouReportID}`] ?? null;
}

shouldCreateNewMoneyRequestReport = shouldCreateNewMoneyRequestReportReportUtils(iouReport, chatReport);
const isScanRequest = isScanRequestTransactionUtils({amount, receipt});
shouldCreateNewMoneyRequestReport = shouldCreateNewMoneyRequestReportReportUtils(iouReport, chatReport, isScanRequest);
if (!iouReport || shouldCreateNewMoneyRequestReport) {
iouReport = buildOptimisticExpenseReport(chatReport.reportID, chatReport.policyID, payeeAccountID, amount, currency, amount);
} else {
Expand Down Expand Up @@ -6189,7 +6201,8 @@ function createSplitsAndOnyxData({

// STEP 2: Get existing IOU/Expense report and update its total OR build a new optimistic one
let oneOnOneIOUReport: OneOnOneIOUReport = oneOnOneChatReport.iouReportID ? allReports?.[`${ONYXKEYS.COLLECTION.REPORT}${oneOnOneChatReport.iouReportID}`] : null;
const shouldCreateNewOneOnOneIOUReport = shouldCreateNewMoneyRequestReportReportUtils(oneOnOneIOUReport, oneOnOneChatReport);
const isScanRequest = isScanRequestTransactionUtils(splitTransaction);
const shouldCreateNewOneOnOneIOUReport = shouldCreateNewMoneyRequestReportReportUtils(oneOnOneIOUReport, oneOnOneChatReport, isScanRequest);

if (!oneOnOneIOUReport || shouldCreateNewOneOnOneIOUReport) {
oneOnOneIOUReport = isOwnPolicyExpenseChat
Expand Down Expand Up @@ -7010,7 +7023,7 @@ function completeSplitBill(
}

let oneOnOneIOUReport: OneOnOneIOUReport = oneOnOneChatReport?.iouReportID ? allReports?.[`${ONYXKEYS.COLLECTION.REPORT}${oneOnOneChatReport.iouReportID}`] : null;
const shouldCreateNewOneOnOneIOUReport = shouldCreateNewMoneyRequestReportReportUtils(oneOnOneIOUReport, oneOnOneChatReport);
const shouldCreateNewOneOnOneIOUReport = shouldCreateNewMoneyRequestReportReportUtils(oneOnOneIOUReport, oneOnOneChatReport, false);

if (!oneOnOneIOUReport || shouldCreateNewOneOnOneIOUReport) {
oneOnOneIOUReport = isPolicyExpenseChat
Expand Down
6 changes: 3 additions & 3 deletions src/libs/actions/User.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1387,8 +1387,8 @@ function dismissTrackTrainingModal() {
* Dismiss the Auto-Submit explanation modal
* @param shouldDismiss Whether the user selected "Don't show again"
*/
function dismissInstantSubmitExplanation(shouldDismiss: boolean) {
Onyx.merge(ONYXKEYS.NVP_DISMISSED_INSTANT_SUBMIT_EXPLANATION, shouldDismiss);
function dismissASAPSubmitExplanation(shouldDismiss: boolean) {
Onyx.merge(ONYXKEYS.NVP_DISMISSED_ASAP_SUBMIT_EXPLANATION, shouldDismiss);
}

function requestRefund() {
Expand Down Expand Up @@ -1450,7 +1450,7 @@ export {
closeAccount,
dismissReferralBanner,
dismissTrackTrainingModal,
dismissInstantSubmitExplanation,
dismissASAPSubmitExplanation,
resendValidateCode,
requestContactMethodValidateCode,
updateNewsletterSubscription,
Expand Down
Loading