File tree Expand file tree Collapse file tree
frontend/client_R/src/components Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import { useState } from 'react' ;
2+ import axios from 'axios' ;
3+
4+ interface FormData {
5+ email : string ;
6+ otp : string ;
7+ }
8+
9+ const Verification = ( ) => {
10+ const [ loading , setLoading ] = useState < boolean > ( false ) ;
11+ const [ formData , setFormData ] = useState < FormData > ( {
12+ email : '' ,
13+ otp : ''
14+ } ) ;
15+ const [ message , setMessage ] = useState < string > ( '' ) ;
16+ const handleChange = ( e : React . ChangeEvent < HTMLInputElement > ) => {
17+ const { name, value } = e . target ;
18+ setFormData ( prev => ( { ...prev , [ name ] : value } ) ) ;
19+ } ;
20+
21+ const handleSubmit = async ( e : React . FormEvent ) => {
22+ e . preventDefault ( ) ;
23+ setLoading ( true ) ;
24+ setMessage ( '' ) ; // Clear previous message
25+
26+ try {
27+ const res = await axios . post ( '/verify' , formData ) ; // Replace with your actual endpoint
28+ setMessage ( res . data . message || 'Verification successful' ) ;
29+ } catch ( error : any ) {
30+ setMessage (
31+ error . response ?. data ?. message || 'Verification failed. Please try again.'
32+ ) ;
33+ } finally {
34+ setLoading ( false ) ;
35+ }
36+ } ;
37+
38+ return (
39+ < div >
40+ < form onSubmit = { handleSubmit } >
41+ < div >
42+ < label > Email:</ label >
43+ < input
44+ type = "email"
45+ name = "email"
46+ value = { formData . email }
47+ onChange = { handleChange }
48+ required
49+ />
50+ </ div >
51+ < div >
52+ < label > OTP:</ label >
53+ < input
54+ type = "text"
55+ name = "otp"
56+ value = { formData . otp }
57+ onChange = { handleChange }
58+ required
59+ />
60+ </ div >
61+ < button type = "submit" disabled = { loading } >
62+ { loading ? 'Verifying...' : 'Verify' }
63+ </ button >
64+ </ form >
65+
66+ { message && (
67+ < p style = { { marginTop : '1rem' , color : message . toLowerCase ( ) . includes ( 'fail' ) ? 'red' : 'green' } } >
68+ { message }
69+ </ p >
70+ ) }
71+ </ div >
72+ ) ;
73+ } ;
74+
75+ export default Verification ;
You can’t perform that action at this time.
0 commit comments