From c61e2bfadbccf142792c0e49a13808062ff52145 Mon Sep 17 00:00:00 2001 From: sumo_slonik Date: Fri, 30 May 2025 16:46:17 +0200 Subject: [PATCH 1/6] add key to button --- src/components/MoneyReportHeader.tsx | 9 +++++++++ .../MoneyRequestReportPreviewContent.tsx | 5 +++++ src/components/ReportActionItem/ReportPreview.tsx | 5 +++++ src/pages/AddUnreportedExpense.tsx | 6 ++++++ 4 files changed, 25 insertions(+) diff --git a/src/components/MoneyReportHeader.tsx b/src/components/MoneyReportHeader.tsx index 40b695f5ddb0..ce9f9e48030e 100644 --- a/src/components/MoneyReportHeader.tsx +++ b/src/components/MoneyReportHeader.tsx @@ -48,6 +48,7 @@ import { navigateToDetailsPage, reportTransactionsSelector, } from '@libs/ReportUtils'; +import {shouldRestrictUserBillableActions} from '@libs/SubscriptionUtils'; import { allHavePendingRTERViolation, hasDuplicateTransactions, @@ -484,6 +485,10 @@ function MoneyReportHeader({ if (!moneyRequestReport?.reportID) { return; } + if (shouldRestrictAction && policy && shouldRestrictUserBillableActions(policy.id)) { + Navigation.navigate(ROUTES.RESTRICTED_ACTION.getRoute(policy.id)); + return; + } startMoneyRequest(CONST.IOU.TYPE.SUBMIT, moneyRequestReport?.reportID); }, }, @@ -848,6 +853,10 @@ function MoneyReportHeader({ if (!moneyRequestReport?.reportID) { return; } + if (shouldRestrictAction && policy && shouldRestrictUserBillableActions(policy.id)) { + Navigation.navigate(ROUTES.RESTRICTED_ACTION.getRoute(policy.id)); + return; + } startMoneyRequest(CONST.IOU.TYPE.SUBMIT, moneyRequestReport?.reportID); }, }, diff --git a/src/components/ReportActionItem/MoneyRequestReportPreview/MoneyRequestReportPreviewContent.tsx b/src/components/ReportActionItem/MoneyRequestReportPreview/MoneyRequestReportPreviewContent.tsx index 94c8fac0baaf..7c12efa6b298 100644 --- a/src/components/ReportActionItem/MoneyRequestReportPreview/MoneyRequestReportPreviewContent.tsx +++ b/src/components/ReportActionItem/MoneyRequestReportPreview/MoneyRequestReportPreviewContent.tsx @@ -60,6 +60,7 @@ import { isWaitingForSubmissionFromCurrentUser as isWaitingForSubmissionFromCurrentUserReportUtils, } from '@libs/ReportUtils'; import shouldAdjustScroll from '@libs/shouldAdjustScroll'; +import {shouldRestrictUserBillableActions} from '@libs/SubscriptionUtils'; import {hasPendingUI, isCardTransaction, isPending} from '@libs/TransactionUtils'; import colors from '@styles/theme/colors'; import variables from '@styles/variables'; @@ -471,6 +472,10 @@ function MoneyRequestReportPreviewContent({ if (!iouReport?.reportID) { return; } + if (shouldRestrictAction && policy && shouldRestrictUserBillableActions(policy.id)) { + Navigation.navigate(ROUTES.RESTRICTED_ACTION.getRoute(policy.id)); + return; + } startMoneyRequest(CONST.IOU.TYPE.SUBMIT, iouReport?.reportID, undefined, false, chatReportID); }, }, diff --git a/src/components/ReportActionItem/ReportPreview.tsx b/src/components/ReportActionItem/ReportPreview.tsx index 730e4c19796f..d23a80558d9c 100644 --- a/src/components/ReportActionItem/ReportPreview.tsx +++ b/src/components/ReportActionItem/ReportPreview.tsx @@ -75,6 +75,7 @@ import { isWaitingForSubmissionFromCurrentUser as isWaitingForSubmissionFromCurrentUserReportUtils, } from '@libs/ReportUtils'; import StringUtils from '@libs/StringUtils'; +import {shouldRestrictUserBillableActions} from '@libs/SubscriptionUtils'; import { getDescription, getMerchant, @@ -513,6 +514,10 @@ function ReportPreview({ if (!iouReport?.reportID) { return; } + if (shouldRestrictAction && policy && shouldRestrictUserBillableActions(policy.id)) { + Navigation.navigate(ROUTES.RESTRICTED_ACTION.getRoute(policy.id)); + return; + } startMoneyRequest(CONST.IOU.TYPE.SUBMIT, iouReport?.reportID, undefined, false, chatReportID); }, }, diff --git a/src/pages/AddUnreportedExpense.tsx b/src/pages/AddUnreportedExpense.tsx index 78a6e0546b67..227273ffc54c 100644 --- a/src/pages/AddUnreportedExpense.tsx +++ b/src/pages/AddUnreportedExpense.tsx @@ -14,12 +14,14 @@ import useThemeStyles from '@hooks/useThemeStyles'; import {fetchUnreportedExpenses} from '@libs/actions/UnreportedExpenses'; import interceptAnonymousUser from '@libs/interceptAnonymousUser'; import type {AddUnreportedExpensesParamList} from '@libs/Navigation/types'; +import {shouldRestrictUserBillableActions} from '@libs/SubscriptionUtils'; import Navigation from '@navigation/Navigation'; import type {PlatformStackScreenProps} from '@navigation/PlatformStackNavigation/types'; import {startMoneyRequest} from '@userActions/IOU'; import {changeTransactionsReport} from '@userActions/Transaction'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; +import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import type Transaction from '@src/types/onyx/Transaction'; import NewChatSelectorPage from './NewChatSelectorPage'; @@ -120,6 +122,10 @@ function AddUnreportedExpense({route}: AddUnreportedExpensePageType) { { buttonText: translate('iou.createExpense'), buttonAction: () => { + if (shouldRestrictAction && policy && shouldRestrictUserBillableActions(policy.id)) { + Navigation.navigate(ROUTES.RESTRICTED_ACTION.getRoute(policy.id)); + return; + } interceptAnonymousUser(() => { startMoneyRequest(CONST.IOU.TYPE.SUBMIT, reportID, undefined, false, backToReport); }); From 4a442e13cd115af090f0afa5bcaadc7f255d32d7 Mon Sep 17 00:00:00 2001 From: sumo_slonik Date: Fri, 30 May 2025 17:06:34 +0200 Subject: [PATCH 2/6] fix condition --- src/components/MoneyReportHeader.tsx | 4 ++-- .../MoneyRequestReportPreviewContent.tsx | 2 +- src/components/ReportActionItem/ReportPreview.tsx | 2 +- src/pages/AddUnreportedExpense.tsx | 6 ------ 4 files changed, 4 insertions(+), 10 deletions(-) diff --git a/src/components/MoneyReportHeader.tsx b/src/components/MoneyReportHeader.tsx index ce9f9e48030e..f781617ba08b 100644 --- a/src/components/MoneyReportHeader.tsx +++ b/src/components/MoneyReportHeader.tsx @@ -485,7 +485,7 @@ function MoneyReportHeader({ if (!moneyRequestReport?.reportID) { return; } - if (shouldRestrictAction && policy && shouldRestrictUserBillableActions(policy.id)) { + if (policy && shouldRestrictUserBillableActions(policy.id)) { Navigation.navigate(ROUTES.RESTRICTED_ACTION.getRoute(policy.id)); return; } @@ -853,7 +853,7 @@ function MoneyReportHeader({ if (!moneyRequestReport?.reportID) { return; } - if (shouldRestrictAction && policy && shouldRestrictUserBillableActions(policy.id)) { + if (policy && shouldRestrictUserBillableActions(policy.id)) { Navigation.navigate(ROUTES.RESTRICTED_ACTION.getRoute(policy.id)); return; } diff --git a/src/components/ReportActionItem/MoneyRequestReportPreview/MoneyRequestReportPreviewContent.tsx b/src/components/ReportActionItem/MoneyRequestReportPreview/MoneyRequestReportPreviewContent.tsx index 7c12efa6b298..ac2af4994337 100644 --- a/src/components/ReportActionItem/MoneyRequestReportPreview/MoneyRequestReportPreviewContent.tsx +++ b/src/components/ReportActionItem/MoneyRequestReportPreview/MoneyRequestReportPreviewContent.tsx @@ -472,7 +472,7 @@ function MoneyRequestReportPreviewContent({ if (!iouReport?.reportID) { return; } - if (shouldRestrictAction && policy && shouldRestrictUserBillableActions(policy.id)) { + if (policy && shouldRestrictUserBillableActions(policy.id)) { Navigation.navigate(ROUTES.RESTRICTED_ACTION.getRoute(policy.id)); return; } diff --git a/src/components/ReportActionItem/ReportPreview.tsx b/src/components/ReportActionItem/ReportPreview.tsx index d23a80558d9c..68b4c35622e5 100644 --- a/src/components/ReportActionItem/ReportPreview.tsx +++ b/src/components/ReportActionItem/ReportPreview.tsx @@ -514,7 +514,7 @@ function ReportPreview({ if (!iouReport?.reportID) { return; } - if (shouldRestrictAction && policy && shouldRestrictUserBillableActions(policy.id)) { + if (policy && shouldRestrictUserBillableActions(policy.id)) { Navigation.navigate(ROUTES.RESTRICTED_ACTION.getRoute(policy.id)); return; } diff --git a/src/pages/AddUnreportedExpense.tsx b/src/pages/AddUnreportedExpense.tsx index 227273ffc54c..78a6e0546b67 100644 --- a/src/pages/AddUnreportedExpense.tsx +++ b/src/pages/AddUnreportedExpense.tsx @@ -14,14 +14,12 @@ import useThemeStyles from '@hooks/useThemeStyles'; import {fetchUnreportedExpenses} from '@libs/actions/UnreportedExpenses'; import interceptAnonymousUser from '@libs/interceptAnonymousUser'; import type {AddUnreportedExpensesParamList} from '@libs/Navigation/types'; -import {shouldRestrictUserBillableActions} from '@libs/SubscriptionUtils'; import Navigation from '@navigation/Navigation'; import type {PlatformStackScreenProps} from '@navigation/PlatformStackNavigation/types'; import {startMoneyRequest} from '@userActions/IOU'; import {changeTransactionsReport} from '@userActions/Transaction'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; -import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import type Transaction from '@src/types/onyx/Transaction'; import NewChatSelectorPage from './NewChatSelectorPage'; @@ -122,10 +120,6 @@ function AddUnreportedExpense({route}: AddUnreportedExpensePageType) { { buttonText: translate('iou.createExpense'), buttonAction: () => { - if (shouldRestrictAction && policy && shouldRestrictUserBillableActions(policy.id)) { - Navigation.navigate(ROUTES.RESTRICTED_ACTION.getRoute(policy.id)); - return; - } interceptAnonymousUser(() => { startMoneyRequest(CONST.IOU.TYPE.SUBMIT, reportID, undefined, false, backToReport); }); From 13d351600401e834931e0518b3b17909180a4ffc Mon Sep 17 00:00:00 2001 From: sumo_slonik Date: Mon, 2 Jun 2025 11:19:58 +0200 Subject: [PATCH 3/6] fix es lit in react hooks --- src/components/MoneyReportHeader.tsx | 2 +- .../MoneyRequestReportPreviewContent.tsx | 2 +- src/components/ReportActionItem/ReportPreview.tsx | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/components/MoneyReportHeader.tsx b/src/components/MoneyReportHeader.tsx index f781617ba08b..3051590bddfc 100644 --- a/src/components/MoneyReportHeader.tsx +++ b/src/components/MoneyReportHeader.tsx @@ -501,7 +501,7 @@ function MoneyReportHeader({ }, }, ], - [moneyRequestReport?.reportID, translate], + [moneyRequestReport?.reportID, policy, translate], ); const primaryActionsImplementation = { diff --git a/src/components/ReportActionItem/MoneyRequestReportPreview/MoneyRequestReportPreviewContent.tsx b/src/components/ReportActionItem/MoneyRequestReportPreview/MoneyRequestReportPreviewContent.tsx index ac2af4994337..b2fe3193e481 100644 --- a/src/components/ReportActionItem/MoneyRequestReportPreview/MoneyRequestReportPreviewContent.tsx +++ b/src/components/ReportActionItem/MoneyRequestReportPreview/MoneyRequestReportPreviewContent.tsx @@ -488,7 +488,7 @@ function MoneyRequestReportPreviewContent({ }, }, ], - [chatReportID, iouReport?.parentReportID, iouReport?.reportID, translate], + [chatReportID, iouReport?.parentReportID, iouReport?.reportID, policy, translate], ); const isReportDeleted = action?.pendingAction === CONST.RED_BRICK_ROAD_PENDING_ACTION.DELETE; diff --git a/src/components/ReportActionItem/ReportPreview.tsx b/src/components/ReportActionItem/ReportPreview.tsx index 68b4c35622e5..6565258c56ea 100644 --- a/src/components/ReportActionItem/ReportPreview.tsx +++ b/src/components/ReportActionItem/ReportPreview.tsx @@ -530,7 +530,7 @@ function ReportPreview({ }, }, ], - [chatReportID, iouReport?.parentReportID, iouReport?.reportID, translate], + [chatReportID, iouReport?.parentReportID, iouReport?.reportID, policy, translate], ); const reportPreviewAction = useMemo(() => { From 66ca59e184f3281c60cb126b566a32b8caaa8d4e Mon Sep 17 00:00:00 2001 From: sumo_slonik Date: Mon, 2 Jun 2025 12:03:17 +0200 Subject: [PATCH 4/6] add check also to unreported expense --- src/components/MoneyReportHeader.tsx | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/components/MoneyReportHeader.tsx b/src/components/MoneyReportHeader.tsx index 3051590bddfc..bb2584851744 100644 --- a/src/components/MoneyReportHeader.tsx +++ b/src/components/MoneyReportHeader.tsx @@ -497,6 +497,10 @@ function MoneyReportHeader({ text: translate('iou.addUnreportedExpense'), icon: Expensicons.ReceiptPlus, onSelected: () => { + if (policy && shouldRestrictUserBillableActions(policy.id)) { + Navigation.navigate(ROUTES.RESTRICTED_ACTION.getRoute(policy.id)); + return; + } openUnreportedExpense(moneyRequestReport?.reportID); }, }, From c8e1b58f4cd7bc28c244eb6ac19376db467ffc9a Mon Sep 17 00:00:00 2001 From: sumo_slonik Date: Mon, 2 Jun 2025 15:08:26 +0200 Subject: [PATCH 5/6] add missing checks --- .../MoneyRequestReportPreviewContent.tsx | 4 ++++ src/components/ReportActionItem/ReportPreview.tsx | 4 ++++ src/pages/AddUnreportedExpense.tsx | 6 ++++++ 3 files changed, 14 insertions(+) diff --git a/src/components/ReportActionItem/MoneyRequestReportPreview/MoneyRequestReportPreviewContent.tsx b/src/components/ReportActionItem/MoneyRequestReportPreview/MoneyRequestReportPreviewContent.tsx index b2fe3193e481..658d10bc9896 100644 --- a/src/components/ReportActionItem/MoneyRequestReportPreview/MoneyRequestReportPreviewContent.tsx +++ b/src/components/ReportActionItem/MoneyRequestReportPreview/MoneyRequestReportPreviewContent.tsx @@ -484,6 +484,10 @@ function MoneyRequestReportPreviewContent({ text: translate('iou.addUnreportedExpense'), icon: Expensicons.ReceiptPlus, onSelected: () => { + if (policy && policy.id && shouldRestrictUserBillableActions(policy.id)) { + Navigation.navigate(ROUTES.RESTRICTED_ACTION.getRoute(policy.id)); + return; + } openUnreportedExpense(iouReport?.reportID, iouReport?.parentReportID); }, }, diff --git a/src/components/ReportActionItem/ReportPreview.tsx b/src/components/ReportActionItem/ReportPreview.tsx index 6565258c56ea..99d591ddbcba 100644 --- a/src/components/ReportActionItem/ReportPreview.tsx +++ b/src/components/ReportActionItem/ReportPreview.tsx @@ -526,6 +526,10 @@ function ReportPreview({ text: translate('iou.addUnreportedExpense'), icon: Expensicons.ReceiptPlus, onSelected: () => { + if (policy && policy.id && shouldRestrictUserBillableActions(policy.id)) { + Navigation.navigate(ROUTES.RESTRICTED_ACTION.getRoute(policy.id)); + return; + } openUnreportedExpense(iouReport?.reportID, iouReport?.parentReportID); }, }, diff --git a/src/pages/AddUnreportedExpense.tsx b/src/pages/AddUnreportedExpense.tsx index 78a6e0546b67..34314691e77d 100644 --- a/src/pages/AddUnreportedExpense.tsx +++ b/src/pages/AddUnreportedExpense.tsx @@ -14,12 +14,14 @@ import useThemeStyles from '@hooks/useThemeStyles'; import {fetchUnreportedExpenses} from '@libs/actions/UnreportedExpenses'; import interceptAnonymousUser from '@libs/interceptAnonymousUser'; import type {AddUnreportedExpensesParamList} from '@libs/Navigation/types'; +import {shouldRestrictUserBillableActions} from '@libs/SubscriptionUtils'; import Navigation from '@navigation/Navigation'; import type {PlatformStackScreenProps} from '@navigation/PlatformStackNavigation/types'; import {startMoneyRequest} from '@userActions/IOU'; import {changeTransactionsReport} from '@userActions/Transaction'; import CONST from '@src/CONST'; import ONYXKEYS from '@src/ONYXKEYS'; +import ROUTES from '@src/ROUTES'; import type SCREENS from '@src/SCREENS'; import type Transaction from '@src/types/onyx/Transaction'; import NewChatSelectorPage from './NewChatSelectorPage'; @@ -120,6 +122,10 @@ function AddUnreportedExpense({route}: AddUnreportedExpensePageType) { { buttonText: translate('iou.createExpense'), buttonAction: () => { + if (report && report.policyID && shouldRestrictUserBillableActions(report.policyID)) { + Navigation.navigate(ROUTES.RESTRICTED_ACTION.getRoute(report.policyID)); + return; + } interceptAnonymousUser(() => { startMoneyRequest(CONST.IOU.TYPE.SUBMIT, reportID, undefined, false, backToReport); }); From b798a5af760704c611afa89a608970540837fa67 Mon Sep 17 00:00:00 2001 From: sumo_slonik Date: Mon, 2 Jun 2025 16:39:25 +0200 Subject: [PATCH 6/6] remove unnecessary check --- .../MoneyRequestReportPreviewContent.tsx | 2 +- src/components/ReportActionItem/ReportPreview.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/ReportActionItem/MoneyRequestReportPreview/MoneyRequestReportPreviewContent.tsx b/src/components/ReportActionItem/MoneyRequestReportPreview/MoneyRequestReportPreviewContent.tsx index 658d10bc9896..725909ef0099 100644 --- a/src/components/ReportActionItem/MoneyRequestReportPreview/MoneyRequestReportPreviewContent.tsx +++ b/src/components/ReportActionItem/MoneyRequestReportPreview/MoneyRequestReportPreviewContent.tsx @@ -484,7 +484,7 @@ function MoneyRequestReportPreviewContent({ text: translate('iou.addUnreportedExpense'), icon: Expensicons.ReceiptPlus, onSelected: () => { - if (policy && policy.id && shouldRestrictUserBillableActions(policy.id)) { + if (policy && shouldRestrictUserBillableActions(policy.id)) { Navigation.navigate(ROUTES.RESTRICTED_ACTION.getRoute(policy.id)); return; } diff --git a/src/components/ReportActionItem/ReportPreview.tsx b/src/components/ReportActionItem/ReportPreview.tsx index 99d591ddbcba..dd18d151ae07 100644 --- a/src/components/ReportActionItem/ReportPreview.tsx +++ b/src/components/ReportActionItem/ReportPreview.tsx @@ -526,7 +526,7 @@ function ReportPreview({ text: translate('iou.addUnreportedExpense'), icon: Expensicons.ReceiptPlus, onSelected: () => { - if (policy && policy.id && shouldRestrictUserBillableActions(policy.id)) { + if (policy && shouldRestrictUserBillableActions(policy.id)) { Navigation.navigate(ROUTES.RESTRICTED_ACTION.getRoute(policy.id)); return; }