import React, { useState } from 'react'; // Using simple Unicode/icons to avoid React type conflicts in CI build // import { FaTimes, FaSpinner } from 'react-icons/fa'; import axios from 'axios'; interface AuthModalProps { mode: 'login' | 'register'; onClose: () => void; onSwitchMode: (mode: 'login' | 'register') => void; } const AuthModal: React.FC = ({ mode, onClose, onSwitchMode }) => { const [formData, setFormData] = useState({ email: '', password: '', companyName: '', usdotNumber: '', phone: '' }); const [loading, setLoading] = useState(false); const [error, setError] = useState(''); const [success, setSuccess] = useState(''); const handleChange = (e: React.ChangeEvent) => { setFormData({ ...formData, [e.target.name]: e.target.value }); setError(''); }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); setError(''); setSuccess(''); try { const endpoint = mode === 'login' ? '/api/auth/login' : '/api/auth/register'; const base = process.env.REACT_APP_API_URL || (process.env.NODE_ENV === 'production' ? '' : 'http://localhost:5000'); const response = await axios.post(`${base}${endpoint}`, formData); if (mode === 'login') { // Store token and redirect to dashboard localStorage.setItem('token', response.data.token); localStorage.setItem('user', JSON.stringify(response.data.user)); window.location.href = '/dashboard'; } else { // Show success message setSuccess('Registration successful! Please check your email to verify your account.'); setTimeout(() => { onSwitchMode('login'); }, 3000); } } catch (err: any) { setError(err.response?.data?.error?.message || 'An error occurred. Please try again.'); } finally { setLoading(false); } }; return (
{/* Header */}

{mode === 'login' ? 'Sign In' : 'Create Account'}

{/* Form */}
{error && (
{error}
)} {success && (
{success}
)}
{mode === 'register' && (

Must be at least 8 characters

)}
{mode === 'register' && ( <>
)} {mode === 'login' && (
)}
{/* Footer */}

{mode === 'login' ? "Don't have an account? " : "Already have an account? "}

); }; export default AuthModal;