// @flow import React, { Component } from 'react'; import { connect } from 'react-redux'; import { FormattedMessage as Message } from 'react-intl'; import { Link } from 'react-router-dom'; import Helmet from 'react-helmet'; import { ChangeLanguageLink } from 'components/languageSwitcher'; import { RelativeTime } from 'components/ui'; import ProfileField from './ProfileField'; import styles from './profile.scss'; import profileForm from './profileForm.scss'; import messages from './Profile.intl.json'; import RulesPage from 'pages/rules/RulesPage'; import type { User } from 'components/user'; type OwnProps = {||}; type Props = { ...OwnProps, user: User, interfaceLocale: string, }; class Profile extends Component { UUID: ?HTMLElement; render() { const { user, interfaceLocale } = this.props; return (
{(pageTitle: string) => (

{pageTitle}

)}

} value={user.username} warningMessage={ user.hasMojangUsernameCollision ? ( ), }} /> ) : ( '' ) } /> } value={user.email} /> } value={ ), }} /> } /> } value={} warningMessage={ user.lang === interfaceLocale ? ( '' ) : ( ), }} /> ) } /> } value={ user.isOtpEnabled ? ( ) : ( ) } /> } value={ {user.uuid} } />
); } handleUUIDMouseOver() { if (!this.UUID) { return; } const el = this.UUID; try { const selection = window.getSelection(); const range = document.createRange(); range.selectNodeContents(el); selection.removeAllRanges(); selection.addRange(range); } catch (err) { // the browser does not support an API } } setUUID(el: ?HTMLElement) { this.UUID = el; } } export default connect(({ user, i18n }) => ({ user, interfaceLocale: i18n.locale, }))(Profile);