From a36a12c2bc4a5348c7eb7b890608822c448b62c4 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期一, 10 二月 2025 10:12:22 +0800
Subject: [PATCH] #

---
 rsf-admin/src/page/login/Login.jsx |   38 +++++++++++++++++++++++++++++---------
 1 files changed, 29 insertions(+), 9 deletions(-)

diff --git a/rsf-admin/src/page/login/Login.jsx b/rsf-admin/src/page/login/Login.jsx
index aa5dcf4..0eedaad 100644
--- a/rsf-admin/src/page/login/Login.jsx
+++ b/rsf-admin/src/page/login/Login.jsx
@@ -7,15 +7,19 @@
     Button,
     TextField,
     Stack,
-    Autocomplete
+    Autocomplete,
+    InputAdornment,
+    IconButton,
 } from '@mui/material';
 import {
     useTranslate,
     useLogin,
     useNotify,
 } from 'react-admin';
-import { useForm, Controller } from 'react-hook-form';
+import { useForm, Controller, useWatch, FormProvider, useFormContext } from "react-hook-form";
 import ProviderChoices from "./ProviderChoices";
+import Visibility from '@mui/icons-material/Visibility';
+import VisibilityOff from '@mui/icons-material/VisibilityOff';
 
 const Login = (props) => {
     const translate = useTranslate();
@@ -24,9 +28,10 @@
     const location = useLocation();
     const { tenantList } = props;
 
-    const { control, watch, handleSubmit, setValue } = useForm();
+    const { control, handleSubmit, watch, setValue, getValues } = useForm();
 
     const [loading, setLoading] = useState(false);
+    const [showPassword, setShowPassword] = useState(false);
 
     const username = watch('username');
     const password = watch('password');
@@ -118,10 +123,11 @@
                         render={({ field }) => (
                             <TextField
                                 {...field}
-                                label={translate('ra.auth.username')}
+                                label={translate("page.login.username")}
                                 variant="standard"
                                 disabled={loading}
                                 autoFocus
+                                autoComplete="off"
                             />
                         )}
                     />
@@ -134,23 +140,37 @@
                         render={({ field }) => (
                             <TextField
                                 {...field}
-                                label={translate('ra.auth.password')}
-                                type="password"
+                                label={translate("page.login.password")}
+                                type={showPassword ? 'text' : 'password'}
                                 variant="standard"
                                 disabled={loading}
-
+                                autoComplete="off"
+                                InputProps={{
+                                    endAdornment: (
+                                        <InputAdornment position="end">
+                                            <IconButton
+                                                aria-label="toggle password visibility"
+                                                onClick={() => setShowPassword((show) => !show)}
+                                                onMouseDown={(event) => { event.preventDefault() }}
+                                                edge="end"
+                                            >
+                                                {showPassword ? <VisibilityOff /> : <Visibility />}
+                                            </IconButton>
+                                        </InputAdornment>
+                                    ),
+                                }}
                             />
                         )}
                     />
 
-                    <Box mt={10}></Box>
+                    <Box />
 
                     <Button
                         type="submit"
                         variant="contained"
                         disabled={loading || !(tenantId && username && password)}
                         sx={{
-                            backgroundColor: "#3D4BA7"
+                            // backgroundColor: "#3D4BA7"
                         }}
                     >
                         {loading && <CircularProgress size={25} thickness={2} />}

--
Gitblit v1.9.1