import { defineMessages, injectIntl } from "react-intl"; import { connect } from "react-redux"; import { openModal } from "flavours/glitch/actions/modal"; import { logOut } from "flavours/glitch/utils/log_out"; import Header from "../components/header"; 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 mapStateToProps = state => { return { columns: state.getIn(["settings", "columns"]), unreadNotifications: state.getIn(["notifications", "unread"]), showNotificationsBadge: state.getIn(["local_settings", "notifications", "tab_badge"]), }; }; const mapDispatchToProps = (dispatch, { intl }) => ({ onSettingsClick (e) { e.preventDefault(); e.stopPropagation(); dispatch(openModal({ modalType: "SETTINGS", modalProps: {} })); }, onLogout () { dispatch(openModal({ modalType: "CONFIRM", modalProps: { message: intl.formatMessage(messages.logoutMessage), confirm: intl.formatMessage(messages.logoutConfirm), closeWhenConfirm: false, onConfirm: () => logOut(), }, })); }, }); export default injectIntl(connect(mapStateToProps, mapDispatchToProps)(Header));