import PropTypes from "prop-types"; import { PureComponent } from "react"; import { FormattedMessage, defineMessages, injectIntl } from "react-intl"; import { Link } from "react-router-dom"; import { connect } from "react-redux"; import { openModal } from "flavours/glitch/actions/modal"; import { version, source_url } from "flavours/glitch/initial_state"; import { logOut } from "flavours/glitch/utils/log_out"; const messages = defineMessages({ logoutMessage: { id: "confirmations.logout.message", defaultMessage: "Are you sure you want to log out?" }, logoutConfirm: { id: "confirmations.logout.confirm", defaultMessage: "Log out" }, }); const mapDispatchToProps = (dispatch, { intl }) => ({ onLogout () { dispatch(openModal({ modalType: "CONFIRM", modalProps: { message: intl.formatMessage(messages.logoutMessage), confirm: intl.formatMessage(messages.logoutConfirm), closeWhenConfirm: false, onConfirm: () => logOut(), }, })); }, }); class LinkFooter extends PureComponent { static contextTypes = { identity: PropTypes.object, }; static propTypes = { multiColumn: PropTypes.bool, onLogout: PropTypes.func.isRequired, intl: PropTypes.object.isRequired, }; handleLogoutClick = e => { e.preventDefault(); e.stopPropagation(); this.props.onLogout(); return false; }; render () { const DividingCircle = {" · "}; const software = "Masto-FE (🦥 flavour)"; return (
); } } export default injectIntl(connect(null, mapDispatchToProps)(LinkFooter));