diff options
Diffstat (limited to 'frontend/src/app/(auth)')
-rw-r--r-- | frontend/src/app/(auth)/login/page.tsx | 14 | ||||
-rw-r--r-- | frontend/src/app/(auth)/signup/page.tsx | 16 |
2 files changed, 22 insertions, 8 deletions
diff --git a/frontend/src/app/(auth)/login/page.tsx b/frontend/src/app/(auth)/login/page.tsx index 7460b8a..23cdd24 100644 --- a/frontend/src/app/(auth)/login/page.tsx +++ b/frontend/src/app/(auth)/login/page.tsx @@ -6,13 +6,14 @@ import Link from 'next/link'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; -import { authApi } from '@/lib/api'; +import { useAuth } from '@/components/shared/AuthContext'; import { useNotification } from '@/components/shared/NotificationContext'; export default function LoginPage() { const router = useRouter(); const searchParams = useSearchParams(); const { showNotification } = useNotification(); + const { login, isAuthenticated } = useAuth(); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [error, setError] = useState(''); @@ -23,7 +24,12 @@ export default function LoginPage() { if (searchParams.get('signup') === 'success') { showNotification('success', 'Account created successfully! Please log in.'); } - }, [searchParams, showNotification]); + + // Redirect if already authenticated + if (isAuthenticated) { + router.push('/dashboard'); + } + }, [searchParams, showNotification, isAuthenticated, router]); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); @@ -31,8 +37,8 @@ export default function LoginPage() { setIsLoading(true); try { - await authApi.login(email, password); - showNotification('success', 'Logged in successfully!'); + const response = await login(email, password); + showNotification('success', `Welcome back, ${response?.user?.Name || 'user'}! You've been successfully logged in.`); router.push('/dashboard'); } catch (err: any) { setError(err.message || 'Login failed'); diff --git a/frontend/src/app/(auth)/signup/page.tsx b/frontend/src/app/(auth)/signup/page.tsx index af25031..cd9daab 100644 --- a/frontend/src/app/(auth)/signup/page.tsx +++ b/frontend/src/app/(auth)/signup/page.tsx @@ -1,17 +1,18 @@ 'use client'; -import { useState } from 'react'; +import { useState, useEffect } from 'react'; import { useRouter } from 'next/navigation'; import Link from 'next/link'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; -import { authApi } from '@/lib/api'; +import { useAuth } from '@/components/shared/AuthContext'; import { useNotification } from '@/components/shared/NotificationContext'; export default function SignupPage() { const router = useRouter(); const { showNotification } = useNotification(); + const { signup, isAuthenticated } = useAuth(); const [name, setName] = useState(''); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); @@ -19,6 +20,13 @@ export default function SignupPage() { const [error, setError] = useState(''); const [isLoading, setIsLoading] = useState(false); + useEffect(() => { + // Redirect if already authenticated + if (isAuthenticated) { + router.push('/dashboard'); + } + }, [isAuthenticated, router]); + const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setError(''); @@ -32,9 +40,9 @@ export default function SignupPage() { setIsLoading(true); try { - await authApi.signup(name, email, password); + await signup(name, email, password); // Show success notification - showNotification('success', `Your email ${email} has been successfully registered!`); + showNotification('success', `Welcome to Finance Management, ${name}! Your account has been successfully created.`); // Redirect to login after successful signup with a slight delay to see the notification setTimeout(() => { router.push('/login?signup=success'); |