diff --git a/src/components/profile/Category.jsx b/src/components/profile/Category.jsx deleted file mode 100644 index cce21a9..0000000 --- a/src/components/profile/Category.jsx +++ /dev/null @@ -1,105 +0,0 @@ -import React, { Component } from 'react'; - -import { FormattedMessage as Message, FormattedRelative as Relative } from 'react-intl'; - -import styles from './category.scss'; - -export class Category extends Component { - static displayName = 'Logout'; - - render() { - var { user } = this.props; - console.log(user); - - return ( -
-

- Настройки аккаунта Ely.by -

-
-
- Благодаря аккаунту Ely.by вы можете получить доступ ко многим ресурсам, связанным с Minecraft. - Берегите свой аккаунт, используйте надёжный пароль и регулярно его меняйте. -
- -
-
-

Персональные данные

-

- Здесь вы можете сменить ключевые параметры вашего аккаунта. Обратите внимание, что для - всех действий необходимо подтверждение при помощи ввода пароля. -

-
- -
-
-
Ник:
-
{user.username}
-
- - - -
-
-
- Найден аккаунт Mojang с таким же ником и, по правилам проекта, его владелец вправе - потребовать восстановления контроля над ником. -
-
- -
-
-
E-mail:
-
{user.email}
-
- - - -
-
-
- -
-
-
Пароль:
-
- Изменён -
-
- - - -
-
- {user.shouldChangePassword ? ( -
- Для пароля применяется старый алгоритм хэширования
- Пожалуйста, смените пароль. -
- ) : ''} -
- -
-
-
Двухфакторная аутентификация:
-
Не включена
-
- - - -
-
-
- -
-
-
UUID:
-
{user.uuid}
-
-
-
-
-
- ); - } -} diff --git a/src/components/profile/Profile.jsx b/src/components/profile/Profile.jsx new file mode 100644 index 0000000..44afe0b --- /dev/null +++ b/src/components/profile/Profile.jsx @@ -0,0 +1,83 @@ +import React, { Component } from 'react'; + +import { FormattedMessage as Message, FormattedRelative as Relative } from 'react-intl'; +import Helmet from 'react-helmet'; + +import { userShape } from 'components/user/User'; + +import ProfileField from './ProfileField'; +import styles from './profile.scss'; + +export class Profile extends Component { + static displayName = 'Profile'; + static propTypes = { + user: userShape + }; + + render() { + const { user } = this.props; + + const pageTitle = 'Настройки аккаунта Ely.by'; + + return ( +
+ +

+ {pageTitle} +

+ +
+
+ Благодаря аккаунту Ely.by вы можете получить доступ ко многим ресурсам, связанным с Minecraft. + Берегите свой аккаунт, используйте надёжный пароль и регулярно его меняйте. +
+ +
+
+

+ Персональные данные +

+

+ Здесь вы можете сменить ключевые параметры вашего аккаунта. Обратите внимание, что для + всех действий необходимо подтверждение при помощи ввода пароля. +

+
+ + + + + + Изменён } + warningMessage={user.shouldChangePassword ? ( + + Для пароля применяется старый алгоритм хэширования
+ Пожалуйста, смените пароль. +
+ ) : ''} + /> + + + + +
+
+
+ ); + } +} diff --git a/src/components/profile/ProfileField.jsx b/src/components/profile/ProfileField.jsx new file mode 100644 index 0000000..21dafb8 --- /dev/null +++ b/src/components/profile/ProfileField.jsx @@ -0,0 +1,40 @@ +import React, { Component, PropTypes } from 'react'; + +import styles from './profile.scss'; + +export default class ProfileField extends Component { + static displayName = 'ProfileField'; + static propTypes = { + label: PropTypes.string.isRequired, + value: React.PropTypes.oneOfType([PropTypes.string, PropTypes.element]).isRequired, + warningMessage: React.PropTypes.oneOfType([PropTypes.string, PropTypes.element]), + readonly: PropTypes.bool + }; + + render() { + const {label, value, warningMessage, readonly} = this.props; + + return ( +
+
+
{label}:
+
{value}
+ + {readonly ? '' : ( +
+ + + +
+ )} +
+ + {warningMessage ? ( +
+ {warningMessage} +
+ ) : ''} +
+ ); + } +} diff --git a/src/components/profile/category.scss b/src/components/profile/profile.scss similarity index 97% rename from src/components/profile/category.scss rename to src/components/profile/profile.scss index b61fc71..a41b93a 100644 --- a/src/components/profile/category.scss +++ b/src/components/profile/profile.scss @@ -1,6 +1,11 @@ @import '~components/ui/fonts.scss'; @import '~components/ui/colors.scss'; +.container { + margin-top: 55px; +} + + .title { font-family: $font-family-title; font-size: 30px; diff --git a/src/pages/index/IndexPage.jsx b/src/pages/index/IndexPage.jsx index bdf5a46..ca6d1d4 100644 --- a/src/pages/index/IndexPage.jsx +++ b/src/pages/index/IndexPage.jsx @@ -2,17 +2,13 @@ import React, { Component } from 'react'; import { connect } from 'react-redux'; -import ProfilePage from 'pages/profile/ProfilePage'; +import { Profile } from 'components/profile/Profile'; class IndexPage extends Component { displayName = 'IndexPage'; render() { - return ( -
- -
- ); + return (); } } diff --git a/src/pages/profile/ProfilePage.jsx b/src/pages/profile/ProfilePage.jsx deleted file mode 100644 index 1173aa6..0000000 --- a/src/pages/profile/ProfilePage.jsx +++ /dev/null @@ -1,33 +0,0 @@ -import React, { Component, PropTypes } from 'react'; - -import { connect } from 'react-redux'; - -import { Category } from 'components/profile/Category'; - -import styles from './profile.scss'; - -class ProfilePage extends Component { - static displayName = 'AuthPage'; - static propTypes = { - /*client: PropTypes.shape({ - id: PropTypes.string.isRequired, - name: PropTypes.string.isRequired, - description: PropTypes.string.isRequired - })*/ - }; - - state = { - }; - - render() { - return ( -
- -
- ); - } -} - -export default connect((state) => ({ - //client: state.auth.client -}))(ProfilePage); diff --git a/src/pages/profile/profile.scss b/src/pages/profile/profile.scss deleted file mode 100644 index 56a0366..0000000 --- a/src/pages/profile/profile.scss +++ /dev/null @@ -1,5 +0,0 @@ -@import "~components/ui/colors.scss"; - -.content { - margin-top: 55px; -}