From 0f67f06d9e73fade284c8fe7381710b52c64170b Mon Sep 17 00:00:00 2001
From: meyer <meyer@astron.nl>
Date: Mon, 30 Nov 2020 12:56:44 +0100
Subject: [PATCH] move navbar outside of query schema config files

---
 src/components/NavBar.js      |  6 ++++--
 src/contexts/GlobalContext.js | 13 ++++++++++++-
 src/routes/Routes.js          |  9 +++------
 3 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/src/components/NavBar.js b/src/components/NavBar.js
index 10b442c..35e23b0 100644
--- a/src/components/NavBar.js
+++ b/src/components/NavBar.js
@@ -2,14 +2,16 @@ import React, { useContext } from "react";
 import { Navbar, Nav } from "react-bootstrap";
 import { NavLink } from "react-router-dom";
 import AuthControl from "./auth/authControl";
-
 import { QueryContext } from "../contexts/QueryContext";
+import { GlobalContext } from "../contexts/GlobalContext";
 
 export default function NavBar() {
+  const { navbar } = useContext(GlobalContext);
   const { config } = useContext(QueryContext);
+  if (!navbar) return null;
   if (!config) return null;
   // construct the navigation bar based on the configuration
-  const navlist = config.navbar;
+  const navlist = navbar.navbar;
 
   return (
     <Navbar bg="dark" variant="dark">
diff --git a/src/contexts/GlobalContext.js b/src/contexts/GlobalContext.js
index c66815d..9525edf 100644
--- a/src/contexts/GlobalContext.js
+++ b/src/contexts/GlobalContext.js
@@ -9,18 +9,28 @@ export function GlobalContextProvider({ children }) {
   
   const api_host =
     process.env.NODE_ENV === "development"
-      ? "https://sdc.astron.nl:5555/esap-api/"
+      ? "http://localhost:5555/esap-api/"
       : "https://sdc.astron.nl:5555/esap-api/";
   // "https://sdc.astron.nl:5555/esap-api/"
   // "http://localhost:5555/esap-api/"
 
   const [archives, setArchives] = useState();
+  const [navbar, setNavbar] = useState();
   useEffect(() => {
     axios
       .get(api_host + "query/archives-uri")
       .then((response) => setArchives(response.data.results));
   }, [api_host]);
 
+  useEffect(() => {
+    axios
+    .get(api_host + "query/configuration?name=navbar")
+      .then((response) => {
+        console.log("navbar response", response.data.configuration);
+        setNavbar(response.data.configuration);
+      });
+  }, [api_host]);
+
   // !!!!! Still need to look at sessionid and stuff
   const [sessionid, setSessionid] = useState(getCookie("sessionid"));
   console.log("waah", sessionid, getCookie("sessionid"), document.cookie);
@@ -62,6 +72,7 @@ export function GlobalContextProvider({ children }) {
         isAuthenticated,
         sessionid,
         archives,
+        navbar,
         handleLogin,
         handleLogout,
         handleError,
diff --git a/src/routes/Routes.js b/src/routes/Routes.js
index afb8d4f..8166946 100644
--- a/src/routes/Routes.js
+++ b/src/routes/Routes.js
@@ -7,22 +7,19 @@ import QueryCatalogs from "../components/query/QueryCatalogs";
 import QueryIVOARegistry from "../components/query/QueryIVOARegistry";
 import { BrowserRouter as Router } from "react-router-dom";
 import NavBar from "../components/NavBar";
-import { QueryContext } from "../contexts/QueryContext";
 import Rucio from "../components/Rucio";
 import Interactive from "../components/Interactive";
 import { IVOAContextProvider } from "../contexts/IVOAContext";
 import { IDAContext } from "../contexts/IDAContext";
 
 export default function Routes() {
-  const { handleLogin, handleLogout, handleError } = useContext(GlobalContext);
-  const { config } = useContext(QueryContext);
+  const { navbar, handleLogin, handleLogout, handleError } = useContext(GlobalContext);
   const { jhubURL } = useContext(IDAContext);
-  if (!config) return null;
+  if (!navbar) return null;
   if (!jhubURL) return null;
-  console.log(jhubURL);
 
   return (
-    <Router basename={config.frontend_basename}>
+    <Router basename={navbar.frontend_basename}>
       <NavBar />
       <Switch>
         <Route exact path={["/", "/archives"]}>
-- 
GitLab