From a311213e3a200fe8e9a4a772f175dae818133fd6 Mon Sep 17 00:00:00 2001 From: Alexandre Segura Date: Wed, 9 Oct 2024 12:01:41 +0200 Subject: [PATCH] Send incident metadata to API. --- src/navigation/task/Complete.js | 38 ++++++++++++++++++++++---------- src/redux/Courier/taskActions.js | 2 ++ 2 files changed, 28 insertions(+), 12 deletions(-) diff --git a/src/navigation/task/Complete.js b/src/navigation/task/Complete.js index b08dbc666..3197a706d 100644 --- a/src/navigation/task/Complete.js +++ b/src/navigation/task/Complete.js @@ -123,16 +123,20 @@ const FailureReasonPicker = ({ task, httpClient, onValueChange }) => { ); }; -const FailureReasonForm = ({ data }) => { +const FailureReasonForm = ({ data, onChange }) => { const asQueryString = data.map(v => `${v.name}=${v.value}`).join('&') const initialValues = qs.parse(asQueryString); + useEffect(() => { + onChange(initialValues) + }, [data]) + return ( console.log('VALIDATE', values) } - // onSubmit={ () => console.log('SUBMIT') } + // We use validate as a change handler + validate={ values => onChange(values) } validateOnBlur={ true } validateOnChange={ true }> {({ @@ -172,7 +176,8 @@ class CompleteTask extends Component { contactName: '', isKeyboardVisible: false, validateTaskAfterReport: false, - failureReasonFormData: [], + failureReasonMetadata: [], + failureReasonMetadataToSend: [], }; } @@ -253,12 +258,13 @@ class CompleteTask extends Component { reportIncident() { const task = this.props.route.params?.task; - const { notes, failureReason } = this.state; + const { notes, failureReason, failureReasonMetadataToSend } = this.state; this.props.reportIncident( task, notes, failureReason, + failureReasonMetadataToSend, () => { if (this.state.validateTaskAfterReport) { this.markTaskDone(); @@ -430,16 +436,24 @@ class CompleteTask extends Component { task={task} httpClient={this.props.httpClient} onValueChange={(code, obj) => { - if (obj && obj.form_data) { - this.setState({ failureReasonFormData: obj.form_data }) + if (obj && obj.metadata) { + this.setState({ + failureReasonMetadata: obj.metadata, + failureReasonMetadataToSend: [] + }) } else { - this.setState({ failureReasonFormData: [] }) + this.setState({ + failureReasonMetadata: [], + failureReasonMetadataToSend: [] + }) } this.setState({ failureReason: code }) }} /> - { (Array.isArray(this.state.failureReasonFormData) && this.state.failureReasonFormData.length > 0) ? - : null } + { (Array.isArray(this.state.failureReasonMetadata) && this.state.failureReasonMetadata.length > 0) ? + console.log('METADATA changed', metadata) } /> : null } )} @@ -640,9 +654,9 @@ function mapDispatchToProps(dispatch) { dispatch(markTaskDone(task, notes, onSuccess, contactName)), markTasksDone: (tasks, notes, onSuccess, contactName) => dispatch(markTasksDone(tasks, notes, onSuccess, contactName)), - reportIncident: (task, notes, failureReasonCode, onSuccess) => + reportIncident: (task, notes, failureReasonCode, failureReasonMetadata, onSuccess) => dispatch( - reportIncident(task, notes, failureReasonCode, onSuccess), + reportIncident(task, notes, failureReasonCode, failureReasonMetadata, onSuccess), ), deleteSignatureAt: index => dispatch(deleteSignatureAt(index)), deletePictureAt: index => dispatch(deletePictureAt(index)), diff --git a/src/redux/Courier/taskActions.js b/src/redux/Courier/taskActions.js index e6e45d1f2..3a2152c35 100644 --- a/src/redux/Courier/taskActions.js +++ b/src/redux/Courier/taskActions.js @@ -268,6 +268,7 @@ export function reportIncident( task, description = null, failureReasonCode = null, + failureReasonMetadata = [], onSuccess, ) { return function (dispatch, getState) { @@ -277,6 +278,7 @@ export function reportIncident( let payload = { description, failureReasonCode, + metadata: failureReasonMetadata, task: task['@id'] };