import { groupBy } from "lodash"; import { observer } from "mobx-react"; import { BackIcon } from "outline-icons"; import * as React from "react"; import { useTranslation } from "react-i18next"; import { useHistory } from "react-router-dom"; import styled from "styled-components"; import Flex from "~/components/Flex"; import Scrollable from "~/components/Scrollable"; import useSettingsConfig from "~/hooks/useSettingsConfig"; import Desktop from "~/utils/Desktop"; import isCloudHosted from "~/utils/isCloudHosted"; import Sidebar from "./Sidebar"; import Header from "./components/Header"; import HeaderButton from "./components/HeaderButton"; import HistoryNavigation from "./components/HistoryNavigation"; import Section from "./components/Section"; import SidebarLink from "./components/SidebarLink"; import Version from "./components/Version"; function SettingsSidebar() { const { t } = useTranslation(); const history = useHistory(); const configs = useSettingsConfig(); const groupedConfig = groupBy(configs, "group"); const returnToApp = React.useCallback(() => { history.push("/home"); }, [history]); return ( } onClick={returnToApp} minHeight={Desktop.hasInsetTitlebar() ? undefined : 48} /> {Object.keys(groupedConfig).map((header) => (
{groupedConfig[header].map((item) => ( } label={item.name} /> ))}
))} {!isCloudHosted && (
)}
); } const StyledBackIcon = styled(BackIcon)` margin-left: 4px; `; export default observer(SettingsSidebar);