@@ -11,26 +11,40 @@ export default () => {
1111 const [ token , setToken ] = useState ( false ) ;
1212 const [ executing , setExecuting ] = useState ( false ) ;
1313 const [ verified , setVerified ] = useState ( false ) ;
14+ const [ rcError , setRcError ] = useState ( false ) ;
1415
1516 const rcRef = useRef ( null ) ;
1617
1718 useEffect ( ( ) => {
18- if ( loaded ) {
19+ console . log ( `Effect: loaded has changed to ${ loaded } ` ) ;
20+ if ( loaded && ! verified ) {
21+ console . log (
22+ `Effect: loaded = ${ loaded } and verified = ${ verified } : executing...`
23+ ) ;
1924 rcRef . current . execute ( ) ;
2025 setExecuting ( true ) ;
2126 }
22- } , [ loaded ] ) ;
27+ } , [ loaded , verified ] ) ;
28+
29+ const onError = ( ) => {
30+ console . log ( "error..." ) ;
31+ setRcError ( true ) ;
32+ } ;
2333
24- const onExpire = ( ) => {
34+ const onExpire = async ( ) => {
35+ console . log ( "expired..." ) ;
36+ console . log ( "resetting..." ) ;
37+ await rcRef . current . reset ( ) ;
2538 setVerified ( false ) ;
26- rcRef . current . reset ( ) ;
27- rcRef . current . execute ( ) ;
2839 } ;
40+
2941 const onLoad = ( ) => {
42+ console . log ( "loaded..." ) ;
3043 setLoaded ( true ) ;
3144 } ;
3245
3346 const onVerify = token => {
47+ console . log ( "verified..." ) ;
3448 setToken ( token ) ;
3549 setVerified ( true ) ;
3650 setExecuting ( false ) ;
@@ -74,6 +88,10 @@ export default () => {
7488 if ( ! verified ) {
7589 onExpire ( ) ;
7690 }
91+ if ( rcError ) {
92+ onExpire ( ) ;
93+ setRcError ( false ) ;
94+ }
7795 if ( resetForm ) {
7896 setMsgSent ( false ) ;
7997 setErrMsg ( false ) ;
@@ -178,13 +196,15 @@ export default () => {
178196 ref = { rcRef }
179197 sitekey = "6Le_laEUAAAAACRNoby3_NLejhu0lCqb4_WeSotQ"
180198 data-netlify-recaptcha = "true"
199+ onError = { onError }
181200 onExpire = { onExpire }
182201 onVerify = { onVerify }
183202 onLoad = { onLoad }
184203 size = "invisible"
185204 />
186205 < div className = "m-2 col-form-label col-form-label-lg" >
187206 < span className = "mr-1" > ReCaptcha status:</ span >
207+ < br className = "d-block d-sm-none mt-1" />
188208 < span
189209 className = { `badge badge-${
190210 loaded ? "success" : "primary"
@@ -199,7 +219,15 @@ export default () => {
199219 >
200220 verified
201221 </ span >
202- { ! verified && (
222+ { executing && (
223+ < span className = { `badge badge-primary mx-2 p-2` } >
224+ executing
225+ </ span >
226+ ) }
227+ { rcError && (
228+ < span className = { `badge badge-primary mx-2 p-2` } > error</ span >
229+ ) }
230+ { ( rcError || ! verified ) && (
203231 < button
204232 className = "btn btn-link text-dark"
205233 onClick = { ( ) => resetEverything ( ) }
0 commit comments