Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 11 additions & 19 deletions src/pages/workspace/workflows/WorkspaceWorkflowsPage.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -204,7 +204,6 @@ function WorkspaceWorkflowsPage({policy, route}: WorkspaceWorkflowsPageProps) {
);

const canAccessSubmit2026Features = canAccessSubmitWorkspaceFeatures(policy, isSubmit2026BetaEnabled);
const canAccessWalletConnectionStatusFeatures = canAccessSubmitWorkspaceFeatures(policy, isWalletConnectionStatusBetaEnabled);
const hasValidExistingAccounts = getEligibleExistingBusinessBankAccounts(bankAccountList, policy?.outputCurrency, true).length > 0;

const isAdvanceApproval = (approvalWorkflows.length > 1 || (approvalWorkflows?.at(0)?.approvers ?? []).length > 1) && isControlPolicy(policy);
Expand Down Expand Up @@ -484,7 +483,7 @@ function WorkspaceWorkflowsPage({policy, route}: WorkspaceWorkflowsPageProps) {
return undefined;
}
};
const bankConnectionStatus = canAccessWalletConnectionStatusFeatures ? getBankAccountConnectionStatus(state) : undefined;
const bankConnectionStatus = isWalletConnectionStatusBetaEnabled ? getBankAccountConnectionStatus(state) : undefined;
const bankConnectionBrickRoadIndicator = bankConnectionStatus?.brickRoadIndicator ?? (hasReimburserError ? CONST.BRICK_ROAD_INDICATOR_STATUS.ERROR : undefined);
const bankConnectionStatusAddon = bankConnectionStatus ? (
<ConnectionStatusBadge
Expand All @@ -495,9 +494,7 @@ function WorkspaceWorkflowsPage({policy, route}: WorkspaceWorkflowsPageProps) {
) : undefined;
const bankConnectionMessage = bankConnectionStatus?.messageKey ? translate(bankConnectionStatus.messageKey) : undefined;
const bankConnectionActionText = bankConnectionStatus?.actionKey ? translate(bankConnectionStatus.actionKey) : undefined;
const bankBadgeIcon =
!canAccessWalletConnectionStatusFeatures && (isAccountInSetupState || (isBusinessBankAccountLocked && canWritePayments)) ? expensifyIcons.DotIndicator : undefined;
const canInteractWithBankAccountRow = canWritePayments && !isOffline;
const bankBadgeIcon = !isWalletConnectionStatusBetaEnabled && (isAccountInSetupState || (isBusinessBankAccountLocked && canWritePayments)) ? expensifyIcons.DotIndicator : undefined;

const updateWorkspaceCurrencyPrompt = (
<View style={[styles.renderHTML, styles.flexRow]}>
Expand Down Expand Up @@ -537,31 +534,26 @@ function WorkspaceWorkflowsPage({policy, route}: WorkspaceWorkflowsPageProps) {
backTo: ROUTES.WORKSPACE_WORKFLOWS.getRoute(route.params.policyID),
});
};
let bankAccountMenuItemOnPress: React.ComponentProps<typeof MenuItem>['onPress'];
if (canAccessWalletConnectionStatusFeatures) {
bankAccountMenuItemOnPress = canInteractWithBankAccountRow ? handleBankAccountPress : undefined;
} else {
bankAccountMenuItemOnPress = canWritePayments ? handleBankAccountPress : undefined;
}

const bankAccountMenuItemProps: React.ComponentProps<typeof MenuItem> = {
title: bankTitle,
description: getPaymentMethodDescription(CONST.PAYMENT_METHODS.BUSINESS_BANK_ACCOUNT, accountData, translate),
onPress: bankAccountMenuItemOnPress,
onPress: canWritePayments ? handleBankAccountPress : undefined,
displayInDefaultIconColor: true,
icon: bankIcon.icon,
iconHeight: bankIcon.iconHeight ?? bankIcon.iconSize,
iconWidth: bankIcon.iconWidth ?? bankIcon.iconSize,
iconStyles: bankIcon.iconStyles,
titleStyle: isBankAccountPendingDelete ? styles.offlineFeedbackDeleted : undefined,
descriptionTextStyle: isBankAccountPendingDelete ? styles.offlineFeedbackDeleted : undefined,
disabled: isOffline || !canWritePayments,
sentryLabel: CONST.SENTRY_LABEL.WORKSPACE.WORKFLOWS.BANK_ACCOUNT,
shouldShowRightIcon: canWritePayments,
interactive: canWritePayments,
shouldGreyOutWhenDisabled: !policy?.pendingFields?.reimbursementChoice,
...(canAccessWalletConnectionStatusFeatures
...(isWalletConnectionStatusBetaEnabled
? {
// The row stays pressable offline so it behaves like the same account in the wallet, which opens the
// bank account flow and lets that screen explain that the user is offline.
disabled: !canWritePayments,
badgeIcon: bankBadgeIcon,
descriptionAddon: bankConnectionStatusAddon,
shouldRemoveBackground: true,
Expand All @@ -570,6 +562,7 @@ function WorkspaceWorkflowsPage({policy, route}: WorkspaceWorkflowsPageProps) {
brickRoadIndicator: bankConnectionMessage ? undefined : bankConnectionBrickRoadIndicator,
}
: {
disabled: isOffline || !canWritePayments,
badgeText: getBadgeText(accountData?.state),
badgeIcon: isAccountInSetupState || (isBusinessBankAccountLocked && canWritePayments) ? expensifyIcons.DotIndicator : undefined,
isBadgeSuccess: isAccountInSetupState,
Expand Down Expand Up @@ -830,7 +823,7 @@ function WorkspaceWorkflowsPage({policy, route}: WorkspaceWorkflowsPageProps) {
<View style={[styles.sectionMenuItemTopDescription, styles.mt5, styles.pb1, styles.pt1]}>
<Text style={[styles.textLabelSupportingNormal, styles.colorMuted]}>{translate('workflowsPayerPage.paymentAccount')}</Text>
</View>
{canAccessWalletConnectionStatusFeatures ? (
{isWalletConnectionStatusBetaEnabled ? (
<Hoverable>
{(isHovered) => (
<View style={[styles.sectionMenuItemTopDescription, styles.mt3, styles.mbn3, isHovered && styles.hoveredComponentBG]}>
Expand All @@ -840,8 +833,7 @@ function WorkspaceWorkflowsPage({policy, route}: WorkspaceWorkflowsPageProps) {
<ConnectionStatusMessage
message={bankConnectionMessage}
actionText={bankConnectionActionText}
onActionPress={canInteractWithBankAccountRow ? handleBankAccountPress : undefined}
isActionDisabled={!canInteractWithBankAccountRow}
onActionPress={canWritePayments ? handleBankAccountPress : undefined}
statusTone="danger"
shouldIncludeHorizontalPadding={false}
/>
Expand Down Expand Up @@ -1026,7 +1018,7 @@ function WorkspaceWorkflowsPage({policy, route}: WorkspaceWorkflowsPageProps) {
canAccessSubmit2026Features,
isGlobalReimbursementsBetaEnabled,
isGlobalReimbursementFXBetaEnabled,
canAccessWalletConnectionStatusFeatures,
isWalletConnectionStatusBetaEnabled,
canWriteApprovals,
canWritePayments,
canWriteWorkflows,
Expand Down
Loading