import { Spoiler } from "../Other/Spoiler"; import { backURL, validateEmail, validatePassword, validateNickname, } from "../../helpers/index"; import { CMyDropzone } from "../Other/Dropzone"; import { Form, Alert, Row, Col, Button } from "react-bootstrap"; import { useState } from "react"; import { connect } from "react-redux"; import { CUserInfo } from "./UserInfo"; import { CPreloader } from "../Other/Preloader"; import { actionSetNickname, actionSetEmail, actionSetNewPassword, } from "./../../actions/types"; const MyProfile = ({ id, auth, promise, emailUpdate, nickUpdate, changePassword, }) => { const [login, setLogin] = useState(""); const [nick, setNickname] = useState(""); const [password, setPassword] = useState(""); const [newPassword, setNewPassword] = useState(""); const [passwordShown, setPasswordShown] = useState(false); return (
} /> {id === auth?.payload?.sub?.id ? (

Редактирование профиля:{" "} {promise?.myUser?.payload?.nick ? promise?.myUser?.payload?.nick : "user"}


Avatar } header={

Изменить аватар

} />
{promise?.myUser?.payload?.nick === nick ? ( Никнейм не должен повторяться с предыдущим. ) : null} {validateNickname(nick) ? null : ( Никнейм может состоять только из строчных букв и цифр, символы - и _, а так же иметь длину от 3 до 8 символов. )} Ваш никнейм: Новый никнейм: setNickname(e.target.value)} />
} header={

Изменить никнейм

} />
{promise?.myUser?.payload?.login === login ? ( Email не должен повторяться с предыдущим. ) : null} {validateEmail(login) ? null : ( Email должен быть в формате: email@gmail.com. )} Ваша почта: Новая почта: setLogin(e.target.value)} />
} header={

Изменить почту

} />
{password.length !== 0 ? null : ( Пожалуйста, введите свой текущий пароль в первое поле для изменения пароля. )} {validatePassword(newPassword) ? null : ( Новый пароль должен быть от 6 символов, иметь хотя бы одну цифру и заглавную букву. )} Пароль: setPassword(e.target.value)} /> Новый пароль: setNewPassword(e.target.value)} />
} header={

Изменить пароль

} />
) : null}
); }; export const CMyProfile = connect( (state) => ({ auth: state.auth, promise: state.promise }), { emailUpdate: actionSetEmail, nickUpdate: actionSetNickname, changePassword: actionSetNewPassword, } )(MyProfile);