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
7 changes: 7 additions & 0 deletions src/libs/ReportUtils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9822,6 +9822,13 @@ function prepareOnboardingOnyxData(
) {
return false;
}

// Exclude createWorkspace and viewTour tasks from #admin room, for test drive receivers,
// since these users already have them in concierge
if (introSelected?.choice === CONST.ONBOARDING_CHOICES.TEST_DRIVE_RECEIVER && ['createWorkspace', 'viewTour'].includes(task.type) && shouldPostTasksInAdminsRoom) {
return false;
}

return true;
})
.map((task, index) => {
Expand Down
8 changes: 0 additions & 8 deletions src/libs/actions/IOU.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1343,14 +1343,6 @@ function buildOnyxDataForTestDriveIOU(testDriveIOUParams: BuildOnyxDataForTestDr
},
);

successData.push({
onyxMethod: Onyx.METHOD.MERGE,
key: `${ONYXKEYS.COLLECTION.REPORT_ACTIONS}${testDriveIOUParams.chatOptimisticParams.report?.reportID}`,
value: {
[textComment.reportAction.reportActionID]: null,
},
});

return {
optimisticData,
successData,
Expand Down
16 changes: 16 additions & 0 deletions src/libs/actions/Policy/Policy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -81,6 +81,7 @@ import type {PolicySelector} from '@pages/home/sidebar/FloatingActionButtonAndPo
import * as PaymentMethods from '@userActions/PaymentMethods';
import * as PersistedRequests from '@userActions/PersistedRequests';
import {resolveEnableFeatureConflicts} from '@userActions/RequestConflictUtils';
import {buildTaskData} from '@userActions/Task';
import type {OnboardingCompanySize, OnboardingPurpose} from '@src/CONST';
import CONST from '@src/CONST';
import ONYXKEYS from '@src/ONYXKEYS';
Expand Down Expand Up @@ -2153,6 +2154,20 @@ function buildPolicyData(
failureData.push(...taskFailureData);
}

// For test drive receivers, we want to complete the createWorkspace task in concierge, instead of #admin room
if (introSelected?.choice === CONST.ONBOARDING_CHOICES.TEST_DRIVE_RECEIVER && introSelected.createWorkspace) {
const createWorkspaceTaskReport = {reportID: introSelected.createWorkspace};
const {
optimisticData: optimisticCreateWorkspaceTaskData,
successData: successCreateWorkspaceTaskData,
failureData: failureCreateWorkspaceTaskData,
} = buildTaskData(createWorkspaceTaskReport, introSelected.createWorkspace);

optimisticData.push(...optimisticCreateWorkspaceTaskData);
successData.push(...successCreateWorkspaceTaskData);
failureData.push(...failureCreateWorkspaceTaskData);
}

return {successData, optimisticData, failureData, params};
}

Expand All @@ -2179,6 +2194,7 @@ function createWorkspace(
shouldAddOnboardingTasks,
companySize,
);

API.write(WRITE_COMMANDS.CREATE_WORKSPACE, params, {optimisticData, successData, failureData});

// Publish a workspace created event if this is their first policy
Expand Down
27 changes: 17 additions & 10 deletions src/libs/actions/Task.ts
Original file line number Diff line number Diff line change
Expand Up @@ -388,16 +388,7 @@ function getOutstandingChildTask(taskReport: OnyxEntry<OnyxTypes.Report>) {
});
}

/**
* Complete a task
*/
function completeTask(taskReport: OnyxEntry<OnyxTypes.Report>, reportIDFromAction?: string): OnyxData {
const taskReportID = taskReport?.reportID ?? reportIDFromAction;

if (!taskReportID) {
return {};
}

function buildTaskData(taskReport: OnyxEntry<OnyxTypes.Report>, taskReportID: string) {
const message = `marked as complete`;
const completedTaskReportAction = ReportUtils.buildOptimisticTaskReportAction(taskReportID, CONST.REPORT.ACTIONS.TYPE.TASK_COMPLETED, message);
const parentReport = getParentReport(taskReport);
Expand Down Expand Up @@ -474,6 +465,21 @@ function completeTask(taskReport: OnyxEntry<OnyxTypes.Report>, reportIDFromActio
completedTaskReportActionID: completedTaskReportAction.reportActionID,
};

return {optimisticData, failureData, successData, parameters};
}

/**
* Complete a task
*/
function completeTask(taskReport: OnyxEntry<OnyxTypes.Report>, reportIDFromAction?: string): OnyxData {
const taskReportID = taskReport?.reportID ?? reportIDFromAction;

if (!taskReportID) {
return {};
}

const {optimisticData, successData, failureData, parameters} = buildTaskData(taskReport, taskReportID);

playSound(SOUNDS.SUCCESS);
API.write(WRITE_COMMANDS.COMPLETE_TASK, parameters, {optimisticData, successData, failureData});
return {optimisticData, successData, failureData};
Expand Down Expand Up @@ -1335,6 +1341,7 @@ export {
setShareDestinationValue,
clearOutTaskInfo,
reopenTask,
buildTaskData,
completeTask,
clearOutTaskInfoAndNavigate,
startOutCreateTaskQuickAction,
Expand Down
Loading