Skip to content

Commit

Permalink
Merge pull request #55501 from nkdengineer/fix/54849
Browse files Browse the repository at this point in the history
Fix getting wrong onboarding policy

(cherry picked from commit a478562)

(CP triggered by Beamanator)
  • Loading branch information
mountiny authored and OSBotify committed Jan 21, 2025
1 parent b33054a commit 7869a83
Showing 1 changed file with 14 additions and 13 deletions.
27 changes: 14 additions & 13 deletions src/pages/OnboardingAccounting/BaseOnboardingAccounting.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,13 @@ import useResponsiveLayout from '@hooks/useResponsiveLayout';
import useStyleUtils from '@hooks/useStyleUtils';
import useTheme from '@hooks/useTheme';
import useThemeStyles from '@hooks/useThemeStyles';
import {createWorkspace, generatePolicyID} from '@libs/actions/Policy/Policy';
import {completeOnboarding} from '@libs/actions/Report';
import {setOnboardingAdminsChatReportID, setOnboardingPolicyID} from '@libs/actions/Welcome';
import navigateAfterOnboarding from '@libs/navigateAfterOnboarding';
import Navigation from '@libs/Navigation/Navigation';
import * as PolicyUtils from '@libs/PolicyUtils';
import {isPaidGroupPolicy, isPolicyAdmin} from '@libs/PolicyUtils';
import variables from '@styles/variables';
import * as Policy from '@userActions/Policy/Policy';
import * as Report from '@userActions/Report';
import * as Welcome from '@userActions/Welcome';
import CONST from '@src/CONST';
import type {OnboardingAccounting} from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
Expand Down Expand Up @@ -53,32 +53,33 @@ function BaseOnboardingAccounting({shouldUseNativeStyles}: BaseOnboardingAccount
const [onboardingCompanySize] = useOnyx(ONYXKEYS.ONBOARDING_COMPANY_SIZE);
const {canUseDefaultRooms} = usePermissions();
const {activeWorkspaceID} = useActiveWorkspace();
const [session] = useOnyx(ONYXKEYS.SESSION);

const [userReportedIntegration, setUserReportedIntegration] = useState<OnboardingAccounting | undefined>(undefined);
const [error, setError] = useState('');
const isVsb = onboardingValues && 'signupQualifier' in onboardingValues && onboardingValues.signupQualifier === CONST.ONBOARDING_SIGNUP_QUALIFIERS.VSB;

// If the signupQualifier is VSB, the company size step is skip.
// So we need to create the new workspace in the accounting step
const paidGroupPolicy = Object.values(allPolicies ?? {}).find(PolicyUtils.isPaidGroupPolicy);
const paidGroupPolicy = Object.values(allPolicies ?? {}).find((policy) => isPaidGroupPolicy(policy) && isPolicyAdmin(policy, session?.email));
useEffect(() => {
// eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing
if (!isVsb || paidGroupPolicy || isLoadingOnyxValue(allPoliciesResult)) {
return;
}

const {adminsChatReportID, policyID} = Policy.createWorkspace(undefined, true, '', Policy.generatePolicyID(), CONST.ONBOARDING_CHOICES.MANAGE_TEAM);
Welcome.setOnboardingAdminsChatReportID(adminsChatReportID);
Welcome.setOnboardingPolicyID(policyID);
const {adminsChatReportID, policyID} = createWorkspace(undefined, true, '', generatePolicyID(), CONST.ONBOARDING_CHOICES.MANAGE_TEAM);
setOnboardingAdminsChatReportID(adminsChatReportID);
setOnboardingPolicyID(policyID);
}, [isVsb, paidGroupPolicy, allPolicies, allPoliciesResult]);

// Set onboardingPolicyID and onboardingAdminsChatReportID if a workspace is created by the backend for OD signups
useEffect(() => {
if (!paidGroupPolicy || onboardingPolicyID) {
return;
}
Welcome.setOnboardingAdminsChatReportID(paidGroupPolicy.chatReportIDAdmins?.toString());
Welcome.setOnboardingPolicyID(paidGroupPolicy.id);
setOnboardingAdminsChatReportID(paidGroupPolicy.chatReportIDAdmins?.toString());
setOnboardingPolicyID(paidGroupPolicy.id);
}, [paidGroupPolicy, onboardingPolicyID]);

const accountingOptions: OnboardingListItem[] = useMemo(() => {
Expand Down Expand Up @@ -166,7 +167,7 @@ function BaseOnboardingAccounting({shouldUseNativeStyles}: BaseOnboardingAccount
return;
}

Report.completeOnboarding(
completeOnboarding(
onboardingPurposeSelected,
CONST.ONBOARDING_MESSAGES[onboardingPurposeSelected],
undefined,
Expand All @@ -179,8 +180,8 @@ function BaseOnboardingAccounting({shouldUseNativeStyles}: BaseOnboardingAccount
);
// Avoid creating new WS because onboardingPolicyID is cleared before unmounting
InteractionManager.runAfterInteractions(() => {
Welcome.setOnboardingAdminsChatReportID();
Welcome.setOnboardingPolicyID();
setOnboardingAdminsChatReportID();
setOnboardingPolicyID();
});
navigateAfterOnboarding(isSmallScreenWidth, canUseDefaultRooms, onboardingPolicyID, activeWorkspaceID);
}}
Expand Down

0 comments on commit 7869a83

Please sign in to comment.