From 8e166d84a75f925c6370b6d527618484f0f06cd4 Mon Sep 17 00:00:00 2001 From: nkdengineer Date: Tue, 21 Jan 2025 11:16:53 +0700 Subject: [PATCH 1/2] fix getting wrong onboarding policy --- src/pages/OnboardingAccounting/BaseOnboardingAccounting.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/pages/OnboardingAccounting/BaseOnboardingAccounting.tsx b/src/pages/OnboardingAccounting/BaseOnboardingAccounting.tsx index a14f30216051..0d4d84584013 100644 --- a/src/pages/OnboardingAccounting/BaseOnboardingAccounting.tsx +++ b/src/pages/OnboardingAccounting/BaseOnboardingAccounting.tsx @@ -53,6 +53,7 @@ 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(undefined); const [error, setError] = useState(''); @@ -60,7 +61,7 @@ function BaseOnboardingAccounting({shouldUseNativeStyles}: BaseOnboardingAccount // 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) => PolicyUtils.isPaidGroupPolicy(policy) && PolicyUtils.isPolicyAdmin(policy, session?.email)); useEffect(() => { // eslint-disable-next-line @typescript-eslint/prefer-nullish-coalescing if (!isVsb || paidGroupPolicy || isLoadingOnyxValue(allPoliciesResult)) { From f5fe6da59c769701c68b02624a3c56edd8c6d393 Mon Sep 17 00:00:00 2001 From: nkdengineer Date: Tue, 21 Jan 2025 12:08:37 +0700 Subject: [PATCH 2/2] fix lint --- .../BaseOnboardingAccounting.tsx | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/pages/OnboardingAccounting/BaseOnboardingAccounting.tsx b/src/pages/OnboardingAccounting/BaseOnboardingAccounting.tsx index 0d4d84584013..3f52722fc30e 100644 --- a/src/pages/OnboardingAccounting/BaseOnboardingAccounting.tsx +++ b/src/pages/OnboardingAccounting/BaseOnboardingAccounting.tsx @@ -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'; @@ -61,16 +61,16 @@ function BaseOnboardingAccounting({shouldUseNativeStyles}: BaseOnboardingAccount // 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((policy) => PolicyUtils.isPaidGroupPolicy(policy) && PolicyUtils.isPolicyAdmin(policy, session?.email)); + 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 @@ -78,8 +78,8 @@ function BaseOnboardingAccounting({shouldUseNativeStyles}: BaseOnboardingAccount 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(() => { @@ -167,7 +167,7 @@ function BaseOnboardingAccounting({shouldUseNativeStyles}: BaseOnboardingAccount return; } - Report.completeOnboarding( + completeOnboarding( onboardingPurposeSelected, CONST.ONBOARDING_MESSAGES[onboardingPurposeSelected], undefined, @@ -180,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); }}