@@ -7,7 +7,6 @@ import axios from 'axios';
77import UpdateForm from './UpdateForm' ;
88import SubmitForm from './SubmitForm' ;
99
10-
1110// context
1211import AppContext from '../../context/AppContext' ;
1312
@@ -28,9 +27,6 @@ import {
2827 getRoute ,
2928} from './utils/Utils' ;
3029
31-
32- let scrollTimeout ;
33-
3430function GiftAid ( props ) {
3531
3632 // initialise and get props from context
@@ -99,7 +95,7 @@ function GiftAid(props) {
9995 * Handle validity state on component update
10096 */
10197 useEffect ( ( ) => {
102- // if validation fails, scroll to error
98+ // Update validation accordingly on update
10399 if ( ( formValidityState . showErrorMessages && ! formValidityState . formValidity
104100 && formValidityState . validating ) || formValidityState . urlTransactionId . valid === false ) {
105101 // update validation state
@@ -110,27 +106,12 @@ function GiftAid(props) {
110106 }
111107 } , [ ] ) ;
112108
113- /**
114- * Handle scroll to error on component update
115- */
116- useEffect ( ( ) => {
117- scrollTimeout = setTimeout ( ( ) => {
118- scrollToError ( formValidityState ) ;
119- } , 500 ) ;
120- return ( ) => {
121- // clear timeout on component unmount
122- clearTimeout ( scrollTimeout ) ;
123- }
124- } ) ;
125-
126-
127109 /**
128110 * Updates validation state for form fields
129111 * @param childState
130112 * @param name
131113 */
132114 const setFieldValidity = ( childState , name ) => {
133-
134115 const prevStateField = fieldValidation [ name ] ;
135116 const fieldUndefined = prevStateField === undefined ;
136117 const valueUndefined = typeof prevStateField !== 'undefined' && prevStateField . value === undefined ;
@@ -202,6 +183,10 @@ function GiftAid(props) {
202183 pathname : pathParams . sorryPath , // redirect to failure page
203184 } ) ;
204185 } ) ;
186+ } else {
187+ setTimeout ( ( ) => {
188+ scrollToError ( formValidityState ) ;
189+ } , 500 ) ;
205190 }
206191 return null ;
207192 } ;
0 commit comments