Changeset b67f274 for src/app/page.tsx
- Timestamp:
- 12/21/25 18:28:25 (9 months ago)
- Branches:
- master
- Children:
- 90f7842
- Parents:
- 82c9c53
- File:
-
- 1 edited
-
src/app/page.tsx (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/app/page.tsx
r82c9c53 rb67f274 11 11 } from '@fortawesome/free-solid-svg-icons'; 12 12 import { useState } from 'react'; 13 import { login } from '@/lib/auth'; 13 14 14 15 export default function LoginPage() { 15 16 const [showPassword, setShowPassword] = useState(false); 17 const [isSubmitting, setIsSubmitting] = useState(false); 18 const [errorMessage, setErrorMessage] = useState<string | null>(null); 16 19 const [formData, setFormData] = useState({ 17 username: '',20 email: '', 18 21 password: '' 19 22 }); … … 27 30 }; 28 31 29 const handleSubmit = (e: React.FormEvent) => {32 const handleSubmit = async (e: React.FormEvent) => { 30 33 e.preventDefault(); 31 // Handle login logic here 32 console.log('Login attempt:', formData); 34 setErrorMessage(null); 35 setIsSubmitting(true); 36 try { 37 await login({ email: formData.email, password: formData.password }); 38 window.location.href = '/students/profile'; 39 } catch (err) { 40 setErrorMessage(err instanceof Error ? err.message : 'Login failed.'); 41 } finally { 42 setIsSubmitting(false); 43 } 33 44 }; 34 45 … … 57 68 <div className="p-8"> 58 69 <form onSubmit={handleSubmit} className="space-y-6"> 59 {/* UsernameField */}70 {/* Email Field */} 60 71 <div> 61 <label htmlFor=" username" className="block text-sm font-medium text-gray-700 mb-2">62 Корисничко име72 <label htmlFor="email" className="block text-sm font-medium text-gray-700 mb-2"> 73 Внесете е-пошта 63 74 </label> 64 75 <div className="relative"> … … 67 78 </div> 68 79 <input 69 id=" username"70 name=" username"71 type=" text"80 id="email" 81 name="email" 82 type="email" 72 83 required 73 value={formData. username}84 value={formData.email} 74 85 onChange={handleInputChange} 75 86 className="w-full pl-10 pr-4 py-3 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-primary focus:border-primary transition-colors" 76 placeholder="Внесете корисничко име"87 placeholder="Внесете е-пошта" 77 88 /> 78 89 </div> … … 132 143 </div> 133 144 145 {errorMessage && ( 146 <div className="rounded-lg border border-red-200 bg-red-50 px-4 py-3 text-sm text-red-700"> 147 {errorMessage} 148 </div> 149 )} 150 134 151 {/* Submit Button */} 135 152 <button 136 153 type="submit" 137 className="w-full bg-primary hover:bg-blue-700 text-white font-medium py-3 px-4 rounded-lg transition-colors duration-200 flex items-center justify-center gap-2 shadow-lg hover:shadow-xl" 154 disabled={isSubmitting} 155 className="w-full bg-primary hover:bg-blue-700 disabled:opacity-60 disabled:hover:bg-primary text-white font-medium py-3 px-4 rounded-lg transition-colors duration-200 flex items-center justify-center gap-2 shadow-lg hover:shadow-xl" 138 156 > 139 157 <FontAwesomeIcon icon={faSignInAlt} className="h-4 w-4" /> 140 Најави се158 {isSubmitting ? 'Најави се...' : 'Најави се'} 141 159 </button> 142 160 </form>
Note:
See TracChangeset
for help on using the changeset viewer.
