Vulcan/packages/vulcan-base-components/lib/users/UsersMenu.jsx
2017-05-19 14:42:43 -06:00

45 lines
1.6 KiB
JavaScript

import { Components, registerComponent, withCurrentUser } from 'meteor/vulcan:core';
import React, { PureComponent } from 'react';
import PropTypes from 'prop-types';
import { FormattedMessage } from 'react-intl';
import { Meteor } from 'meteor/meteor';
import { Dropdown, MenuItem } from 'react-bootstrap';
import { LinkContainer } from 'react-router-bootstrap';
import Users from 'meteor/vulcan:users';
import { withApollo } from 'react-apollo';
class UsersMenu extends PureComponent {
render() {
const {currentUser, client} = this.props;
return (
<div className="users-menu">
<Dropdown id="user-dropdown">
<Dropdown.Toggle>
<Components.UsersAvatar size="small" user={currentUser} link={false} />
<div>{Users.getDisplayName(currentUser)}</div>
</Dropdown.Toggle>
<Dropdown.Menu>
<LinkContainer to={`/users/${currentUser.slug}`}>
<MenuItem className="dropdown-item" eventKey="1"><FormattedMessage id="users.profile"/></MenuItem>
</LinkContainer>
<LinkContainer to={`/account`}>
<MenuItem className="dropdown-item" eventKey="2"><FormattedMessage id="users.edit_account"/></MenuItem>
</LinkContainer>
<MenuItem className="dropdown-item" eventKey="4" onClick={() => Meteor.logout(() => client.resetStore())}><FormattedMessage id="users.log_out"/></MenuItem>
</Dropdown.Menu>
</Dropdown>
</div>
)
}
}
UsersMenu.propsTypes = {
currentUser: PropTypes.object,
client: PropTypes.object,
};
registerComponent('UsersMenu', UsersMenu, withCurrentUser, withApollo);