From d7a0ec56f52c32830a7f40d55091060d13f3387a Mon Sep 17 00:00:00 2001 From: easyai Date: Fri, 24 Jul 2026 23:27:28 +0800 Subject: [PATCH] =?UTF-8?q?feat(web):=20=E6=94=AF=E6=8C=81=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E5=AF=86=E7=A0=81=E6=98=BE=E7=A4=BA=E4=B8=8E=E9=9A=90?= =?UTF-8?q?=E8=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 原因:登录时缺少密码可见性切换,长密码输入难以核对。 影响:新增可复用 PasswordInput,在登录表单提供眼睛按钮,并补充禁用态、焦点样式和无障碍标签。 风险:密码仅在用户主动点击时于当前输入框显示,不改变提交、存储或日志行为。 验证:前端 112 项测试通过;pnpm lint 通过;@easyai-ai-gateway/web 生产构建通过。 --- apps/web/src/components/AuthPanel.tsx | 5 +-- apps/web/src/components/ui/input.test.tsx | 14 +++++++ apps/web/src/components/ui/input.tsx | 50 +++++++++++++++++++++++ apps/web/src/styles/ui.css | 42 +++++++++++++++++++ 4 files changed, 108 insertions(+), 3 deletions(-) create mode 100644 apps/web/src/components/ui/input.test.tsx diff --git a/apps/web/src/components/AuthPanel.tsx b/apps/web/src/components/AuthPanel.tsx index 1440d99..34bc373 100644 --- a/apps/web/src/components/AuthPanel.tsx +++ b/apps/web/src/components/AuthPanel.tsx @@ -1,6 +1,6 @@ import type { FormEvent } from 'react'; import { LogIn, UserPlus } from 'lucide-react'; -import { Button, Card, CardContent, CardHeader, CardTitle, Input, Label, Tabs } from './ui'; +import { Button, Card, CardContent, CardHeader, CardTitle, Input, Label, PasswordInput, Tabs } from './ui'; import type { AuthMode, LoadState, LoginForm, RegisterForm } from '../types'; const tabs = [ @@ -70,9 +70,8 @@ function LoginFormView(props: {