import React, { useState, useEffect } from 'react'; import { Eye, EyeOff, LogIn } from 'lucide-react'; const AnimatedSignIn: React.FC = () => { const [theme, setTheme] = useState<'light' | 'dark'>('light'); const [showPassword, setShowPassword] = useState(false); const [email, setEmail] = useState(''); const [password, setPassword] = useState(''); const [isLoading, setIsLoading] = useState(false); const [mounted, setMounted] = useState(false); // Animation states const [formVisible, setFormVisible] = useState(false); useEffect(() => { setMounted(true); setTimeout(() => setFormVisible(true), 300); }, []); const toggleTheme = () => { setTheme(theme === 'light' ? 'dark' : 'light'); }; const handleSignIn = (e: React.FormEvent) => { e.preventDefault(); setIsLoading(true); // Simulate API call setTimeout(() => { console.log('Sign in attempt with:', { email, password }); setIsLoading(false); }, 1500); }; // Only show the component once mounted to avoid hydration issues if (!mounted) return null; return (
of recruiters say entry-level positions are the hardest to fill.
of hiring managers admit attracting the right job candidates is their greatest challenge.
Don't have an account? Sign up
Welcome to Jobsly, please enter your login details below to using the app.