diff --git a/inventory/src/pages/Login.tsx b/inventory/src/pages/Login.tsx index cc588ab..fe8c9f0 100644 --- a/inventory/src/pages/Login.tsx +++ b/inventory/src/pages/Login.tsx @@ -4,24 +4,26 @@ import { Button } from '@/components/ui/button'; import { Card, CardContent, - CardDescription, - CardFooter, CardHeader, CardTitle, } from '@/components/ui/card'; import { Input } from '@/components/ui/input'; -import { Label } from '@/components/ui/label'; import { toast } from 'sonner'; import config from '../config'; +import { Loader2, Box } from 'lucide-react'; const isDev = process.env.NODE_ENV === 'development'; export function Login() { const [username, setUsername] = useState(''); const [password, setPassword] = useState(''); + const [isLoading, setIsLoading] = useState(false); const navigate = useNavigate(); - const handleLogin = async () => { + const handleLogin = async (e: React.FormEvent) => { + e.preventDefault(); + setIsLoading(true); + try { const url = isDev ? "/auth-inv/login" : `${config.authUrl}/login`; console.log('Making login request:', { @@ -56,6 +58,7 @@ export function Login() { sessionStorage.setItem('token', data.token); sessionStorage.setItem('isLoggedIn', 'true'); + toast.success('Successfully logged in'); navigate('/'); } catch (error) { console.error('Login error:', error); @@ -64,45 +67,64 @@ export function Login() { ? error.message : 'An unexpected error occurred', ); + } finally { + setIsLoading(false); } }; return ( -
- - - Login - Enter your credentials to access the inventory. - - -
-
-
- - setUsername(e.target.value)} - /> +
+
+
+ + Inventory Manager +
+
+
+
+ + +
+
-
- - setPassword(e.target.value)} - /> -
-
- - - - - - + Log in to continue + + +
+
+
+ setUsername(e.target.value)} + disabled={isLoading} + className="w-full" + /> +
+
+ setPassword(e.target.value)} + disabled={isLoading} + className="w-full" + /> +
+ +
+
+
+ +
+
); -} \ No newline at end of file +} \ No newline at end of file