1 // Copyright (C) The Arvados Authors. All rights reserved.
3 // SPDX-License-Identifier: AGPL-3.0
5 import React from "react";
6 import { MenuItem, Typography } from "@mui/material";
7 import { DropdownMenu } from "components/dropdown-menu/dropdown-menu";
8 import { ImportContactsIcon, HelpIcon } from "components/icon/icon";
9 import { ArvadosTheme } from 'common/custom-theme';
10 import { CustomStyleRulesCallback } from 'common/custom-theme';
11 import { WithStyles } from '@mui/styles';
12 import withStyles from '@mui/styles/withStyles';
13 import { RootState } from "store/store";
14 import { compose } from "redux";
15 import { connect } from "react-redux";
17 type CssRules = 'link' | 'icon' | 'title' | 'linkTitle';
19 const styles: CustomStyleRulesCallback<CssRules> = (theme: ArvadosTheme) => ({
21 textDecoration: 'none',
31 paddingBottom: theme.spacing(0.5),
32 paddingLeft: theme.spacing(2),
33 paddingTop: theme.spacing(0.5),
37 marginLeft: theme.spacing(1)
43 title: "Tutorials and User guide",
44 link: "http://doc.arvados.org/user/",
47 title: "API Reference",
48 link: "http://doc.arvados.org/api/",
51 title: "SDK Reference",
52 link: "http://doc.arvados.org/sdk/"
56 interface HelpMenuProps {
60 const mapStateToProps = ({ router }: RootState) => ({
61 currentRoute: router.location ? router.location.pathname : '',
64 export const HelpMenu = compose(
65 connect(mapStateToProps),
67 ({ classes, currentRoute }: HelpMenuProps & WithStyles<CssRules>) =>
73 <MenuItem disabled>Help</MenuItem>
76 <MenuItem key={link.title}>
77 <a href={link.link} target="_blank" rel="noopener noreferrer" className={classes.link}>
78 <ImportContactsIcon className={classes.icon} />
79 <Typography className={classes.linkTitle}>{link.title}</Typography>