diff --git a/web/src/shared/components/Header/NavBar.tsx b/web/src/shared/components/Header/NavBar.tsx index 06128d270..c1f730220 100644 --- a/web/src/shared/components/Header/NavBar.tsx +++ b/web/src/shared/components/Header/NavBar.tsx @@ -1,5 +1,5 @@ import * as React from 'react' -import { Link } from 'react-router-dom' +import { Link, LinkProps } from 'react-router-dom' import { Dropdown, Menu, Popup } from 'semantic-ui-react' import { BillingApi } from '../../../sm-api' @@ -55,16 +55,26 @@ interface MenuItem { url: string icon: JSX.Element submenu?: MenuItem[] + reloadDocument?: boolean } interface MenuItemProps { index: number item: MenuItem } +// A link component that reloads the document when clicked +// This is used for the graphiql link which doesn't render +// properly without a reload +const ReloadingLink = (props: LinkProps) => { + return +} + const MenuItem: React.FC = ({ index, item }) => { const theme = React.useContext(ThemeContext) const isDarkMode = theme.theme === 'dark-mode' + const MenuLinkComponent = item.reloadDocument ? ReloadingLink : Link + const dropdown = (item: MenuItem) => ( @@ -72,7 +82,7 @@ const MenuItem: React.FC = ({ index, item }) => { item.submenu.map((subitem, subindex) => ( @@ -105,7 +115,7 @@ const MenuItem: React.FC = ({ index, item }) => { return item.submenu ? ( {popup(dropdown(item), item.icon)} ) : ( - + {popup(item.title, item.icon)} ) @@ -141,6 +151,7 @@ const NavBar = () => { { title: 'GraphQL', url: '/graphql', + reloadDocument: true, icon: , }, InsightsPages,