From ae2e5cb1f43a4ae7824aedaa5e4ea8fda0e366f1 Mon Sep 17 00:00:00 2001 From: commanderxgr Date: Sat, 5 Sep 2026 16:28:11 +0300 Subject: [PATCH] feat(auth): add toggle password visibility button with eye icon on login --- src/components/auth/LoginPage.jsx | 31 ++++++++++++++------ src/components/scheduler/AdminLoginModal.jsx | 14 +++++++-- 2 files changed, 34 insertions(+), 11 deletions(-) diff --git a/src/components/auth/LoginPage.jsx b/src/components/auth/LoginPage.jsx index 500c3d6..7f442f2 100644 --- a/src/components/auth/LoginPage.jsx +++ b/src/components/auth/LoginPage.jsx @@ -1,4 +1,5 @@ import { useMemo, useState } from 'react'; +import { Eye, EyeOff } from 'lucide-react'; import { authRepository } from '../../repositories'; import { createTenantAuthTicketRedirect } from '../../firebase/authBrokerService'; import { @@ -23,6 +24,7 @@ export default function LoginPage() { const returnTo = useMemo(getReturnToParam, []); const [email, setEmail] = useState(authRepository.getConfiguredAdminEmail?.() || ''); const [password, setPassword] = useState(''); + const [showPassword, setShowPassword] = useState(false); const [rememberDevice, setRememberDevice] = useState(true); const [status, setStatus] = useState('idle'); const [message, setMessage] = useState(''); @@ -174,15 +176,26 @@ export default function LoginPage() {
diff --git a/src/components/scheduler/AdminLoginModal.jsx b/src/components/scheduler/AdminLoginModal.jsx index beceb6d..25cef97 100644 --- a/src/components/scheduler/AdminLoginModal.jsx +++ b/src/components/scheduler/AdminLoginModal.jsx @@ -1,4 +1,4 @@ -import { KeyRound, LockKeyhole, Mail, X } from 'lucide-react'; +import { Eye, EyeOff, KeyRound, LockKeyhole, Mail, X } from 'lucide-react'; import { useEffect, useState } from 'react'; import { createPortal } from 'react-dom'; @@ -15,6 +15,7 @@ export default function AdminLoginModal({ email: defaultEmail, password: '', }); + const [showPassword, setShowPassword] = useState(false); const [isSubmitting, setIsSubmitting] = useState(false); const [isSendingReset, setIsSendingReset] = useState(false); const [submitError, setSubmitError] = useState(''); @@ -139,7 +140,7 @@ export default function AdminLoginModal({
setCredentials((prev) => ({ ...prev, password: event.target.value }))} placeholder="Κωδικός" @@ -147,6 +148,15 @@ export default function AdminLoginModal({ required disabled={!isFirebaseConfigured} /> +