diff --git a/src/CONST.ts b/src/CONST.ts index 3f141905e84c2..eb409e1fb8381 100755 --- a/src/CONST.ts +++ b/src/CONST.ts @@ -5308,24 +5308,55 @@ const CONST = { }, EXCLUDE_FROM_LAST_VISITED_PATH: [SCREENS.NOT_FOUND, SCREENS.SAML_SIGN_IN, SCREENS.VALIDATE_LOGIN] as string[], - EMPTY_STATE_MEDIA: { ANIMATION: 'animation', ILLUSTRATION: 'illustration', VIDEO: 'video', }, - - UPGRADE_FEATURE_INTRO_MAPPING: [ - { - id: 'reportFields', - alias: 'report-fields', - name: 'Report Fields', - title: 'workspace.upgrade.reportFields.title', - description: 'workspace.upgrade.reportFields.description', - icon: 'Pencil', - }, - ], - + get UPGRADE_FEATURE_INTRO_MAPPING() { + return { + reportFields: { + id: 'reportFields' as const, + alias: 'report-fields', + name: 'Report Fields', + title: 'workspace.upgrade.reportFields.title' as const, + description: 'workspace.upgrade.reportFields.description' as const, + icon: 'Pencil', + }, + [this.POLICY.CONNECTIONS.NAME.NETSUITE]: { + id: this.POLICY.CONNECTIONS.NAME.NETSUITE, + alias: 'netsuite', + name: this.POLICY.CONNECTIONS.NAME_USER_FRIENDLY.netsuite, + title: `workspace.upgrade.${this.POLICY.CONNECTIONS.NAME.NETSUITE}.title` as const, + description: `workspace.upgrade.${this.POLICY.CONNECTIONS.NAME.NETSUITE}.description` as const, + icon: 'NetSuiteSquare', + }, + [this.POLICY.CONNECTIONS.NAME.SAGE_INTACCT]: { + id: this.POLICY.CONNECTIONS.NAME.SAGE_INTACCT, + alias: 'sage-intacct', + name: this.POLICY.CONNECTIONS.NAME_USER_FRIENDLY.intacct, + title: `workspace.upgrade.${this.POLICY.CONNECTIONS.NAME.SAGE_INTACCT}.title` as const, + description: `workspace.upgrade.${this.POLICY.CONNECTIONS.NAME.SAGE_INTACCT}.description` as const, + icon: 'IntacctSquare', + }, + glCodes: { + id: 'glCodes' as const, + alias: 'gl-codes', + name: 'GL codes', + title: 'workspace.upgrade.glCodes.title' as const, + description: 'workspace.upgrade.glCodes.description' as const, + icon: 'Tag', + }, + glAndPayrollCodes: { + id: 'glAndPayrollCodes' as const, + alias: 'gl-and-payroll-codes', + name: 'GL & Payroll codes', + title: 'workspace.upgrade.glAndPayrollCodes.title' as const, + description: 'workspace.upgrade.glAndPayrollCodes.description' as const, + icon: 'FolderOpen', + }, + }; + }, REPORT_FIELD_TYPES: { TEXT: 'text', DATE: 'date', diff --git a/src/ROUTES.ts b/src/ROUTES.ts index f13724bf4322c..fb868111bd311 100644 --- a/src/ROUTES.ts +++ b/src/ROUTES.ts @@ -700,7 +700,8 @@ const ROUTES = { }, WORKSPACE_UPGRADE: { route: 'settings/workspaces/:policyID/upgrade/:featureName', - getRoute: (policyID: string, featureName: string) => `settings/workspaces/${policyID}/upgrade/${encodeURIComponent(featureName)}` as const, + getRoute: (policyID: string, featureName: string, backTo?: string) => + getUrlWithBackToParam(`settings/workspaces/${policyID}/upgrade/${encodeURIComponent(featureName)}` as const, backTo), }, WORKSPACE_CATEGORIES_SETTINGS: { route: 'settings/workspaces/:policyID/categories/settings', diff --git a/src/components/ConnectToNetSuiteButton/index.tsx b/src/components/ConnectToNetSuiteButton/index.tsx index b741d584a49ea..928bc01f12c16 100644 --- a/src/components/ConnectToNetSuiteButton/index.tsx +++ b/src/components/ConnectToNetSuiteButton/index.tsx @@ -1,5 +1,6 @@ import React, {useRef, useState} from 'react'; import type {View} from 'react-native'; +import {useOnyx} from 'react-native-onyx'; import AccountingConnectionConfirmationModal from '@components/AccountingConnectionConfirmationModal'; import Button from '@components/Button'; import * as Expensicons from '@components/Icon/Expensicons'; @@ -11,8 +12,10 @@ import useWindowDimensions from '@hooks/useWindowDimensions'; import {removePolicyConnection} from '@libs/actions/connections'; import {getAdminPoliciesConnectedToNetSuite} from '@libs/actions/Policy/Policy'; import Navigation from '@libs/Navigation/Navigation'; +import {isControlPolicy} from '@libs/PolicyUtils'; import type {AnchorPosition} from '@styles/index'; import CONST from '@src/CONST'; +import ONYXKEYS from '@src/ONYXKEYS'; import ROUTES from '@src/ROUTES'; import type {ConnectToNetSuiteButtonProps} from './types'; @@ -20,6 +23,7 @@ function ConnectToNetSuiteButton({policyID, shouldDisconnectIntegrationBeforeCon const styles = useThemeStyles(); const {translate} = useLocalize(); const {isOffline} = useNetwork(); + const [policy] = useOnyx(`${ONYXKEYS.COLLECTION.POLICY}${policyID}`); const [isDisconnectModalOpen, setIsDisconnectModalOpen] = useState(false); @@ -51,6 +55,11 @@ function ConnectToNetSuiteButton({policyID, shouldDisconnectIntegrationBeforeCon <>