From cbccc558b50020901b586d82d94a76be07c48c38 Mon Sep 17 00:00:00 2001
From: vincentlu <t1341870251@gmail.com>
Date: 星期二, 11 二月 2025 15:34:11 +0800
Subject: [PATCH] #
---
rsf-admin/src/page/login/Register.jsx | 68 +++++++++++++++++++++++++++++++---
1 files changed, 62 insertions(+), 6 deletions(-)
diff --git a/rsf-admin/src/page/login/Register.jsx b/rsf-admin/src/page/login/Register.jsx
index 832081f..e803ec5 100644
--- a/rsf-admin/src/page/login/Register.jsx
+++ b/rsf-admin/src/page/login/Register.jsx
@@ -7,7 +7,9 @@
Button,
TextField,
Stack,
- Autocomplete
+ Autocomplete,
+ InputAdornment,
+ IconButton,
} from '@mui/material';
import {
useTranslate,
@@ -15,6 +17,9 @@
useNotify,
} from 'react-admin';
import { useForm, Controller } from 'react-hook-form';
+import ProviderChoices from "./ProviderChoices";
+import Visibility from '@mui/icons-material/Visibility';
+import VisibilityOff from '@mui/icons-material/VisibilityOff';
const Register = (props) => {
const translate = useTranslate();
@@ -26,9 +31,11 @@
const { control, watch, handleSubmit, setValue } = useForm();
const [loading, setLoading] = useState(false);
+ const [showPassword, setShowPassword] = useState(true);
const username = watch('username');
const password = watch('password');
+ const confirmPassword = watch('confirmPassword');
const tenantId = watch('tenantId');
useEffect(() => {
@@ -38,7 +45,8 @@
}, [tenantList, setValue]);
const onSubmit = (data) => {
- console.log(data);
+ notify("Registration is not open yet");
+ return;
setLoading(true);
// js native confirm && root
login(
@@ -116,6 +124,7 @@
variant="standard"
disabled={loading}
autoFocus
+ autoComplete="off"
/>
)}
/>
@@ -129,20 +138,65 @@
<TextField
{...field}
label={translate('ra.auth.password')}
- type="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>
+ <Controller
+ name="confirmPassword"
+ control={control}
+ defaultValue=""
+ rules={{ required: true }}
+ render={({ field }) => (
+ <TextField
+ {...field}
+ label={translate('page.login.confirmPwd')}
+ 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 />
<Button
type="submit"
variant="contained"
- disabled={loading || !(tenantId && username && password)}
+ disabled={loading || !(tenantId && username && password && confirmPassword)}
sx={{
backgroundColor: "#3D4BA7"
}}
@@ -153,6 +207,8 @@
</Stack>
<Box mt={1} mb={1} sx={{ textAlign: 'center' }}>or</Box>
+
+ <ProviderChoices type="REGISTER" />
</Box >
</>
)
--
Gitblit v1.9.1