diff --git a/src/libs/actions/Task.js b/src/libs/actions/Task.js index d2ee502e5659..ee33161558f6 100644 --- a/src/libs/actions/Task.js +++ b/src/libs/actions/Task.js @@ -187,8 +187,6 @@ function createTaskAndNavigate(parentReportID, title, description, assignee, ass {optimisticData, successData, failureData}, ); - clearOutTaskInfo(); - Navigation.dismissModal(optimisticTaskReport.reportID); } diff --git a/src/pages/tasks/NewTaskPage.js b/src/pages/tasks/NewTaskPage.js index 01a9e2e94dc1..3e9cbb4dfdeb 100644 --- a/src/pages/tasks/NewTaskPage.js +++ b/src/pages/tasks/NewTaskPage.js @@ -68,6 +68,7 @@ function NewTaskPage(props) { const [shareDestination, setShareDestination] = React.useState({}); const [errorMessage, setErrorMessage] = React.useState(''); const [parentReport, setParentReport] = React.useState({}); + const shouldClearOutTaskInfoOnUnmount = React.useRef(false); const isAllowedToCreateTask = useMemo(() => _.isEmpty(parentReport) || ReportUtils.isAllowedToComment(parentReport), [parentReport]); @@ -101,6 +102,16 @@ function NewTaskPage(props) { } }, [props]); + useEffect( + () => () => { + if (!shouldClearOutTaskInfoOnUnmount.current) { + return; + } + Task.clearOutTaskInfo(); + }, + [], + ); + // On submit, we want to call the createTask function and wait to validate // the response function onSubmit() { @@ -119,6 +130,7 @@ function NewTaskPage(props) { return; } + shouldClearOutTaskInfoOnUnmount.current = true; Task.createTaskAndNavigate(parentReport.reportID, props.task.title, props.task.description, props.task.assignee, props.task.assigneeAccountID); }