闭社主体 forked from https://github.com/tootsuite/mastodon
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

30 lines
1.0 KiB

  1. import { connect } from 'react-redux';
  2. import { defineMessages, injectIntl } from 'react-intl';
  3. import NavigationBar from '../components/navigation_bar';
  4. import { logOut } from 'mastodon/utils/log_out';
  5. import { openModal } from 'mastodon/actions/modal';
  6. import { me } from '../../../initial_state';
  7. const messages = defineMessages({
  8. logoutMessage: { id: 'confirmations.logout.message', defaultMessage: 'Are you sure you want to log out?' },
  9. logoutConfirm: { id: 'confirmations.logout.confirm', defaultMessage: 'Log out' },
  10. });
  11. const mapStateToProps = state => {
  12. return {
  13. account: state.getIn(['accounts', me]),
  14. };
  15. };
  16. const mapDispatchToProps = (dispatch, { intl }) => ({
  17. onLogout () {
  18. dispatch(openModal('CONFIRM', {
  19. message: intl.formatMessage(messages.logoutMessage),
  20. confirm: intl.formatMessage(messages.logoutConfirm),
  21. closeWhenConfirm: false,
  22. onConfirm: () => logOut(),
  23. }));
  24. },
  25. });
  26. export default injectIntl(connect(mapStateToProps, mapDispatchToProps)(NavigationBar));