Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 7 additions & 9 deletions src/libs/actions/IOU.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9266,18 +9266,16 @@ function completePaymentOnboarding(paymentSelected: ValueOf<typeof CONST.PAYMENT
onboardingPurpose = CONST.ONBOARDING_CHOICES.CHAT_SPLIT;
}

completeOnboarding(
onboardingPurpose,
CONST.ONBOARDING_MESSAGES[onboardingPurpose],
personalDetails?.firstName ?? '',
personalDetails?.lastName ?? '',
completeOnboarding({
engagementChoice: onboardingPurpose,
onboardingMessage: CONST.ONBOARDING_MESSAGES[onboardingPurpose],
firstName: personalDetails?.firstName,
lastName: personalDetails?.lastName,
adminsChatReportID,
onboardingPolicyID,
paymentSelected,
undefined,
undefined,
true,
);
wasInvited: true,
});
}
function payMoneyRequest(paymentType: PaymentMethodType, chatReport: OnyxTypes.Report, iouReport: OnyxEntry<OnyxTypes.Report>, full = true) {
if (chatReport.policyID && shouldRestrictUserBillableActions(chatReport.policyID)) {
Expand Down
43 changes: 27 additions & 16 deletions src/libs/actions/Report.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3877,20 +3877,20 @@ function getReportPrivateNote(reportID: string | undefined) {

function prepareOnboardingOnyxData(
engagementChoice: OnboardingPurpose,
data: ValueOf<typeof CONST.ONBOARDING_MESSAGES>,
onboardingMessage: ValueOf<typeof CONST.ONBOARDING_MESSAGES>,
adminsChatReportID?: string,
onboardingPolicyID?: string,
userReportedIntegration?: OnboardingAccounting,
wasInvited?: boolean,
) {
if (engagementChoice === CONST.ONBOARDING_CHOICES.PERSONAL_SPEND) {
// eslint-disable-next-line no-param-reassign
data = CONST.CREATE_EXPENSE_ONBOARDING_MESSAGES[CONST.ONBOARDING_CHOICES.PERSONAL_SPEND];
onboardingMessage = CONST.CREATE_EXPENSE_ONBOARDING_MESSAGES[CONST.ONBOARDING_CHOICES.PERSONAL_SPEND];
}

if (engagementChoice === CONST.ONBOARDING_CHOICES.EMPLOYER || engagementChoice === CONST.ONBOARDING_CHOICES.SUBMIT) {
// eslint-disable-next-line no-param-reassign
data = CONST.CREATE_EXPENSE_ONBOARDING_MESSAGES[CONST.ONBOARDING_CHOICES.SUBMIT];
onboardingMessage = CONST.CREATE_EXPENSE_ONBOARDING_MESSAGES[CONST.ONBOARDING_CHOICES.SUBMIT];
}

// Guides are assigned and tasks are posted in the #admins room for the MANAGE_TEAM and TRACK_WORKSPACE onboarding actions, except for emails that have a '+'.
Expand Down Expand Up @@ -3928,7 +3928,7 @@ function prepareOnboardingOnyxData(
const actorAccountID = shouldPostTasksInAdminsRoom ? assignedGuideAccountID : CONST.ACCOUNT_ID.CONCIERGE;

// Text message
const textComment = buildOptimisticAddCommentReportAction(data.message, undefined, actorAccountID, 1);
const textComment = buildOptimisticAddCommentReportAction(onboardingMessage.message, undefined, actorAccountID, 1);
const textCommentAction: OptimisticAddCommentReportAction = textComment.reportAction;
const textMessage: AddCommentOrAttachementParams = {
reportID: targetChatReportID,
Expand All @@ -3947,7 +3947,7 @@ function prepareOnboardingOnyxData(
};

let createWorkspaceTaskReportID;
const tasksData = data.tasks
const tasksData = onboardingMessage.tasks
.filter((task) => {
if (['setupCategories', 'setupTags'].includes(task.type) && userReportedIntegration) {
return false;
Expand Down Expand Up @@ -4413,19 +4413,30 @@ function prepareOnboardingOnyxData(
return {optimisticData, successData, failureData, guidedSetupData, actorAccountID, selfDMParameters};
}

function completeOnboarding(
engagementChoice: OnboardingPurpose,
data: ValueOf<typeof CONST.ONBOARDING_MESSAGES>,
function completeOnboarding({
engagementChoice,
onboardingMessage,

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, that's a much better name than data 😄

firstName = '',
lastName = '',
adminsChatReportID?: string,
onboardingPolicyID?: string,
paymentSelected?: string,
companySize?: OnboardingCompanySize,
userReportedIntegration?: OnboardingAccounting,
wasInvited?: boolean,
) {
const onboardingData = prepareOnboardingOnyxData(engagementChoice, data, adminsChatReportID, onboardingPolicyID, userReportedIntegration, wasInvited);
adminsChatReportID,
onboardingPolicyID,
paymentSelected,
companySize,
userReportedIntegration,
wasInvited,
}: {
engagementChoice: OnboardingPurpose;
onboardingMessage: ValueOf<typeof CONST.ONBOARDING_MESSAGES>;
firstName?: string;
lastName?: string;
adminsChatReportID?: string;
onboardingPolicyID?: string;
paymentSelected?: string;
companySize?: OnboardingCompanySize;
userReportedIntegration?: OnboardingAccounting;
wasInvited?: boolean;
}) {
Comment on lines +4427 to +4438

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

NAB: I prefer declaring the type separately and naming it.

const onboardingData = prepareOnboardingOnyxData(engagementChoice, onboardingMessage, adminsChatReportID, onboardingPolicyID, userReportedIntegration, wasInvited);
if (!onboardingData) {
return;
}
Expand Down
15 changes: 6 additions & 9 deletions src/pages/OnboardingAccounting/BaseOnboardingAccounting.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -172,17 +172,14 @@ function BaseOnboardingAccounting({shouldUseNativeStyles}: BaseOnboardingAccount
return;
}

completeOnboarding(
onboardingPurposeSelected,
CONST.ONBOARDING_MESSAGES[onboardingPurposeSelected],
undefined,
undefined,
onboardingAdminsChatReportID ?? undefined,
completeOnboarding({
engagementChoice: onboardingPurposeSelected,
onboardingMessage: CONST.ONBOARDING_MESSAGES[onboardingPurposeSelected],
adminsChatReportID: onboardingAdminsChatReportID,
onboardingPolicyID,
undefined,
onboardingCompanySize,
companySize: onboardingCompanySize,
userReportedIntegration,
);
});
// Avoid creating new WS because onboardingPolicyID is cleared before unmounting
InteractionManager.runAfterInteractions(() => {
setOnboardingAdminsChatReportID();
Expand Down
13 changes: 5 additions & 8 deletions src/pages/OnboardingEmployees/BaseOnboardingEmployees.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -99,16 +99,13 @@ function BaseOnboardingEmployees({shouldUseNativeStyles, route}: BaseOnboardingE
// For other company sizes we want to complete onboarding here.
// At this point `onboardingPurposeSelected` should always exist as we set it in `BaseOnboardingPurpose`.
if (onboardingPurposeSelected) {
completeOnboarding(
onboardingPurposeSelected,
CONST.ONBOARDING_MESSAGES[onboardingPurposeSelected],
undefined,
undefined,
completeOnboarding({
engagementChoice: onboardingPurposeSelected,
onboardingMessage: CONST.ONBOARDING_MESSAGES[onboardingPurposeSelected],
adminsChatReportID,
onboardingPolicyID,
undefined,
onboardingCompanySize,
);
companySize: onboardingCompanySize,
});
}

if (CONFIG.IS_HYBRID_APP) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -58,14 +58,14 @@ function BaseOnboardingPersonalDetails({currentUserPersonalDetails, shouldUseNat
return;
}

completeOnboardingReport(
onboardingPurposeSelected,
CONST.ONBOARDING_MESSAGES[onboardingPurposeSelected],
completeOnboardingReport({
engagementChoice: onboardingPurposeSelected,
onboardingMessage: CONST.ONBOARDING_MESSAGES[onboardingPurposeSelected],
firstName,
lastName,
onboardingAdminsChatReportID ?? undefined,
adminsChatReportID: onboardingAdminsChatReportID,
onboardingPolicyID,
);
});

setOnboardingAdminsChatReportID();
setOnboardingPolicyID();
Expand Down
32 changes: 16 additions & 16 deletions src/pages/OnboardingWorkspaces/BaseOnboardingWorkspaces.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,13 @@ import useNetwork from '@hooks/useNetwork';
import usePermissions from '@hooks/usePermissions';
import useResponsiveLayout from '@hooks/useResponsiveLayout';
import useThemeStyles from '@hooks/useThemeStyles';
import {joinAccessiblePolicy} from '@libs/actions/Policy/Member';
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 ReportUtils from '@libs/ReportUtils';
import * as UserUtils from '@libs/UserUtils';
import * as MemberAction from '@userActions/Policy/Member';
import * as Report from '@userActions/Report';
import * as Welcome from '@userActions/Welcome';
import {getDefaultWorkspaceAvatar} from '@libs/ReportUtils';
import {isCurrentUserValidated} from '@libs/UserUtils';
import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
import ROUTES from '@src/ROUTES';
Expand All @@ -41,22 +41,22 @@ function BaseOnboardingWorkspaces({shouldUseNativeStyles, route}: BaseOnboarding

const [loginList] = useOnyx(ONYXKEYS.LOGIN_LIST);

const isValidated = UserUtils.isCurrentUserValidated(loginList);
const isValidated = isCurrentUserValidated(loginList);

const {canUseDefaultRooms} = usePermissions();
const {activeWorkspaceID} = useActiveWorkspace();

const handleJoinWorkspace = useCallback(
(policyID: string) => {
MemberAction.joinAccessiblePolicy(policyID);
Report.completeOnboarding(
CONST.ONBOARDING_CHOICES.LOOKING_AROUND,
CONST.ONBOARDING_MESSAGES[CONST.ONBOARDING_CHOICES.LOOKING_AROUND],
onboardingPersonalDetails?.firstName ?? '',
onboardingPersonalDetails?.lastName ?? '',
);
Welcome.setOnboardingAdminsChatReportID();
Welcome.setOnboardingPolicyID(policyID);
joinAccessiblePolicy(policyID);
completeOnboarding({
engagementChoice: CONST.ONBOARDING_CHOICES.LOOKING_AROUND,
onboardingMessage: CONST.ONBOARDING_MESSAGES[CONST.ONBOARDING_CHOICES.LOOKING_AROUND],
firstName: onboardingPersonalDetails?.firstName,
lastName: onboardingPersonalDetails?.lastName,
});
setOnboardingAdminsChatReportID();
setOnboardingPolicyID(policyID);

navigateAfterOnboarding(isSmallScreenWidth, canUseDefaultRooms, policyID, activeWorkspaceID);
},
Expand All @@ -83,7 +83,7 @@ function BaseOnboardingWorkspaces({shouldUseNativeStyles, route}: BaseOnboarding
icons: [
{
id: policyInfo.policyID,
source: ReportUtils.getDefaultWorkspaceAvatar(policyInfo.policyName),
source: getDefaultWorkspaceAvatar(policyInfo.policyName),
fallbackIcon: Expensicons.FallbackWorkspaceAvatar,
name: policyInfo.policyName,
type: CONST.ICON_TYPE_WORKSPACE,
Expand Down