Vulcan/packages/nova-base-components/lib/users/UsersMenu.jsx

45 lines
1.6 KiB
React
Raw Normal View History

2016-08-08 11:18:21 +09:00
import Telescope from 'meteor/nova:lib';
2016-03-25 12:42:25 +09:00
import React, { PropTypes, Component } from 'react';
2016-06-09 17:42:20 +09:00
import { FormattedMessage } from 'react-intl';
2016-04-02 17:03:03 +02:00
import { Meteor } from 'meteor/meteor';
import { Accounts } from 'meteor/std:accounts-ui';
import { Dropdown, MenuItem } from 'react-bootstrap';
2016-06-14 10:01:44 +09:00
import { LinkContainer } from 'react-router-bootstrap';
2016-06-23 15:00:58 +09:00
import Users from 'meteor/nova:users';
2016-11-15 18:33:16 +01:00
import { withCurrentUser } from 'meteor/nova:core';
2016-04-15 11:11:13 +09:00
class UsersMenu extends Component {
2016-04-15 11:11:13 +09:00
render() {
2016-11-15 18:33:16 +01:00
const {currentUser} = this.props;
2016-04-15 11:11:13 +09:00
return (
<div className="users-menu">
<Dropdown id="user-dropdown">
2016-04-15 11:11:13 +09:00
<Dropdown.Toggle>
<Telescope.components.UsersAvatar size="small" user={currentUser} link={false} />
<div>{Users.getDisplayName(currentUser)}</div>
2016-04-15 11:11:13 +09:00
</Dropdown.Toggle>
<Dropdown.Menu>
<LinkContainer to={`/users/${currentUser.__slug}`}>
2016-06-14 10:01:44 +09:00
<MenuItem className="dropdown-item" eventKey="1"><FormattedMessage id="users.profile"/></MenuItem>
</LinkContainer>
<LinkContainer to={`/account`}>
2016-06-14 10:01:44 +09:00
<MenuItem className="dropdown-item" eventKey="2"><FormattedMessage id="users.edit_account"/></MenuItem>
</LinkContainer>
2016-06-09 17:42:20 +09:00
<MenuItem className="dropdown-item" eventKey="4" onClick={() => Meteor.logout(Accounts.ui._options.onSignedOutHook())}><FormattedMessage id="users.log_out"/></MenuItem>
2016-04-15 11:11:13 +09:00
</Dropdown.Menu>
</Dropdown>
</div>
)
}
}
UsersMenu.contextTypes = {
currentUser: React.PropTypes.object,
messages: React.PropTypes.object
2016-11-15 18:33:16 +01:00
};
Telescope.registerComponent('UsersMenu', UsersMenu, withCurrentUser);