From 4647928feac64cbeaaebac200cc3f14d06658a82 Mon Sep 17 00:00:00 2001 From: Claude Date: Mon, 3 Aug 2026 17:33:58 +0000 Subject: [PATCH] Invert password reveal eye icon The icon now shows the action the button performs rather than the current state: an open eye while the password is hidden (tap to reveal) and a crossed-out eye while it is visible (tap to hide). This matches the button label, which already used action semantics. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01NwPDpir8XPecFyXvQuvE1q --- src/screens/Login/LoginForm.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/screens/Login/LoginForm.tsx b/src/screens/Login/LoginForm.tsx index 27361219ec..0b9f489a64 100644 --- a/src/screens/Login/LoginForm.tsx +++ b/src/screens/Login/LoginForm.tsx @@ -601,7 +601,12 @@ function RevealPasswordButton({ const {t: l} = useLingui() const context = TextField.useTextFieldContext() - const Icon = !active ? EyeSlashIcon : EyeIcon + /* + * The icon shows the action the button performs, not the current state: an + * open eye when the password is hidden (tap to reveal), a crossed-out eye + * when it is visible (tap to hide). + */ + const Icon = active ? EyeSlashIcon : EyeIcon if (!hasPassword && !context.focused) return null