lbry-desktop/ui/component/common/header-menu-link.jsx

48 lines
1.1 KiB
React
Raw Normal View History

// @flow
import * as PAGES from 'constants/pages';
import React from 'react';
import { Link, useHistory } from 'react-router-dom';
import { MenuLink, MenuItem } from '@reach/menu-button';
import MuiMenuItem from '@mui/material/MenuItem';
import MuiLink from '@mui/material/Link';
import Icon from 'component/common/icon';
type Props = {
icon: string,
name: string,
page: string,
requiresAuth?: boolean,
useMui?: boolean,
};
export default function HeaderMenuLink(props: Props) {
const { icon, name, page, requiresAuth, useMui } = props;
const { push } = useHistory();
if (useMui) {
return (
<MuiMenuItem className="menu__link" component={MuiLink} href={`/$/${page}`}>
<Icon aria-hidden icon={icon} />
{name}
</MuiMenuItem>
);
}
if (requiresAuth) {
return (
<MenuItem className="menu__link" onSelect={() => push(`/$/${PAGES.AUTH}`)}>
<Icon aria-hidden icon={icon} />
{name}
</MenuItem>
);
}
return (
<MenuLink className="menu__link" as={Link} to={`/$/${page}`}>
<Icon aria-hidden icon={icon} />
{name}
</MenuLink>
);
}