This commit is contained in:
@@ -5,14 +5,18 @@ import { Button } from '@/components/ui/button';
|
|||||||
import { Input } from '@/components/ui/input';
|
import { Input } from '@/components/ui/input';
|
||||||
import { Card, CardHeader, CardTitle, CardContent } from '@/components/ui/card';
|
import { Card, CardHeader, CardTitle, CardContent } from '@/components/ui/card';
|
||||||
import { Label } from '@/components/ui/label';
|
import { Label } from '@/components/ui/label';
|
||||||
import { useAuth } from '@/context/AuthContext'; // Assuming useAuth provides authAwareFetch if needed for registration
|
import { useAuth } from '@/context/AuthContext';
|
||||||
|
// You'll need to import authAwareFetch directly or ensure your useAuth hook provides it for registration if not handling it internally.
|
||||||
|
// For this example, we'll assume direct import as it's a separate utility.
|
||||||
|
import { authAwareFetch } from '@/utils/AuthAwareFetch'; // Import authAwareFetch
|
||||||
|
|
||||||
|
|
||||||
const LoginPage: React.FC = () => {
|
const LoginPage: React.FC = () => {
|
||||||
const [username, setUsername] = useState<string>('');
|
const [username, setUsername] = useState<string>('');
|
||||||
const [password, setPassword] = useState<string>('');
|
const [password, setPassword] = useState<string>('');
|
||||||
const [error, setError] = useState<string>('');
|
const [error, setError] = useState<string>('');
|
||||||
const [isRegistering, setIsRegistering] = useState<boolean>(false); // New state for registration mode
|
const [isRegistering, setIsRegistering] = useState<boolean>(false);
|
||||||
const { login } = useAuth();
|
const { login, logout } = useAuth(); // Destructure logout from useAuth to pass it to authAwareFetch
|
||||||
|
|
||||||
const handleSubmit = async (e: React.FormEvent): Promise<void> => {
|
const handleSubmit = async (e: React.FormEvent): Promise<void> => {
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
@@ -30,18 +34,20 @@ const LoginPage: React.FC = () => {
|
|||||||
|
|
||||||
const handleRegister = async (): Promise<void> => {
|
const handleRegister = async (): Promise<void> => {
|
||||||
try {
|
try {
|
||||||
// Assuming you have access to a fetch-like function or authAwareFetch from your context
|
const response = await authAwareFetch(
|
||||||
// If not, you might need to import a standard fetch or define it.
|
'/auth/register_user', // The registration endpoint
|
||||||
const response = await fetch('/auth/register_user', {
|
{
|
||||||
method: 'POST',
|
method: 'POST',
|
||||||
headers: {
|
headers: {
|
||||||
'Content-Type': 'application/json',
|
'Content-Type': 'application/json',
|
||||||
|
},
|
||||||
|
body: JSON.stringify({ username, password }),
|
||||||
|
isLoginAttempt: true, // Mark as login attempt to bypass 401 handling for expected responses
|
||||||
},
|
},
|
||||||
body: JSON.stringify({ username, password }),
|
logout // Pass the logout function from AuthContext
|
||||||
});
|
);
|
||||||
|
|
||||||
if (response.ok) {
|
if (response.ok) {
|
||||||
// Registration successful, maybe log them in automatically or show a success message
|
|
||||||
alert('Registration successful! You can now log in.');
|
alert('Registration successful! You can now log in.');
|
||||||
setIsRegistering(false); // Switch back to login form
|
setIsRegistering(false); // Switch back to login form
|
||||||
setUsername('');
|
setUsername('');
|
||||||
|
|||||||
Reference in New Issue
Block a user