feat: add Remember Me checkbox with 15-day auto-logout

This commit is contained in:
nmemmert committed 2026-01-16 09:00:06 -05:00
1 parent 52fd7e7c00
commit a3bdb11ad7
2 files changed
+41

No files matched your search

+21
View File
@@ -8,6 +8,7 @@ export default function Login() {
const [password, setPassword] = useState('');
const [confirmPassword, setConfirmPassword] = useState('');
const [isSignup, setIsSignup] = useState(false);
const [rememberMe, setRememberMe] = useState(false);
const [error, setError] = useState('');
const [loading, setLoading] = useState(false);
const { login, signup } = useAuth();
@@ -31,6 +32,12 @@ export default function Login() {
} else {
try {
await login(email, password);
// Store remember me timestamp if checked
if (rememberMe) {
localStorage.setItem('rememberMeTimestamp', Date.now().toString());
} else {
localStorage.removeItem('rememberMeTimestamp');
}
} catch (err: unknown) {
setError(err instanceof Error ? err.message : 'An error occurred');
}
@@ -90,6 +97,20 @@ export default function Login() {
/>
</div>
)}
{!isSignup && (
<div className="flex items-center">
<input
type="checkbox"
id="rememberMe"
checked={rememberMe}
onChange={(e) => setRememberMe(e.target.checked)}
className="w-4 h-4 rounded border-gray-600 bg-gray-700 text-blue-600 focus:ring-2 focus:ring-blue-500 cursor-pointer"
/>
<label htmlFor="rememberMe" className="ml-2 text-sm text-gray-300 cursor-pointer">
Remember me for 15 days
</label>
</div>
)}
<button
type="submit"
disabled={loading}