From a3051692b2405b8ca006eacdb6464bfeaa8b5163 Mon Sep 17 00:00:00 2001 From: Ionatan Wiznia Date: Fri, 24 Sep 2021 13:09:35 +0200 Subject: [PATCH] Moves all free plan beta checks to use free plan soft launch beta --- src/CONST.js | 1 + src/libs/Navigation/AppNavigator/AuthScreens.js | 2 +- src/libs/Navigation/Navigation.js | 2 +- src/libs/Permissions.js | 9 +++++++++ src/pages/LoginWithValidateCode2FAPage.js | 4 ++-- src/pages/LoginWithValidateCodePage.js | 4 ++-- .../ReimbursementAccount/ReimbursementAccountPage.js | 2 +- src/pages/home/sidebar/SidebarScreen.js | 2 +- src/pages/workspace/WorkspaceCardPage.js | 2 +- src/pages/workspace/WorkspaceEditorPage.js | 2 +- src/pages/workspace/WorkspacePeoplePage.js | 2 +- 11 files changed, 21 insertions(+), 11 deletions(-) diff --git a/src/CONST.js b/src/CONST.js index f73743110eb1..13438067fd23 100755 --- a/src/CONST.js +++ b/src/CONST.js @@ -88,6 +88,7 @@ const CONST = { IOU: 'IOU', PAY_WITH_EXPENSIFY: 'payWithExpensify', FREE_PLAN: 'freePlan', + FREE_PLAN_SOFT_LAUNCH: 'freePlanSoftLaunch', DEFAULT_ROOMS: 'defaultRooms', BETA_EXPENSIFY_WALLET: 'expensifyWallet', INTERNATIONALIZATION: 'internationalization', diff --git a/src/libs/Navigation/AppNavigator/AuthScreens.js b/src/libs/Navigation/AppNavigator/AuthScreens.js index 38c3639ce2ad..c879ff794bc7 100644 --- a/src/libs/Navigation/AppNavigator/AuthScreens.js +++ b/src/libs/Navigation/AppNavigator/AuthScreens.js @@ -120,7 +120,7 @@ let hasLoadedPolicies = false; function loadPoliciesBehindBeta(betas) { // When removing the freePlan beta, simply load the policyList and the policySummaries in componentDidMount(). // Policy info loading should not be blocked behind the defaultRooms beta alone. - if (!hasLoadedPolicies && (Permissions.canUseFreePlan(betas) || Permissions.canUseDefaultRooms(betas))) { + if (!hasLoadedPolicies && (Permissions.canUseFreePlanSoftLaunch(betas) || Permissions.canUseDefaultRooms(betas))) { getPolicyList(); getPolicySummaries(); hasLoadedPolicies = true; diff --git a/src/libs/Navigation/Navigation.js b/src/libs/Navigation/Navigation.js index 12279df62d2e..c4760ad60db6 100644 --- a/src/libs/Navigation/Navigation.js +++ b/src/libs/Navigation/Navigation.js @@ -200,7 +200,7 @@ function isActiveRoute(routePath) { * * Example: * ```jsx - * if (!Permissions.canUseFreePlan(this.props.betas)) { + * if (!Permissions.canUseFreePlanSoftLaunch(this.props.betas)) { * return ; * } * ``` diff --git a/src/libs/Permissions.js b/src/libs/Permissions.js index bf1850cb9b8e..8f654b79b82e 100644 --- a/src/libs/Permissions.js +++ b/src/libs/Permissions.js @@ -43,6 +43,14 @@ function canUseFreePlan(betas) { return _.contains(betas, CONST.BETAS.FREE_PLAN) || canUseAllBetas(betas); } +/** + * @param {Array} betas + * @returns {Boolean} + */ +function canUseFreePlanSoftLaunch(betas) { + return _.contains(betas, CONST.BETAS.FREE_PLAN_SOFT_LAUNCH) || canUseAllBetas(betas); +} + /** * @param {Array} betas * @returns {Boolean} @@ -72,6 +80,7 @@ export default { canUseIOU, canUsePayWithExpensify, canUseFreePlan, + canUseFreePlanSoftLaunch, canUseDefaultRooms, canUseInternationalization, canUseWallet, diff --git a/src/pages/LoginWithValidateCode2FAPage.js b/src/pages/LoginWithValidateCode2FAPage.js index 5484242544d7..d71e663ff55b 100644 --- a/src/pages/LoginWithValidateCode2FAPage.js +++ b/src/pages/LoginWithValidateCode2FAPage.js @@ -70,7 +70,7 @@ class LoginWithValidateCode2FAPage extends Component { // and by calling dismissModal(), the /v/... route is removed from history so the user will get taken to `/` // if they cancel out of the new workspace modal. Navigation.dismissModal(); - if (Permissions.canUseFreePlan(this.props.betas)) { + if (Permissions.canUseFreePlanSoftLaunch(this.props.betas)) { this.rerouteToRelevantPage(); } } @@ -78,7 +78,7 @@ class LoginWithValidateCode2FAPage extends Component { componentDidUpdate() { // Betas can be loaded a little after a user is authenticated, so check again if the betas have been updated - if (this.props.session.authToken && Permissions.canUseFreePlan(this.props.betas)) { + if (this.props.session.authToken && Permissions.canUseFreePlanSoftLaunch(this.props.betas)) { this.rerouteToRelevantPage(); } } diff --git a/src/pages/LoginWithValidateCodePage.js b/src/pages/LoginWithValidateCodePage.js index c01fcbcc52e2..a3eb999741dc 100644 --- a/src/pages/LoginWithValidateCodePage.js +++ b/src/pages/LoginWithValidateCodePage.js @@ -47,7 +47,7 @@ class LoginWithValidateCodePage extends Component { // and by calling dismissModal(), the /v/... route is removed from history so the user will get taken to `/` // if they cancel out of the new workspace modal. Navigation.dismissModal(); - if (Permissions.canUseFreePlan(this.props.betas)) { + if (Permissions.canUseFreePlanSoftLaunch(this.props.betas)) { this.rerouteToRelevantPage(); } return; @@ -60,7 +60,7 @@ class LoginWithValidateCodePage extends Component { componentDidUpdate() { // Betas can be loaded a little after a user is authenticated, so check again if the betas have been updated - if (this.props.session.authToken && Permissions.canUseFreePlan(this.props.betas)) { + if (this.props.session.authToken && Permissions.canUseFreePlanSoftLaunch(this.props.betas)) { this.rerouteToRelevantPage(); } } diff --git a/src/pages/ReimbursementAccount/ReimbursementAccountPage.js b/src/pages/ReimbursementAccount/ReimbursementAccountPage.js index 3adffd340a27..c0c9bc126521 100644 --- a/src/pages/ReimbursementAccount/ReimbursementAccountPage.js +++ b/src/pages/ReimbursementAccount/ReimbursementAccountPage.js @@ -138,7 +138,7 @@ class ReimbursementAccountPage extends React.Component { } render() { - if (!Permissions.canUseFreePlan(this.props.betas)) { + if (!Permissions.canUseFreePlanSoftLaunch(this.props.betas)) { console.debug('Not showing new bank account page because user is not on free plan beta'); Navigation.dismissModal(); return null; diff --git a/src/pages/home/sidebar/SidebarScreen.js b/src/pages/home/sidebar/SidebarScreen.js index 725d30e898c1..e93033f6eada 100755 --- a/src/pages/home/sidebar/SidebarScreen.js +++ b/src/pages/home/sidebar/SidebarScreen.js @@ -172,7 +172,7 @@ class SidebarScreen extends Component { onSelected: () => Navigation.navigate(ROUTES.IOU_BILL), }, ] : []), - ...(Permissions.canUseFreePlan(this.props.betas) && !isAdminOfFreePolicy(this.props.allPolicies) ? [ + ...(Permissions.canUseFreePlanSoftLaunch(this.props.betas) && !isAdminOfFreePolicy(this.props.allPolicies) ? [ { icon: NewWorkspace, iconWidth: 46, diff --git a/src/pages/workspace/WorkspaceCardPage.js b/src/pages/workspace/WorkspaceCardPage.js index 4eee5d7f9535..269d2f374684 100644 --- a/src/pages/workspace/WorkspaceCardPage.js +++ b/src/pages/workspace/WorkspaceCardPage.js @@ -109,7 +109,7 @@ const WorkspaceCardPage = ({ } }; - if (!Permissions.canUseFreePlan(betas)) { + if (!Permissions.canUseFreePlanSoftLaunch(betas)) { console.debug('Not showing workspace card page because user is not on free plan beta'); return ; } diff --git a/src/pages/workspace/WorkspaceEditorPage.js b/src/pages/workspace/WorkspaceEditorPage.js index c5f3f77b1967..db84595e5134 100644 --- a/src/pages/workspace/WorkspaceEditorPage.js +++ b/src/pages/workspace/WorkspaceEditorPage.js @@ -85,7 +85,7 @@ class WorkspaceEditorPage extends React.Component { render() { const {policy} = this.props; - if (!Permissions.canUseFreePlan(this.props.betas)) { + if (!Permissions.canUseFreePlanSoftLaunch(this.props.betas)) { console.debug('Not showing workspace editor page because user is not on free plan beta'); return ; } diff --git a/src/pages/workspace/WorkspacePeoplePage.js b/src/pages/workspace/WorkspacePeoplePage.js index 843ef6be3728..c652a1dfd1a4 100644 --- a/src/pages/workspace/WorkspacePeoplePage.js +++ b/src/pages/workspace/WorkspacePeoplePage.js @@ -208,7 +208,7 @@ class WorkspacePeoplePage extends React.Component { } render() { - if (!Permissions.canUseFreePlan(this.props.betas)) { + if (!Permissions.canUseFreePlanSoftLaunch(this.props.betas)) { console.debug('Not showing workspace people page because user is not on free plan beta'); return ; }