diff --git a/src/libs/actions/Task.js b/src/libs/actions/Task.js index da751e4209a8..1a9467a45c20 100644 --- a/src/libs/actions/Task.js +++ b/src/libs/actions/Task.js @@ -585,6 +585,14 @@ function isTaskCanceled(taskReport) { return taskReport.stateNum === CONST.REPORT.STATE_NUM.SUBMITTED && taskReport.statusNum === CONST.REPORT.STATUS.CLOSED; } +/** + * Closes the current open task modal and clears out the task info from the store. + */ +function dismissModalAndClearOutTaskInfo() { + Navigation.dismissModal(); + clearOutTaskInfo(); +} + export { createTaskAndNavigate, editTaskAndNavigate, @@ -602,4 +610,5 @@ export { getShareDestination, cancelTask, isTaskCanceled, + dismissModalAndClearOutTaskInfo, }; diff --git a/src/pages/tasks/NewTaskDescriptionPage.js b/src/pages/tasks/NewTaskDescriptionPage.js index 0d2c7ff7fff4..55b401ba6962 100644 --- a/src/pages/tasks/NewTaskDescriptionPage.js +++ b/src/pages/tasks/NewTaskDescriptionPage.js @@ -70,7 +70,7 @@ const NewTaskDescriptionPage = (props) => { > Navigation.dismissModal()} + onCloseButtonPress={() => TaskUtils.dismissModalAndClearOutTaskInfo()} shouldShowBackButton onBackButtonPress={() => Navigation.goBack()} /> diff --git a/src/pages/tasks/NewTaskDetailsPage.js b/src/pages/tasks/NewTaskDetailsPage.js index b390066529d9..1d2a66be87e5 100644 --- a/src/pages/tasks/NewTaskDetailsPage.js +++ b/src/pages/tasks/NewTaskDetailsPage.js @@ -1,4 +1,4 @@ -import React, {useRef} from 'react'; +import React, {useEffect, useRef, useState} from 'react'; import {View} from 'react-native'; import {withOnyx} from 'react-native-onyx'; import PropTypes from 'prop-types'; @@ -20,15 +20,29 @@ const propTypes = { /** Beta features list */ betas: PropTypes.arrayOf(PropTypes.string), + /** Task title and description data */ + task: PropTypes.shape({ + title: PropTypes.string, + description: PropTypes.string, + }), + ...withLocalizePropTypes, }; const defaultProps = { betas: [], + task: {}, }; const NewTaskPage = (props) => { const inputRef = useRef(); + const [taskTitle, setTaskTitle] = useState(props.task.title); + const [taskDescription, setTaskDescription] = useState(props.task.description || ''); + + useEffect(() => { + setTaskTitle(props.task.title); + setTaskDescription(props.task.description || ''); + }, [props.task]); /** * @param {Object} values - form input values passed by the Form component @@ -63,9 +77,9 @@ const NewTaskPage = (props) => { > Navigation.dismissModal()} + onCloseButtonPress={() => TaskUtils.dismissModalAndClearOutTaskInfo()} shouldShowBackButton - onBackButtonPress={() => Navigation.goBack()} + onBackButtonPress={() => TaskUtils.dismissModalAndClearOutTaskInfo()} />
{ ref={(el) => (inputRef.current = el)} inputID="taskTitle" label={props.translate('newTaskPage.title')} + value={taskTitle} + onValueChange={(value) => setTaskTitle(value)} /> setTaskDescription(value)} />
@@ -103,6 +120,9 @@ export default compose( betas: { key: ONYXKEYS.BETAS, }, + task: { + key: ONYXKEYS.TASK, + }, }), withLocalize, )(NewTaskPage); diff --git a/src/pages/tasks/NewTaskPage.js b/src/pages/tasks/NewTaskPage.js index d6e13218423d..2bfa898a88e9 100644 --- a/src/pages/tasks/NewTaskPage.js +++ b/src/pages/tasks/NewTaskPage.js @@ -121,7 +121,7 @@ const NewTaskPage = (props) => { Navigation.dismissModal()} + onCloseButtonPress={() => TaskUtils.dismissModalAndClearOutTaskInfo()} shouldShowBackButton onBackButtonPress={() => Navigation.goBack()} /> diff --git a/src/pages/tasks/NewTaskTitlePage.js b/src/pages/tasks/NewTaskTitlePage.js index 09d082fba080..d2764b1a09b8 100644 --- a/src/pages/tasks/NewTaskTitlePage.js +++ b/src/pages/tasks/NewTaskTitlePage.js @@ -78,7 +78,7 @@ const NewTaskTitlePage = (props) => { > Navigation.dismissModal()} + onCloseButtonPress={() => TaskUtils.dismissModalAndClearOutTaskInfo()} shouldShowBackButton onBackButtonPress={() => Navigation.goBack()} /> diff --git a/src/pages/tasks/TaskDescriptionPage.js b/src/pages/tasks/TaskDescriptionPage.js index d96682151f18..afb93a32af10 100644 --- a/src/pages/tasks/TaskDescriptionPage.js +++ b/src/pages/tasks/TaskDescriptionPage.js @@ -75,7 +75,7 @@ function TaskDescriptionPage(props) { title={props.translate('newTaskPage.task')} shouldShowBackButton onBackButtonPress={() => Navigation.goBack()} - onCloseButtonPress={() => Navigation.dismissModal(true)} + onCloseButtonPress={() => TaskUtils.dismissModalAndClearOutTaskInfo()} />
Navigation.goBack()} - onCloseButtonPress={() => Navigation.dismissModal(true)} + onCloseButtonPress={() => TaskUtils.dismissModalAndClearOutTaskInfo()} />