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