diff --git a/public/app/core/components/PageHeader/PageHeader.tsx b/public/app/core/components/PageHeader/PageHeader.tsx index f2c6d3f1bad..a7eda15bc22 100644 --- a/public/app/core/components/PageHeader/PageHeader.tsx +++ b/public/app/core/components/PageHeader/PageHeader.tsx @@ -1,4 +1,5 @@ import React from 'react'; +import { observer } from 'mobx-react'; import { NavModel, NavModelItem } from '../../nav_model_srv'; import classNames from 'classnames'; import appEvents from 'app/core/app_events'; @@ -7,49 +8,7 @@ export interface IProps { model: NavModel; } -function TabItem(tab: NavModelItem) { - if (tab.hideFromTabs) { - return null; - } - - let tabClasses = classNames({ - 'gf-tabs-link': true, - active: tab.active, - }); - - return ( -
  • - - - {tab.text} - -
  • - ); -} - -function SelectOption(navItem: NavModelItem) { - if (navItem.hideFromTabs) { - // TODO: Rename hideFromTabs => hideFromNav - return null; - } - - return ( - - ); -} - -function Navigation({ main }: { main: NavModelItem }) { - return ( - - ); -} - -function SelectNav({ main, customCss }: { main: NavModelItem; customCss: string }) { +const SelectNav = observer(({ main, customCss }: { main: NavModelItem; customCss: string }) => { const defaultSelectedItem = main.children.find(navItem => { return navItem.active === true; }); @@ -66,20 +25,62 @@ function SelectNav({ main, customCss }: { main: NavModelItem; customCss: string {/* Label to make it clickable */} ); -} +}); -function Tabs({ main, customCss }: { main: NavModelItem; customCss: string }) { - return ; -} +const Tabs = observer(({ main, customCss }: { main: NavModelItem; customCss: string }) => { + return ( + + ); +}); + +const Navigation = ({ main }: { main: NavModelItem }) => { + return ( + + ); +}; + +@observer export default class PageHeader extends React.Component { constructor(props) { super(props); @@ -140,7 +141,6 @@ export default class PageHeader extends React.Component { if (!model) { return null; } - return (