Skip to content

Commit 80c4578

Browse files
Merge pull request Expensify#86301 from daledah/follow-up/67477
follow up: default new WS to Control if user is in annual subscription
2 parents 941cc4d + 6b82310 commit 80c4578

3 files changed

Lines changed: 14 additions & 2 deletions

File tree

src/libs/actions/App.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -572,6 +572,7 @@ type CreateWorkspaceWithPolicyDraftParams = {
572572
type?: PolicyType;
573573
betas: OnyxEntry<OnyxTypes.Beta[]>;
574574
hasActiveAdminPolicies: boolean;
575+
isAnnualSubscription?: boolean;
575576
};
576577

577578
/**
@@ -598,6 +599,7 @@ function createWorkspaceWithPolicyDraftAndNavigateToIt(params: CreateWorkspaceWi
598599
isSelfTourViewed,
599600
betas,
600601
hasActiveAdminPolicies,
602+
isAnnualSubscription = false,
601603
} = params;
602604

603605
const policyIDWithDefault = policyID || generatePolicyID();
@@ -626,6 +628,7 @@ function createWorkspaceWithPolicyDraftAndNavigateToIt(params: CreateWorkspaceWi
626628
isSelfTourViewed,
627629
betas,
628630
hasActiveAdminPolicies,
631+
isAnnualSubscription,
629632
});
630633
Navigation.navigate(routeToNavigate, {forceReplace: !transitionFromOldDot});
631634
});
@@ -689,6 +692,7 @@ type SavePolicyDraftByNewWorkspaceParams = {
689692
type?: PolicyType;
690693
betas: OnyxEntry<OnyxTypes.Beta[]>;
691694
hasActiveAdminPolicies: boolean;
695+
isAnnualSubscription?: boolean;
692696
};
693697

694698
/**
@@ -712,6 +716,7 @@ function savePolicyDraftByNewWorkspace({
712716
isSelfTourViewed,
713717
betas,
714718
hasActiveAdminPolicies,
719+
isAnnualSubscription = false,
715720
}: SavePolicyDraftByNewWorkspaceParams) {
716721
createWorkspace({
717722
policyOwnerEmail,
@@ -732,6 +737,7 @@ function savePolicyDraftByNewWorkspace({
732737
isSelfTourViewed,
733738
betas,
734739
hasActiveAdminPolicies,
740+
isAnnualSubscription,
735741
});
736742
}
737743

src/libs/actions/Policy/Policy.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -195,6 +195,7 @@ type BuildPolicyDataOptions = {
195195
shouldAddOnboardingTasks?: boolean;
196196
companySize?: OnboardingCompanySize;
197197
userReportedIntegration?: OnboardingAccounting;
198+
isAnnualSubscription?: boolean;
198199
featuresMap?: Array<Pick<Feature, 'id' | 'enabled' | 'enabledByDefault' | 'requiresUpdate'>>;
199200
lastUsedPaymentMethod?: LastPaymentMethodType;
200201
adminParticipant?: Participant;
@@ -2317,6 +2318,7 @@ function createDraftInitialWorkspace(
23172318
currency = '',
23182319
file?: File,
23192320
type: typeof CONST.POLICY.TYPE.TEAM | typeof CONST.POLICY.TYPE.CORPORATE = CONST.POLICY.TYPE.TEAM,
2321+
isAnnualSubscription = false,
23202322
) {
23212323
const {customUnits, outputCurrency} = buildOptimisticDistanceRateCustomUnits(currency);
23222324
const shouldEnableWorkflowsByDefault =
@@ -2328,7 +2330,7 @@ function createDraftInitialWorkspace(
23282330
key: `${ONYXKEYS.COLLECTION.POLICY_DRAFTS}${policyID}`,
23292331
value: {
23302332
id: policyID,
2331-
type: type || CONST.POLICY.TYPE.TEAM,
2333+
type: type || (isAnnualSubscription ? CONST.POLICY.TYPE.CORPORATE : CONST.POLICY.TYPE.TEAM),
23322334
name: workspaceName,
23332335
role: CONST.POLICY.ROLE.ADMIN,
23342336
owner: currentUserEmail,
@@ -2417,6 +2419,7 @@ function buildPolicyData(options: BuildPolicyDataOptions): OnyxData<BuildPolicyD
24172419
shouldAddOnboardingTasks = true,
24182420
companySize,
24192421
userReportedIntegration,
2422+
isAnnualSubscription = false,
24202423
featuresMap,
24212424
lastUsedPaymentMethod,
24222425
adminParticipant,
@@ -2464,7 +2467,7 @@ function buildPolicyData(options: BuildPolicyDataOptions): OnyxData<BuildPolicyD
24642467
const isCorporateFeature = featuresMap?.some((feature) => !feature.enabledByDefault && feature.enabled && feature.requiresUpdate) ?? false;
24652468
const isCorporateIntegration = userReportedIntegration && (CONST.POLICY.CONNECTIONS.CORPORATE as readonly string[]).includes(userReportedIntegration);
24662469

2467-
const workspaceType = type ?? (isCorporateFeature || isCorporateIntegration || shouldCreateControlPolicy ? CONST.POLICY.TYPE.CORPORATE : CONST.POLICY.TYPE.TEAM);
2470+
const workspaceType = type ?? (isCorporateFeature || isCorporateIntegration || shouldCreateControlPolicy || isAnnualSubscription ? CONST.POLICY.TYPE.CORPORATE : CONST.POLICY.TYPE.TEAM);
24682471

24692472
const areDistanceRatesEnabled = !!featuresMap?.find((feature) => feature.id === CONST.POLICY.MORE_FEATURES.ARE_DISTANCE_RATES_ENABLED && feature.enabled);
24702473

src/pages/workspace/WorkspaceConfirmationPage.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ import {createWorkspaceWithPolicyDraftAndNavigateToIt} from '@libs/actions/App';
1212
import {generatePolicyID} from '@libs/actions/Policy/Policy';
1313
import getCurrentUrl from '@libs/Navigation/currentUrl';
1414
import {isSubscriptionTypeOfInvoicing} from '@libs/SubscriptionUtils';
15+
import CONST from '@src/CONST';
1516
import ONYXKEYS from '@src/ONYXKEYS';
1617
import ROUTES from '@src/ROUTES';
1718
import type {LastPaymentMethodType} from '@src/types/onyx';
@@ -29,6 +30,7 @@ function WorkspaceConfirmationPage() {
2930

3031
const currentUserPersonalDetails = useCurrentUserPersonalDetails();
3132
const privateSubscription = usePrivateSubscription();
33+
const isAnnualSubscription = privateSubscription?.type === CONST.SUBSCRIPTION.TYPE.ANNUAL;
3234
const hasActiveAdminPolicies = useHasActiveAdminPolicies();
3335

3436
const onSubmit = (params: WorkspaceConfirmationSubmitFunctionParams) => {
@@ -54,6 +56,7 @@ function WorkspaceConfirmationPage() {
5456
isSelfTourViewed,
5557
betas,
5658
hasActiveAdminPolicies,
59+
isAnnualSubscription,
5760
});
5861
};
5962
const currentUrl = getCurrentUrl();

0 commit comments

Comments
 (0)