mirror of
https://github.com/usememos/memos.git
synced 2025-02-01 10:07:59 +08:00
feat: create user repeat password (#614)
* feat: create user repeat password * update
This commit is contained in:
parent
d8bf55efb2
commit
f883dd9c1d
5 changed files with 35 additions and 1 deletions
|
@ -11,6 +11,7 @@ import "../../less/settings/member-section.less";
|
|||
interface State {
|
||||
createUserUsername: string;
|
||||
createUserPassword: string;
|
||||
repeatUserPassword: string;
|
||||
}
|
||||
|
||||
const PreferencesSection = () => {
|
||||
|
@ -19,6 +20,7 @@ const PreferencesSection = () => {
|
|||
const [state, setState] = useState<State>({
|
||||
createUserUsername: "",
|
||||
createUserPassword: "",
|
||||
repeatUserPassword: "",
|
||||
});
|
||||
const [userList, setUserList] = useState<User[]>([]);
|
||||
|
||||
|
@ -45,11 +47,22 @@ const PreferencesSection = () => {
|
|||
});
|
||||
};
|
||||
|
||||
const handleRepeatPasswordInputChange = (event: React.ChangeEvent<HTMLInputElement>) => {
|
||||
setState({
|
||||
...state,
|
||||
repeatUserPassword: event.target.value,
|
||||
});
|
||||
};
|
||||
|
||||
const handleCreateUserBtnClick = async () => {
|
||||
if (state.createUserUsername === "" || state.createUserPassword === "") {
|
||||
toastHelper.error(t("message.fill-form"));
|
||||
return;
|
||||
}
|
||||
if (state.createUserPassword !== state.repeatUserPassword) {
|
||||
toastHelper.error(t("message.password-not-match"));
|
||||
return;
|
||||
}
|
||||
|
||||
const userCreate: UserCreate = {
|
||||
username: state.createUserUsername,
|
||||
|
@ -60,13 +73,13 @@ const PreferencesSection = () => {
|
|||
try {
|
||||
await api.createUser(userCreate);
|
||||
} catch (error: any) {
|
||||
console.error(error);
|
||||
toastHelper.error(error.response.data.message);
|
||||
}
|
||||
await fetchUserList();
|
||||
setState({
|
||||
createUserUsername: "",
|
||||
createUserPassword: "",
|
||||
repeatUserPassword: "",
|
||||
});
|
||||
};
|
||||
|
||||
|
@ -119,6 +132,15 @@ const PreferencesSection = () => {
|
|||
<span className="field-text">{t("common.password")}</span>
|
||||
<input type="password" placeholder={t("common.password")} value={state.createUserPassword} onChange={handlePasswordInputChange} />
|
||||
</div>
|
||||
<div className="input-form-container">
|
||||
<span className="field-text">{t("common.repeat-password-short")}</span>
|
||||
<input
|
||||
type="password"
|
||||
placeholder={t("common.repeat-password")}
|
||||
value={state.repeatUserPassword}
|
||||
onChange={handleRepeatPasswordInputChange}
|
||||
/>
|
||||
</div>
|
||||
<div className="btns-container">
|
||||
<button onClick={handleCreateUserBtnClick}>{t("common.create")}</button>
|
||||
</div>
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
"about": "About",
|
||||
"email": "Email",
|
||||
"password": "Password",
|
||||
"repeat-password-short": "Repeat",
|
||||
"repeat-password": "Repeat the password",
|
||||
"new-password": "New password",
|
||||
"repeat-new-password": "Repeat the new password",
|
||||
"username": "Username",
|
||||
|
@ -181,6 +183,7 @@
|
|||
"change-memo-created-time": "Change memo created time",
|
||||
"memo-not-found": "Memo not found.",
|
||||
"fill-all": "Please fill in all fields.",
|
||||
"password-not-match": "Passwords do not match.",
|
||||
"new-password-not-match": "New passwords do not match.",
|
||||
"image-load-failed": "Image load failed",
|
||||
"fill-form": "Please fill out this form",
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
"about": "À propos",
|
||||
"email": "Email",
|
||||
"password": "Mot de passe",
|
||||
"repeat-password-short": "Repeat",
|
||||
"repeat-password": "Repeat the password",
|
||||
"new-password": "Nouveau mot de passe",
|
||||
"repeat-new-password": "Répétez le nouveau mot de passe",
|
||||
"username": "Nom d'utilisateur",
|
||||
|
@ -182,6 +184,7 @@
|
|||
"login-failed": "Connexion échouée",
|
||||
"signup-failed": "L'inscription a échoué",
|
||||
"user-not-found": "Utilisateur introuvable",
|
||||
"password-not-match": "Passwords do not match.",
|
||||
"password-changed": "Mot de passe modifié",
|
||||
"private-only": "Ce mémo est uniquement privé.",
|
||||
"copied": "Copié",
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
"about": "Thông Tin",
|
||||
"email": "Email",
|
||||
"password": "Mật khẩu",
|
||||
"repeat-password-short": "Repeat",
|
||||
"repeat-password": "Repeat the password",
|
||||
"new-password": "Mật khẩu mới",
|
||||
"repeat-new-password": "Nhập lại mật khẩu mới",
|
||||
"username": "Tên đăng nhập",
|
||||
|
@ -181,6 +183,7 @@
|
|||
"login-failed": "Đăng nhập thất bại",
|
||||
"signup-failed": "Đăng ký thất bại",
|
||||
"user-not-found": "Không tìm thấy người dùng này",
|
||||
"password-not-match": "Passwords do not match.",
|
||||
"password-changed": "Mật khẩu đã được thay đổi",
|
||||
"private-only": "Memo này có trạng thái riêng tư.",
|
||||
"copied": "Đã sao chép",
|
||||
|
|
|
@ -3,6 +3,8 @@
|
|||
"about": "关于",
|
||||
"email": "邮箱",
|
||||
"password": "密码",
|
||||
"repeat-password-short": "重复密码",
|
||||
"repeat-password": "重复密码",
|
||||
"new-password": "新密码",
|
||||
"repeat-new-password": "重复新密码",
|
||||
"username": "用户名",
|
||||
|
@ -181,6 +183,7 @@
|
|||
"change-memo-created-time": "更改 Memo 创建时间",
|
||||
"memo-not-found": "找不到 Memo。",
|
||||
"fill-all": "请填写所有字段。",
|
||||
"password-not-match": "密码不一致。",
|
||||
"new-password-not-match": "新密码不匹配。",
|
||||
"image-load-failed": "图片加载失败",
|
||||
"fill-form": "请填写此表单",
|
||||
|
|
Loading…
Reference in a new issue