From 64bb33d31e1f3837aa3ef4bfb047b40ab1d3a1be Mon Sep 17 00:00:00 2001 From: Rares Mardare Date: Fri, 19 Aug 2022 12:41:00 +0300 Subject: [PATCH] pass backendLicense to NavBarSubtitle --- grafana-plugin/src/GrafanaPluginRootPage.tsx | 3 ++ .../src/components/NavBar/NavBarSubtitle.tsx | 28 +++++++++---------- grafana-plugin/src/utils/hooks.tsx | 14 ++++++++-- 3 files changed, 28 insertions(+), 17 deletions(-) diff --git a/grafana-plugin/src/GrafanaPluginRootPage.tsx b/grafana-plugin/src/GrafanaPluginRootPage.tsx index 1115e2e5..870c1cae 100644 --- a/grafana-plugin/src/GrafanaPluginRootPage.tsx +++ b/grafana-plugin/src/GrafanaPluginRootPage.tsx @@ -91,6 +91,7 @@ export const Root = observer((props: AppRootProps) => { const pathWithoutLeadingSlash = path.replace(/^\//, ''); const store = useStore(); + const { backendLicense } = store; useEffect(() => { store.updateBasicData(); @@ -120,11 +121,13 @@ export const Root = observer((props: AppRootProps) => { grafanaUser: window.grafanaBootData.user, enableLiveSettings: store.hasFeature(AppFeature.LiveSettings), enableCloudPage: store.hasFeature(AppFeature.CloudConnection), + backendLicense, }), [meta, pathWithoutLeadingSlash, page, store.features] ) ); useEffect(() => { + /* @ts-ignore */ onNavChanged(navModel); }, [navModel, onNavChanged]); diff --git a/grafana-plugin/src/components/NavBar/NavBarSubtitle.tsx b/grafana-plugin/src/components/NavBar/NavBarSubtitle.tsx index 083ecd3b..e9fe292e 100644 --- a/grafana-plugin/src/components/NavBar/NavBarSubtitle.tsx +++ b/grafana-plugin/src/components/NavBar/NavBarSubtitle.tsx @@ -4,29 +4,27 @@ import { Card } from '@grafana/ui'; import cn from 'classnames/bind'; import gitHubStarSVG from 'assets/img/github_star.svg'; -import { useStore } from 'state/useStore'; import { APP_SUBTITLE, GRAFANA_LICENSE_OSS } from 'utils/consts'; import styles from './NavBarSubtitle.module.css'; const cx = cn.bind(styles); -function NavBarSubtitle() { - const store = useStore(); - if (store.backendLicense === GRAFANA_LICENSE_OSS) { - return APP_SUBTITLE; +function NavBarSubtitle({ backendLicense }: { backendLicense: string }) { + if (backendLicense === GRAFANA_LICENSE_OSS) { + return ( +
+ {APP_SUBTITLE} + + + Star us on GitHub + + +
+ ); } - return ( -
- {APP_SUBTITLE} - - - Star us on GitHub - - -
- ); + return <>{APP_SUBTITLE}; } export default NavBarSubtitle; diff --git a/grafana-plugin/src/utils/hooks.tsx b/grafana-plugin/src/utils/hooks.tsx index 1757dc2a..93052831 100644 --- a/grafana-plugin/src/utils/hooks.tsx +++ b/grafana-plugin/src/utils/hooks.tsx @@ -18,6 +18,7 @@ type Args = { }; enableLiveSettings: boolean; enableCloudPage: boolean; + backendLicense: string; }; export function useForceUpdate() { @@ -25,7 +26,16 @@ export function useForceUpdate() { return () => setValue((value) => value + 1); } -export function useNavModel({ meta, pages, path, page, grafanaUser, enableLiveSettings, enableCloudPage }: Args) { +export function useNavModel({ + meta, + pages, + path, + page, + grafanaUser, + enableLiveSettings, + enableCloudPage, + backendLicense, +}: Args) { return useMemo(() => { const tabs: NavModelItem[] = []; @@ -55,7 +65,7 @@ export function useNavModel({ meta, pages, path, page, grafanaUser, enableLiveSe const node = { text: APP_TITLE, img: meta.info.logos.large, - subTitle: , + subTitle: , url: path, children: tabs, };