@@ -20,7 +20,6 @@ import {
2020 EnableSectionAction ,
2121 ExecuteExternalUploadAction ,
2222 ExecuteExternalUploadErrorAction ,
23- ExecuteExternalUploadSuccessAction ,
2423 InertSectionErrorsAction ,
2524 InitSectionAction ,
2625 InitSubmissionFormAction ,
@@ -113,10 +112,6 @@ export interface SubmissionObjectEntry {
113112 */
114113 externalUploadPending ?: boolean ;
115114
116- /**
117- * Errors from external upload
118- */
119- externalUploadErrors ?: SubmissionObjectError [ ] ;
120115 /**
121116 * A boolean representing if a submission deposit operation is pending
122117 */
@@ -302,11 +297,11 @@ export function submissionObjectReducer(state = initialState, action: Submission
302297 }
303298
304299 case SubmissionObjectActionTypes . EXECUTE_EXTERNAL_UPLOAD_ERROR : {
305- return endExternalUploadExecution ( state , action as ExecuteExternalUploadErrorAction ) ;
300+ return updateExternalUploadState ( state , action . payload . submissionId , action . payload . sectionId , ( action as ExecuteExternalUploadErrorAction ) . payload . errors ) ;
306301 }
307302
308303 case SubmissionObjectActionTypes . EXECUTE_EXTERNAL_UPLOAD_SUCCESS : {
309- return updateSubmissionFromExternalUploadEvent ( state , action as ExecuteExternalUploadSuccessAction ) ;
304+ return updateExternalUploadState ( state , action . payload . submissionId , action . payload . sectionId , [ ] ) ;
310305 }
311306
312307 default : {
@@ -416,7 +411,6 @@ function initSubmission(state: SubmissionObjectState, action: InitSubmissionForm
416411 savePending : false ,
417412 saveDecisionPending : false ,
418413 externalUploadPending : false ,
419- externalUploadErrors : [ ] ,
420414 depositPending : false ,
421415 metadataSecurityConfiguration : action . payload . metadataSecurityConfiguration ,
422416 isDiscarding : false
@@ -1116,7 +1110,6 @@ function startExternalUploadExecution(state: SubmissionObjectState, action: Exec
11161110 return Object . assign ( { } , state , {
11171111 [ action . payload . submissionId ] : Object . assign ( { } , state [ action . payload . submissionId ] , {
11181112 externalUploadPending : true ,
1119- externalUploadErrors : [ ] ,
11201113 } )
11211114 } ) ;
11221115 } else {
@@ -1125,54 +1118,35 @@ function startExternalUploadExecution(state: SubmissionObjectState, action: Exec
11251118}
11261119
11271120/**
1128- * Set external upload flag to false
1121+ * Update external upload state
11291122 *
11301123 * @param state
11311124 * the current state
1132- * @param action
1133- * a SetDuplicateDecisionAction
1125+ * @param submissionId
1126+ * the submission's ID
1127+ * @param sectionId
1128+ * the section's ID
1129+ * @param errors
1130+ * the section's ID
11341131 * @return SubmissionObjectState
11351132 * the new state, with the decision flag changed.
11361133 */
1137- function endExternalUploadExecution ( state : SubmissionObjectState , action : ExecuteExternalUploadErrorAction ) : SubmissionObjectState {
1138- if ( hasValue ( state [ action . payload . submissionId ] ) ) {
1134+ function updateExternalUploadState ( state : SubmissionObjectState , submissionId : string , sectionId : string , errors : SubmissionObjectError [ ] ) : SubmissionObjectState {
1135+ if ( isNotEmpty ( state [ submissionId ] )
1136+ && isNotEmpty ( state [ submissionId ] . sections [ sectionId ] ) ) {
11391137 return Object . assign ( { } , state , {
1140- [ action . payload . submissionId ] : Object . assign ( { } , state [ action . payload . submissionId ] , {
1138+ [ submissionId ] : Object . assign ( { } , state [ submissionId ] , {
1139+ sections : Object . assign ( { } , state [ submissionId ] . sections , {
1140+ [ sectionId ] : Object . assign ( { } , state [ submissionId ] . sections [ sectionId ] , {
1141+ enabled : true ,
1142+ errorsToShow : errors ,
1143+ serverValidationErrors : errors ,
1144+ } )
1145+ } ) ,
11411146 externalUploadPending : false ,
1142- externalUploadErrors : action . payload . errors
11431147 } )
11441148 } ) ;
11451149 } else {
11461150 return state ;
11471151 }
11481152}
1149-
1150- /**
1151- * Update submission object in store form external update response
1152- *
1153- * @param state
1154- * @param action
1155- */
1156-
1157- function updateSubmissionFromExternalUploadEvent ( state : SubmissionObjectState , action : ExecuteExternalUploadSuccessAction ) {
1158- const sectionsData = action . payload . sectionsObject ;
1159-
1160- let currentSection = { } ;
1161- const currentSectionId = action . payload . sectionId ;
1162- currentSection [ currentSectionId ] = state [ action . payload . submissionId ] . sections [ currentSectionId ] ;
1163-
1164- if ( hasValue ( sectionsData [ action . payload . sectionId ] ) ) {
1165- return Object . assign ( { } , state , {
1166- [ action . payload . submissionId ] : Object . assign ( { } , state [ action . payload . submissionId ] , {
1167- sections : Object . assign ( { } , sectionsData , currentSection ) ,
1168- externalUploadPending : false
1169- } )
1170- } ) ;
1171- } else {
1172- return Object . assign ( { } , state , {
1173- [ action . payload . submissionId ] : Object . assign ( { } , state [ action . payload . submissionId ] , {
1174- externalUploadPending : false
1175- } )
1176- } ) ;
1177- }
1178- }
0 commit comments