@@ -25,7 +25,8 @@ export const LoginPage: React.FC = () => {
2525 const [ email , setEmail ] = useState ( '' ) ;
2626 const [ password , setPassword ] = useState ( '' ) ;
2727 const [ confirmPassword , setConfirmPassword ] = useState ( '' ) ;
28- const [ username , setUsername ] = useState ( '' ) ;
28+ const [ firstName , setFirstName ] = useState ( '' ) ;
29+ const [ lastName , setLastName ] = useState ( '' ) ;
2930 const [ showPassword , setShowPassword ] = useState ( false ) ;
3031 const [ showConfirmPassword , setShowConfirmPassword ] = useState ( false ) ;
3132
@@ -84,7 +85,8 @@ export const LoginPage: React.FC = () => {
8485 setEmail ( '' ) ;
8586 setPassword ( '' ) ;
8687 setConfirmPassword ( '' ) ;
87- setUsername ( '' ) ;
88+ setFirstName ( '' ) ;
89+ setLastName ( '' ) ;
8890 setShowPassword ( false ) ;
8991 setShowConfirmPassword ( false ) ;
9092 } ;
@@ -99,13 +101,14 @@ export const LoginPage: React.FC = () => {
99101 await login ( { email, password } ) ;
100102 navigate ( from , { replace : true } ) ;
101103 } else if ( authPage === AuthPage . Signup ) {
102- await signup ( { email, password, firstName : username , lastName : '' } ) ;
104+ await signup ( { email, password, firstName, lastName } ) ;
103105 navigate ( '/confirm-registered' , { replace : true } ) ;
104106 setError ( 'Account created successfully! Please sign in.' ) ;
105107 } else if ( authPage === AuthPage . ForgotPassword ) {
106108 navigate ( '/confirm-sent-email' , { replace : true } ) ;
107109 }
108110 } catch ( err : unknown ) {
111+ console . error ( 'Auth error:' , err ) ;
109112 if ( err instanceof Error ) {
110113 setError ( err . message ) ;
111114 } else {
@@ -153,22 +156,41 @@ export const LoginPage: React.FC = () => {
153156 noValidate
154157 >
155158 { authPage === AuthPage . Signup && (
156- < div >
157- < Label
158- htmlFor = "username"
159- className = "font-semibold mb-1 text-[#404040]"
160- >
161- Username
162- </ Label >
163- < Input
164- type = "text"
165- placeholder = "Username"
166- required
167- value = { username }
168- onChange = { ( e ) => setUsername ( e . target . value ) }
169- className = "w-full py-5 focus:ring-[2.5px] focus:ring-[#007B64]"
170- id = "username"
171- />
159+ < div className = "flex gap-4" >
160+ < div className = "flex-1" >
161+ < Label
162+ htmlFor = "firstName"
163+ className = "font-semibold mb-1 text-[#404040]"
164+ >
165+ First Name
166+ </ Label >
167+ < Input
168+ type = "text"
169+ placeholder = "First Name"
170+ required
171+ value = { firstName }
172+ onChange = { ( e ) => setFirstName ( e . target . value ) }
173+ className = "w-full py-5 focus:ring-[2.5px] focus:ring-[#007B64]"
174+ id = "firstName"
175+ />
176+ </ div >
177+ < div className = "flex-1" >
178+ < Label
179+ htmlFor = "lastName"
180+ className = "font-semibold mb-1 text-[#404040]"
181+ >
182+ Last Name
183+ </ Label >
184+ < Input
185+ type = "text"
186+ placeholder = "Last Name"
187+ required
188+ value = { lastName }
189+ onChange = { ( e ) => setLastName ( e . target . value ) }
190+ className = "w-full py-5 focus:ring-[2.5px] focus:ring-[#007B64]"
191+ id = "lastName"
192+ />
193+ </ div >
172194 </ div >
173195 ) }
174196
@@ -285,6 +307,9 @@ export const LoginPage: React.FC = () => {
285307 name = "Matching"
286308 criterionMet = { passwordsMatch }
287309 />
310+ { error && (
311+ < p className = "text-sm text-[#B4444D] mt-2" > { error } </ p >
312+ ) }
288313 </ div >
289314 ) : (
290315 authPage === AuthPage . Login && (
0 commit comments