|
@@ -16,7 +16,7 @@ import { Form, Alert, Row, Col, Button } from "react-bootstrap";
|
|
import { useState } from "react";
|
|
import { useState } from "react";
|
|
import { connect } from "react-redux";
|
|
import { connect } from "react-redux";
|
|
import { CUserInfo } from "./UserInfo";
|
|
import { CUserInfo } from "./UserInfo";
|
|
-import { Loader } from "../Loader";
|
|
|
|
|
|
+import { CPreloader } from "./../Preloader";
|
|
|
|
|
|
const MyProfile = ({
|
|
const MyProfile = ({
|
|
id,
|
|
id,
|
|
@@ -34,295 +34,282 @@ const MyProfile = ({
|
|
|
|
|
|
return (
|
|
return (
|
|
<div className="ProfilePage">
|
|
<div className="ProfilePage">
|
|
- {auth.token ? (
|
|
|
|
- <>
|
|
|
|
- {id === auth?.payload?.sub?.id ? (
|
|
|
|
- promise?.myUser?.status === "RESOLVED" ? (
|
|
|
|
- <CUserInfo id={id} />
|
|
|
|
- ) : (
|
|
|
|
- <Loader />
|
|
|
|
- )
|
|
|
|
- ) : promise?.anotherUser?.status === "RESOLVED" ? (
|
|
|
|
- <CUserInfo id={id} />
|
|
|
|
- ) : (
|
|
|
|
- <Loader />
|
|
|
|
- )}
|
|
|
|
- {id === auth?.payload?.sub?.id ? (
|
|
|
|
- <div className="d-block mx-auto mt-2 container w-50">
|
|
|
|
- <h1>
|
|
|
|
- Редактирование профиля:{" "}
|
|
|
|
- {promise?.myUser?.payload?.nick
|
|
|
|
- ? promise?.myUser?.payload?.nick
|
|
|
|
- : "user"}
|
|
|
|
- </h1>
|
|
|
|
- <Spoiler
|
|
|
|
- children={
|
|
|
|
- <>
|
|
|
|
- <br />
|
|
|
|
- <form
|
|
|
|
- action="/upload"
|
|
|
|
- method="post"
|
|
|
|
- encType="multipart/form-data"
|
|
|
|
- id="form"
|
|
|
|
- >
|
|
|
|
- <img
|
|
|
|
- className="avatarProfile"
|
|
|
|
- src={
|
|
|
|
- promise?.myUser?.payload?.avatar
|
|
|
|
- ? `${backURL}/${promise.myUser.payload.avatar.url}`
|
|
|
|
- : "https://i.ibb.co/bBxzmTm/default-avatar.jpg"
|
|
|
|
|
|
+ {id === auth?.payload?.sub?.id ? (
|
|
|
|
+ <CPreloader
|
|
|
|
+ promiseName={"myUser"}
|
|
|
|
+ promiseState={promise}
|
|
|
|
+ children={<CUserInfo id={id} />}
|
|
|
|
+ />
|
|
|
|
+ ) : (
|
|
|
|
+ <CPreloader
|
|
|
|
+ promiseName={"anotherUser"}
|
|
|
|
+ promiseState={promise}
|
|
|
|
+ children={<CUserInfo id={id} />}
|
|
|
|
+ />
|
|
|
|
+ )}
|
|
|
|
+ {id === auth?.payload?.sub?.id ? (
|
|
|
|
+ <div className="d-block mx-auto mt-2 container w-50">
|
|
|
|
+ <h1>
|
|
|
|
+ Редактирование профиля:{" "}
|
|
|
|
+ {promise?.myUser?.payload?.nick
|
|
|
|
+ ? promise?.myUser?.payload?.nick
|
|
|
|
+ : "user"}
|
|
|
|
+ </h1>
|
|
|
|
+ <Spoiler
|
|
|
|
+ children={
|
|
|
|
+ <>
|
|
|
|
+ <br />
|
|
|
|
+ <form
|
|
|
|
+ action="/upload"
|
|
|
|
+ method="post"
|
|
|
|
+ encType="multipart/form-data"
|
|
|
|
+ id="form"
|
|
|
|
+ >
|
|
|
|
+ <img
|
|
|
|
+ className="avatarProfile"
|
|
|
|
+ src={
|
|
|
|
+ promise?.myUser?.payload?.avatar
|
|
|
|
+ ? `${backURL}/${promise.myUser.payload.avatar.url}`
|
|
|
|
+ : "https://i.ibb.co/bBxzmTm/default-avatar.jpg"
|
|
|
|
+ }
|
|
|
|
+ alt="Avatar"
|
|
|
|
+ />
|
|
|
|
+ <CMyDropzone />
|
|
|
|
+ </form>
|
|
|
|
+ </>
|
|
|
|
+ }
|
|
|
|
+ header={<h3>Изменить аватар</h3>}
|
|
|
|
+ />
|
|
|
|
+ <Spoiler
|
|
|
|
+ children={
|
|
|
|
+ <>
|
|
|
|
+ <br />
|
|
|
|
+ <Form>
|
|
|
|
+ {promise?.myUser?.payload?.nick === nick ? (
|
|
|
|
+ <Alert>Никнейм не должен повторяться с предыдущим.</Alert>
|
|
|
|
+ ) : null}
|
|
|
|
+ {validateNickname(nick) ? null : (
|
|
|
|
+ <Alert>
|
|
|
|
+ Никнейм может состоять только из строчных букв и цифр,
|
|
|
|
+ символы - и _, а так же иметь длину от 3 до 8 символов.
|
|
|
|
+ </Alert>
|
|
|
|
+ )}
|
|
|
|
+ <Form.Group
|
|
|
|
+ as={Row}
|
|
|
|
+ className="m-2"
|
|
|
|
+ controlId="formHorizontalEmail"
|
|
|
|
+ >
|
|
|
|
+ <Form.Label column sm={2}>
|
|
|
|
+ Ваш никнейм:
|
|
|
|
+ </Form.Label>
|
|
|
|
+ <Col sm={10}>
|
|
|
|
+ <Form.Control
|
|
|
|
+ type="text"
|
|
|
|
+ placeholder="Ваш текущий никнейм"
|
|
|
|
+ value={
|
|
|
|
+ promise?.myUser?.payload?.nick
|
|
|
|
+ ? promise?.myUser?.payload?.nick
|
|
|
|
+ : "Никнейм не установлен"
|
|
}
|
|
}
|
|
- alt="Avatar"
|
|
|
|
|
|
+ disabled
|
|
/>
|
|
/>
|
|
- <CMyDropzone />
|
|
|
|
- </form>
|
|
|
|
- </>
|
|
|
|
- }
|
|
|
|
- header={<h3>Изменить аватар</h3>}
|
|
|
|
- />
|
|
|
|
- <Spoiler
|
|
|
|
- children={
|
|
|
|
- <>
|
|
|
|
- <br />
|
|
|
|
- <Form>
|
|
|
|
- {promise?.myUser?.payload?.nick === nick ? (
|
|
|
|
- <Alert>
|
|
|
|
- Никнейм не должен повторяться с предыдущим.
|
|
|
|
- </Alert>
|
|
|
|
- ) : null}
|
|
|
|
- {validateNickname(nick) ? null : (
|
|
|
|
- <Alert>
|
|
|
|
- Никнейм может состоять только из строчных букв и цифр,
|
|
|
|
- символы - и _, а так же иметь длину от 3 до 8
|
|
|
|
- символов.
|
|
|
|
- </Alert>
|
|
|
|
- )}
|
|
|
|
- <Form.Group
|
|
|
|
- as={Row}
|
|
|
|
- className="m-2"
|
|
|
|
- controlId="formHorizontalEmail"
|
|
|
|
- >
|
|
|
|
- <Form.Label column sm={2}>
|
|
|
|
- Ваш никнейм:
|
|
|
|
- </Form.Label>
|
|
|
|
- <Col sm={10}>
|
|
|
|
- <Form.Control
|
|
|
|
- type="text"
|
|
|
|
- placeholder="Ваш текущий никнейм"
|
|
|
|
- value={
|
|
|
|
- promise?.myUser?.payload?.nick
|
|
|
|
- ? promise?.myUser?.payload?.nick
|
|
|
|
- : "Никнейм не установлен"
|
|
|
|
- }
|
|
|
|
- disabled
|
|
|
|
- />
|
|
|
|
- </Col>
|
|
|
|
- </Form.Group>
|
|
|
|
- <Form.Group
|
|
|
|
- as={Row}
|
|
|
|
- className="m-2"
|
|
|
|
- controlId="formHorizontalEmail"
|
|
|
|
- >
|
|
|
|
- <Form.Label column sm={2}>
|
|
|
|
- Новый никнейм:
|
|
|
|
- </Form.Label>
|
|
|
|
- <Col sm={10}>
|
|
|
|
- <Form.Control
|
|
|
|
- type="text"
|
|
|
|
- placeholder="Введите ваш новый никнейм"
|
|
|
|
- value={nick}
|
|
|
|
- max="8"
|
|
|
|
- onChange={(e) => setNickname(e.target.value)}
|
|
|
|
- />
|
|
|
|
- </Col>
|
|
|
|
- </Form.Group>
|
|
|
|
- <Form.Group as={Row} className="mb-3">
|
|
|
|
- <Col sm={{ span: 10, offset: 2 }} className="my-3">
|
|
|
|
- <Button
|
|
|
|
- variant="success"
|
|
|
|
- disabled={
|
|
|
|
- promise?.myUser?.payload?.nick !== nick &&
|
|
|
|
- validateNickname(nick)
|
|
|
|
- ? false
|
|
|
|
- : true
|
|
|
|
- }
|
|
|
|
- onClick={() =>
|
|
|
|
- nickUpdate({
|
|
|
|
- _id: promise?.myUser?.payload?._id,
|
|
|
|
- nick,
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
- >
|
|
|
|
- Сохранить
|
|
|
|
- </Button>
|
|
|
|
- </Col>
|
|
|
|
- </Form.Group>
|
|
|
|
- </Form>
|
|
|
|
- </>
|
|
|
|
- }
|
|
|
|
- header={<h3>Изменить никнейм</h3>}
|
|
|
|
- />
|
|
|
|
- <Spoiler
|
|
|
|
- children={
|
|
|
|
- <>
|
|
|
|
- <br />
|
|
|
|
- <Form>
|
|
|
|
- {promise?.myUser?.payload?.login === login ? (
|
|
|
|
- <Alert>Email не должен повторяться с предыдущим.</Alert>
|
|
|
|
- ) : null}
|
|
|
|
- {validateEmail(login) ? null : (
|
|
|
|
- <Alert>
|
|
|
|
- Email должен быть в формате: email@gmail.com.
|
|
|
|
- </Alert>
|
|
|
|
- )}
|
|
|
|
- <Form.Group
|
|
|
|
- as={Row}
|
|
|
|
- className="m-2"
|
|
|
|
- controlId="formHorizontalEmail"
|
|
|
|
|
|
+ </Col>
|
|
|
|
+ </Form.Group>
|
|
|
|
+ <Form.Group
|
|
|
|
+ as={Row}
|
|
|
|
+ className="m-2"
|
|
|
|
+ controlId="formHorizontalEmail"
|
|
|
|
+ >
|
|
|
|
+ <Form.Label column sm={2}>
|
|
|
|
+ Новый никнейм:
|
|
|
|
+ </Form.Label>
|
|
|
|
+ <Col sm={10}>
|
|
|
|
+ <Form.Control
|
|
|
|
+ type="text"
|
|
|
|
+ placeholder="Введите ваш новый никнейм"
|
|
|
|
+ value={nick}
|
|
|
|
+ max="8"
|
|
|
|
+ onChange={(e) => setNickname(e.target.value)}
|
|
|
|
+ />
|
|
|
|
+ </Col>
|
|
|
|
+ </Form.Group>
|
|
|
|
+ <Form.Group as={Row} className="mb-3">
|
|
|
|
+ <Col sm={{ span: 10, offset: 2 }} className="my-3">
|
|
|
|
+ <Button
|
|
|
|
+ variant="success"
|
|
|
|
+ disabled={
|
|
|
|
+ promise?.myUser?.payload?.nick !== nick &&
|
|
|
|
+ validateNickname(nick)
|
|
|
|
+ ? false
|
|
|
|
+ : true
|
|
|
|
+ }
|
|
|
|
+ onClick={() =>
|
|
|
|
+ nickUpdate({
|
|
|
|
+ _id: promise?.myUser?.payload?._id,
|
|
|
|
+ nick,
|
|
|
|
+ })
|
|
|
|
+ }
|
|
>
|
|
>
|
|
- <Form.Label column sm={2}>
|
|
|
|
- Ваша почта:
|
|
|
|
- </Form.Label>
|
|
|
|
- <Col sm={10}>
|
|
|
|
- <Form.Control
|
|
|
|
- type="text"
|
|
|
|
- placeholder="Ваша текущая почта"
|
|
|
|
- value={promise?.myUser?.payload?.login}
|
|
|
|
- disabled
|
|
|
|
- />
|
|
|
|
- </Col>
|
|
|
|
- </Form.Group>
|
|
|
|
- <Form.Group
|
|
|
|
- as={Row}
|
|
|
|
- className="m-2"
|
|
|
|
- controlId="formHorizontalEmail"
|
|
|
|
|
|
+ Сохранить
|
|
|
|
+ </Button>
|
|
|
|
+ </Col>
|
|
|
|
+ </Form.Group>
|
|
|
|
+ </Form>
|
|
|
|
+ </>
|
|
|
|
+ }
|
|
|
|
+ header={<h3>Изменить никнейм</h3>}
|
|
|
|
+ />
|
|
|
|
+ <Spoiler
|
|
|
|
+ children={
|
|
|
|
+ <>
|
|
|
|
+ <br />
|
|
|
|
+ <Form>
|
|
|
|
+ {promise?.myUser?.payload?.login === login ? (
|
|
|
|
+ <Alert>Email не должен повторяться с предыдущим.</Alert>
|
|
|
|
+ ) : null}
|
|
|
|
+ {validateEmail(login) ? null : (
|
|
|
|
+ <Alert>Email должен быть в формате: email@gmail.com.</Alert>
|
|
|
|
+ )}
|
|
|
|
+ <Form.Group
|
|
|
|
+ as={Row}
|
|
|
|
+ className="m-2"
|
|
|
|
+ controlId="formHorizontalEmail"
|
|
|
|
+ >
|
|
|
|
+ <Form.Label column sm={2}>
|
|
|
|
+ Ваша почта:
|
|
|
|
+ </Form.Label>
|
|
|
|
+ <Col sm={10}>
|
|
|
|
+ <Form.Control
|
|
|
|
+ type="text"
|
|
|
|
+ placeholder="Ваша текущая почта"
|
|
|
|
+ value={promise?.myUser?.payload?.login}
|
|
|
|
+ disabled
|
|
|
|
+ />
|
|
|
|
+ </Col>
|
|
|
|
+ </Form.Group>
|
|
|
|
+ <Form.Group
|
|
|
|
+ as={Row}
|
|
|
|
+ className="m-2"
|
|
|
|
+ controlId="formHorizontalEmail"
|
|
|
|
+ >
|
|
|
|
+ <Form.Label column sm={2}>
|
|
|
|
+ Новая почта:
|
|
|
|
+ </Form.Label>
|
|
|
|
+ <Col sm={10}>
|
|
|
|
+ <Form.Control
|
|
|
|
+ type="text"
|
|
|
|
+ placeholder="Введите вашу новую почту"
|
|
|
|
+ value={login}
|
|
|
|
+ onChange={(e) => setLogin(e.target.value)}
|
|
|
|
+ />
|
|
|
|
+ </Col>
|
|
|
|
+ </Form.Group>
|
|
|
|
+ <Form.Group as={Row} className="mb-3">
|
|
|
|
+ <Col sm={{ span: 10, offset: 2 }} className="my-3">
|
|
|
|
+ <Button
|
|
|
|
+ variant="success"
|
|
|
|
+ disabled={
|
|
|
|
+ validateEmail(login) &&
|
|
|
|
+ promise?.myUser?.payload?.login !== login
|
|
|
|
+ ? false
|
|
|
|
+ : true
|
|
|
|
+ }
|
|
|
|
+ onClick={() =>
|
|
|
|
+ emailUpdate({
|
|
|
|
+ _id: promise?.myUser?.payload?._id,
|
|
|
|
+ login,
|
|
|
|
+ })
|
|
|
|
+ }
|
|
>
|
|
>
|
|
- <Form.Label column sm={2}>
|
|
|
|
- Новая почта:
|
|
|
|
- </Form.Label>
|
|
|
|
- <Col sm={10}>
|
|
|
|
- <Form.Control
|
|
|
|
- type="text"
|
|
|
|
- placeholder="Введите вашу новую почту"
|
|
|
|
- value={login}
|
|
|
|
- onChange={(e) => setLogin(e.target.value)}
|
|
|
|
- />
|
|
|
|
- </Col>
|
|
|
|
- </Form.Group>
|
|
|
|
- <Form.Group as={Row} className="mb-3">
|
|
|
|
- <Col sm={{ span: 10, offset: 2 }} className="my-3">
|
|
|
|
- <Button
|
|
|
|
- variant="success"
|
|
|
|
- disabled={
|
|
|
|
- validateEmail(login) &&
|
|
|
|
- promise?.myUser?.payload?.login !== login
|
|
|
|
- ? false
|
|
|
|
- : true
|
|
|
|
- }
|
|
|
|
- onClick={() =>
|
|
|
|
- emailUpdate({
|
|
|
|
- _id: promise?.myUser?.payload?._id,
|
|
|
|
- login,
|
|
|
|
- })
|
|
|
|
- }
|
|
|
|
- >
|
|
|
|
- Сохранить
|
|
|
|
- </Button>
|
|
|
|
- </Col>
|
|
|
|
- </Form.Group>
|
|
|
|
- </Form>
|
|
|
|
- </>
|
|
|
|
- }
|
|
|
|
- header={<h3>Изменить почту</h3>}
|
|
|
|
- />
|
|
|
|
- <Spoiler
|
|
|
|
- children={
|
|
|
|
- <>
|
|
|
|
- <br />
|
|
|
|
- <Form>
|
|
|
|
- {password.length !== 0 ? null : (
|
|
|
|
- <Alert>
|
|
|
|
- Пожалуйста, введите свой текущий пароль в первое поле
|
|
|
|
- для изменения пароля.
|
|
|
|
- </Alert>
|
|
|
|
- )}
|
|
|
|
- {validatePassword(newPassword) ? null : (
|
|
|
|
- <Alert>
|
|
|
|
- Новый пароль должен быть от 6 символов, иметь хотя бы
|
|
|
|
- одну цифру и заглавную букву.
|
|
|
|
- </Alert>
|
|
|
|
- )}
|
|
|
|
- <Form.Group
|
|
|
|
- as={Row}
|
|
|
|
- className="m-2"
|
|
|
|
- controlId="formHorizontalPassword"
|
|
|
|
|
|
+ Сохранить
|
|
|
|
+ </Button>
|
|
|
|
+ </Col>
|
|
|
|
+ </Form.Group>
|
|
|
|
+ </Form>
|
|
|
|
+ </>
|
|
|
|
+ }
|
|
|
|
+ header={<h3>Изменить почту</h3>}
|
|
|
|
+ />
|
|
|
|
+ <Spoiler
|
|
|
|
+ children={
|
|
|
|
+ <>
|
|
|
|
+ <br />
|
|
|
|
+ <Form>
|
|
|
|
+ {password.length !== 0 ? null : (
|
|
|
|
+ <Alert>
|
|
|
|
+ Пожалуйста, введите свой текущий пароль в первое поле для
|
|
|
|
+ изменения пароля.
|
|
|
|
+ </Alert>
|
|
|
|
+ )}
|
|
|
|
+ {validatePassword(newPassword) ? null : (
|
|
|
|
+ <Alert>
|
|
|
|
+ Новый пароль должен быть от 6 символов, иметь хотя бы одну
|
|
|
|
+ цифру и заглавную букву.
|
|
|
|
+ </Alert>
|
|
|
|
+ )}
|
|
|
|
+ <Form.Group
|
|
|
|
+ as={Row}
|
|
|
|
+ className="m-2"
|
|
|
|
+ controlId="formHorizontalPassword"
|
|
|
|
+ >
|
|
|
|
+ <Form.Label column sm={2}>
|
|
|
|
+ Пароль:
|
|
|
|
+ </Form.Label>
|
|
|
|
+ <Col sm={10}>
|
|
|
|
+ <Form.Control
|
|
|
|
+ type={passwordShown ? "text" : "password"}
|
|
|
|
+ placeholder="Введите ваш текущий пароль"
|
|
|
|
+ onChange={(e) => setPassword(e.target.value)}
|
|
|
|
+ />
|
|
|
|
+ <Button
|
|
|
|
+ className="mt-2"
|
|
|
|
+ variant="secondary"
|
|
|
|
+ onClick={() => setPasswordShown(!passwordShown)}
|
|
>
|
|
>
|
|
- <Form.Label column sm={2}>
|
|
|
|
- Пароль:
|
|
|
|
- </Form.Label>
|
|
|
|
- <Col sm={10}>
|
|
|
|
- <Form.Control
|
|
|
|
- type={passwordShown ? "text" : "password"}
|
|
|
|
- placeholder="Введите ваш текущий пароль"
|
|
|
|
- onChange={(e) => setPassword(e.target.value)}
|
|
|
|
- />
|
|
|
|
- <Button
|
|
|
|
- className="mt-2"
|
|
|
|
- variant="secondary"
|
|
|
|
- onClick={() => setPasswordShown(!passwordShown)}
|
|
|
|
- >
|
|
|
|
- {`${passwordShown ? "Hide" : "Show"} passwords`}
|
|
|
|
- </Button>
|
|
|
|
- </Col>
|
|
|
|
- </Form.Group>
|
|
|
|
- <Form.Group
|
|
|
|
- as={Row}
|
|
|
|
- className="m-2"
|
|
|
|
- controlId="formHorizontalPassword"
|
|
|
|
|
|
+ {`${passwordShown ? "Hide" : "Show"} passwords`}
|
|
|
|
+ </Button>
|
|
|
|
+ </Col>
|
|
|
|
+ </Form.Group>
|
|
|
|
+ <Form.Group
|
|
|
|
+ as={Row}
|
|
|
|
+ className="m-2"
|
|
|
|
+ controlId="formHorizontalPassword"
|
|
|
|
+ >
|
|
|
|
+ <Form.Label column sm={2}>
|
|
|
|
+ Новый пароль:
|
|
|
|
+ </Form.Label>
|
|
|
|
+ <Col sm={10}>
|
|
|
|
+ <Form.Control
|
|
|
|
+ type={passwordShown ? "text" : "password"}
|
|
|
|
+ placeholder="Введите ваш новый пароль"
|
|
|
|
+ onChange={(e) => setNewPassword(e.target.value)}
|
|
|
|
+ />
|
|
|
|
+ </Col>
|
|
|
|
+ </Form.Group>
|
|
|
|
+ <Form.Group as={Row} className="mb-3">
|
|
|
|
+ <Col sm={{ span: 10, offset: 2 }} className="my-3">
|
|
|
|
+ <Button
|
|
|
|
+ variant="success"
|
|
|
|
+ disabled={validatePassword(newPassword) ? false : true}
|
|
|
|
+ onClick={() =>
|
|
|
|
+ changePassword(
|
|
|
|
+ promise?.myUser?.payload?.login,
|
|
|
|
+ password,
|
|
|
|
+ newPassword
|
|
|
|
+ )
|
|
|
|
+ }
|
|
>
|
|
>
|
|
- <Form.Label column sm={2}>
|
|
|
|
- Новый пароль:
|
|
|
|
- </Form.Label>
|
|
|
|
- <Col sm={10}>
|
|
|
|
- <Form.Control
|
|
|
|
- type={passwordShown ? "text" : "password"}
|
|
|
|
- placeholder="Введите ваш новый пароль"
|
|
|
|
- onChange={(e) => setNewPassword(e.target.value)}
|
|
|
|
- />
|
|
|
|
- </Col>
|
|
|
|
- </Form.Group>
|
|
|
|
- <Form.Group as={Row} className="mb-3">
|
|
|
|
- <Col sm={{ span: 10, offset: 2 }} className="my-3">
|
|
|
|
- <Button
|
|
|
|
- variant="success"
|
|
|
|
- disabled={
|
|
|
|
- validatePassword(newPassword) ? false : true
|
|
|
|
- }
|
|
|
|
- onClick={() =>
|
|
|
|
- changePassword(
|
|
|
|
- promise?.myUser?.payload?.login,
|
|
|
|
- password,
|
|
|
|
- newPassword
|
|
|
|
- )
|
|
|
|
- }
|
|
|
|
- >
|
|
|
|
- Сохранить
|
|
|
|
- </Button>
|
|
|
|
- </Col>
|
|
|
|
- </Form.Group>
|
|
|
|
- </Form>
|
|
|
|
- </>
|
|
|
|
- }
|
|
|
|
- header={<h3>Изменить пароль</h3>}
|
|
|
|
- />
|
|
|
|
- </div>
|
|
|
|
- ) : null}
|
|
|
|
- </>
|
|
|
|
- ) : (
|
|
|
|
- <div className="d-block mx-auto mt-2 container w-50">
|
|
|
|
- <AuthCheck header="Ваш профиль" />
|
|
|
|
|
|
+ Сохранить
|
|
|
|
+ </Button>
|
|
|
|
+ </Col>
|
|
|
|
+ </Form.Group>
|
|
|
|
+ </Form>
|
|
|
|
+ </>
|
|
|
|
+ }
|
|
|
|
+ header={<h3>Изменить пароль</h3>}
|
|
|
|
+ />
|
|
</div>
|
|
</div>
|
|
- )}
|
|
|
|
|
|
+ ) : null}
|
|
</div>
|
|
</div>
|
|
);
|
|
);
|
|
};
|
|
};
|