@@ -169,7 +169,7 @@ const ScoreForm: React.FC<ScoreFormProps> = ({ onCancel, additionalData, setSide
169169 'Content-Type' : 'multipart/form-data'
170170 } ,
171171 validateStatus : function ( status ) {
172- return status < 500 ; // Don't throw for status codes less than 500
172+ return status < 500 || status == 400 ; // Don't throw for status codes less than 500 or error 400
173173 }
174174 }
175175 ) ;
@@ -192,12 +192,14 @@ const ScoreForm: React.FC<ScoreFormProps> = ({ onCancel, additionalData, setSide
192192 else setErrorMessage ( response . data . message )
193193 setIsErrorModalOpen ( true ) ;
194194 }
195+ setIsSavingData ( false ) ;
195196 } else {
196197 setProceedToSavingData ( false ) ;
198+ setIsSavingData ( false ) ;
197199 }
198200 }
199201 } catch ( exception ) {
200- setIsSavingData ( false )
202+ setIsSavingData ( false ) ;
201203 setErrorMessage ( exception . message + ( exception . response ?. data ?. message ? ": " + exception . response . data . message : "" ) ) ;
202204 setIsErrorModalOpen ( true ) ;
203205 }
@@ -275,7 +277,7 @@ const ScoreForm: React.FC<ScoreFormProps> = ({ onCancel, additionalData, setSide
275277 const [ createSiteOrObservation , setCreateNewSiteOrObservation ] = useState ( true ) ;
276278 const [ refetchImages , setRefetchImages ] = useState ( false ) ;
277279
278- const uploadImages = async ( pestImages ) => {
280+ const uploadImages = async ( pestImages , callback ) => {
279281 setIsUploadingImage ( true )
280282
281283 for ( const key in pestImages ) {
@@ -293,9 +295,6 @@ const ScoreForm: React.FC<ScoreFormProps> = ({ onCancel, additionalData, setSide
293295 }
294296 }
295297
296- const storedObservationId = localStorage . getItem ( 'observationId' ) || 0 ;
297- const storedSiteId = localStorage . getItem ( 'siteId' ) || 0 ;
298-
299298 data . append ( 'observationId' , JSON . stringify ( observationId ) ) ;
300299
301300 if ( typeof additionalData . selectedSite !== 'undefined' && additionalData . selectedSite !== null && additionalData . selectedSite !== "" ) {
@@ -324,23 +323,46 @@ const ScoreForm: React.FC<ScoreFormProps> = ({ onCancel, additionalData, setSide
324323 {
325324 headers : {
326325 'Content-Type' : 'multipart/form-data'
326+ } ,
327+ validateStatus : function ( status ) {
328+ return status < 500 || status == 400 ; // Don't throw for status codes less than 500 or error 400
327329 }
328330 }
329331 ) ;
330332
331- if ( response . status == 200 ) {
333+ if ( response . status == 201 ) {
332334 setIsUploadingImage ( false )
333335 setObservationId ( response . data . observation_id )
334336 setSiteId ( response . data . site_id )
335- setPestImages ( { } )
336337 setCreateNewSiteOrObservation ( false )
337338 localStorage . setItem ( 'observationId' , JSON . stringify ( response . data . observation_id ) ) ;
338339 localStorage . setItem ( 'siteId' , JSON . stringify ( response . data . site_id ) ) ;
339340 setRefetchImages ( true )
341+ console . log ( 'call callback' )
342+ callback ( )
343+ } else {
344+ if ( response . data . status . includes ( 'error' ) ) {
345+ if ( "Site name already exists" === response . data . message ) {
346+ setIsCloseSiteDialogOpen ( true ) ;
347+ } else {
348+ if ( response . data . message === "" )
349+ setErrorMessage ( "Something unexpectedly went wrong, please try again. If the issue should persist ,contact the system administrator via the contact us form describing the problem you're facing." ) ;
350+ else setErrorMessage ( response . data . message )
351+ setIsErrorModalOpen ( true ) ;
352+ }
353+ } else {
354+ setProceedToSavingData ( false ) ;
355+ }
356+ setIsSavingData ( false ) ;
357+ setIsUploadingImage ( false ) ;
340358 }
341359 } catch ( exception ) {
342- console . log ( exception . message ) ;
360+ setIsSavingData ( false ) ;
361+ setIsUploadingImage ( false ) ;
362+ setErrorMessage ( exception . message + ( exception . response ?. data ?. message ? ": " + exception . response . data . message : "" ) ) ;
363+ setIsErrorModalOpen ( true ) ;
343364 }
365+ setPestImages ( { } ) ;
344366 }
345367 }
346368 }
@@ -552,17 +574,19 @@ const ScoreForm: React.FC<ScoreFormProps> = ({ onCancel, additionalData, setSide
552574 onSubmit = {
553575 files => {
554576 pestImages [ props . id ] = files
555- setPestImages ( { ...pestImages } )
556577 setOpenImagePestId ( 0 )
557- setIsAddMore ( false )
558- const updatedButtonStates = buttonStates . map ( buttonState => {
559- if ( buttonState . id === props . id ) {
560- return { ...buttonState , showManageImages : ! buttonState . showManageImages } ;
561- }
562- return buttonState ;
563- } ) ;
564- setButtonStates ( updatedButtonStates ) ;
565- uploadImages ( pestImages )
578+ const callback = ( ) => {
579+ const updatedButtonStates = buttonStates . map ( buttonState => {
580+ if ( buttonState . id === props . id ) {
581+ return { ...buttonState , showManageImages : ! buttonState . showManageImages } ;
582+ }
583+ return buttonState ;
584+ } ) ;
585+ setButtonStates ( updatedButtonStates ) ;
586+ setPestImages ( { ...pestImages } )
587+ setIsAddMore ( false )
588+ }
589+ uploadImages ( pestImages , callback )
566590 }
567591 } />
568592 </ >
@@ -596,17 +620,19 @@ const ScoreForm: React.FC<ScoreFormProps> = ({ onCancel, additionalData, setSide
596620 onClose = { closeUploadModal }
597621 onSubmit = { files => {
598622 pestImages [ props . id ] = files ;
599- setPestImages ( { ...pestImages } ) ;
600623 setOpenImagePestId ( 0 ) ;
601- setIsAddMore ( false ) ;
602- setManageImagesModalData ( {
603- 'groups' : props . name ,
604- 'sensetivityScore' : props . sensitivity_score ,
605- 'id' : props . id ,
606- 'images' : pestImages [ props . id ] ,
607- 'saved_group_prediction' : { }
608- } ) ;
609- uploadImages ( pestImages ) ;
624+ const callback = ( ) => {
625+ setPestImages ( { ...pestImages } ) ;
626+ setIsAddMore ( false ) ;
627+ setManageImagesModalData ( {
628+ 'groups' : props . name ,
629+ 'sensetivityScore' : props . sensitivity_score ,
630+ 'id' : props . id ,
631+ 'images' : pestImages [ props . id ] ,
632+ 'saved_group_prediction' : { }
633+ } ) ;
634+ }
635+ uploadImages ( pestImages , callback ) ;
610636 } }
611637 />
612638 </ >
0 commit comments