From c7e44c70a0c1da8e13a6ccd80b69d600f82b2c3e Mon Sep 17 00:00:00 2001 From: Mykhailo Kravchenko Date: Thu, 26 Sep 2024 15:44:02 +0200 Subject: [PATCH] add invoices button --- src/pages/workspace/WorkspaceInitialPage.tsx | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/src/pages/workspace/WorkspaceInitialPage.tsx b/src/pages/workspace/WorkspaceInitialPage.tsx index 841addd5f11b..41f3ca939fe9 100644 --- a/src/pages/workspace/WorkspaceInitialPage.tsx +++ b/src/pages/workspace/WorkspaceInitialPage.tsx @@ -21,6 +21,7 @@ import useSingleExecution from '@hooks/useSingleExecution'; import useThemeStyles from '@hooks/useThemeStyles'; import useWaitForNavigation from '@hooks/useWaitForNavigation'; import {isConnectionInProgress} from '@libs/actions/connections'; +import * as CurrencyUtils from '@libs/CurrencyUtils'; import getTopmostRouteName from '@libs/Navigation/getTopmostRouteName'; import Navigation from '@libs/Navigation/Navigation'; import * as PolicyUtils from '@libs/PolicyUtils'; @@ -62,6 +63,7 @@ type WorkspaceMenuItem = { | typeof SCREENS.WORKSPACE.COMPANY_CARDS | typeof SCREENS.WORKSPACE.REPORT_FIELDS | typeof SCREENS.WORKSPACE.RULES; + badgeText?: string; }; type WorkspaceInitialPageProps = WithPolicyAndFullscreenLoadingProps & StackScreenProps; @@ -106,6 +108,7 @@ function WorkspaceInitialPage({policyDraft, policy: policyProp, route}: Workspac [CONST.POLICY.MORE_FEATURES.ARE_EXPENSIFY_CARDS_ENABLED]: policy?.areExpensifyCardsEnabled, [CONST.POLICY.MORE_FEATURES.ARE_REPORT_FIELDS_ENABLED]: policy?.areReportFieldsEnabled, [CONST.POLICY.MORE_FEATURES.ARE_RULES_ENABLED]: policy?.areRulesEnabled, + [CONST.POLICY.MORE_FEATURES.ARE_INVOICES_ENABLED]: policy?.areInvoicesEnabled, }), [policy], ) as PolicyFeatureStates; @@ -173,6 +176,21 @@ function WorkspaceInitialPage({policyDraft, policy: policyProp, route}: Workspac }); }, [policy, isOffline, policyFeatureStates, prevPendingFields]); + if (featureStates?.[CONST.POLICY.MORE_FEATURES.ARE_INVOICES_ENABLED]) { + const currencyCode = policy?.outputCurrency ?? CONST.CURRENCY.USD; + + protectedCollectPolicyMenuItems.push({ + translationKey: 'workspace.common.invoices', + icon: Expensicons.InvoiceGeneric, + action: singleExecution(waitForNavigate(() => Navigation.navigate(ROUTES.WORKSPACE_INVOICES.getRoute(policyID)))), + routeName: SCREENS.WORKSPACE.INVOICES, + badgeText: `${CurrencyUtils.getCurrencySymbol(currencyCode)}${CurrencyUtils.convertToFrontendAmountAsString( + policy?.invoice?.bankAccount?.stripeConnectAccountBalance ?? 0, + currencyCode, + )}`, + }); + } + if (featureStates?.[CONST.POLICY.MORE_FEATURES.ARE_DISTANCE_RATES_ENABLED]) { protectedCollectPolicyMenuItems.push({ translationKey: 'workspace.common.distanceRates', @@ -393,6 +411,7 @@ function WorkspaceInitialPage({policyDraft, policy: policyProp, route}: Workspac highlighted={enabledItem?.routeName === item.routeName} focused={!!(item.routeName && activeRoute?.startsWith(item.routeName))} isPaneMenu + badgeText={item.badgeText} /> ))}