// @flow import { observable } from "mobx"; import { inject, observer } from "mobx-react"; import { SunIcon, MoonIcon } from "outline-icons"; import * as React from "react"; import { withTranslation, type TFunction } from "react-i18next"; import { Link } from "react-router-dom"; import styled from "styled-components"; import AuthStore from "stores/AuthStore"; import UiStore from "stores/UiStore"; import KeyboardShortcuts from "scenes/KeyboardShortcuts"; import { DropdownMenu, DropdownMenuItem } from "components/DropdownMenu"; import Flex from "components/Flex"; import Modal from "components/Modal"; import { developers, changelog, githubIssuesUrl, mailToUrl, settings, } from "../../shared/utils/routeHelpers"; type Props = { label: React.Node, ui: UiStore, auth: AuthStore, t: TFunction, }; @observer class AccountMenu extends React.Component { @observable keyboardShortcutsOpen: boolean = false; handleLogout = () => { this.props.auth.logout(); }; handleOpenKeyboardShortcuts = () => { this.keyboardShortcutsOpen = true; }; handleCloseKeyboardShortcuts = () => { this.keyboardShortcutsOpen = false; }; render() { const { ui, t } = this.props; return ( <> {t("Settings")} {t("Keyboard shortcuts")} {t("API documentation")}
{t("Changelog")} {t("Send us feedback")} {t("Report a bug")}
{t("Appearance")} {ui.resolvedTheme === "light" ? : } } hover > ui.setTheme("system")} selected={ui.theme === "system"} > {t("System")} ui.setTheme("light")} selected={ui.theme === "light"} > {t("Light")} ui.setTheme("dark")} selected={ui.theme === "dark"} > {t("Dark")}
{t("Log out")}
); } } const ChangeTheme = styled(Flex)` width: 100%; `; export default withTranslation()( inject("ui", "auth")(AccountMenu) );