Skip to content
Snippets Groups Projects
Routes.js 4.44 KiB
Newer Older
Zheng Meyer's avatar
Zheng Meyer committed
import React, { useContext } from "react";
import { Switch, Route, Redirect } from "react-router-dom";
Zheng Meyer's avatar
Zheng Meyer committed
import { Archives } from "../components/archives/Archives";
import ArchiveDetails from "../components/archives/ArchiveDetails";
import { GlobalContext } from "../contexts/GlobalContext";
import QueryCatalogs from "../components/query/QueryCatalogs";
import QueryIVOARegistry from "../components/query/QueryIVOARegistry";
import QueryMultipleArchives from "../components/query/QueryMultipleArchives";
//import QueryMultipleArchives from "../components/query/QueryNico";

Zheng Meyer's avatar
Zheng Meyer committed
import { BrowserRouter as Router } from "react-router-dom";
import NavBar from "../components/NavBar";
import Rucio from "../components/services/Rucio";
import Interactive from "../components/services/Interactive";
import Batch from "../components/services/Batch";
Gareth Hughes's avatar
Gareth Hughes committed
import SubmitJob from "../components/services/SubmitJob";
import MyBasketPage from "../components/basket/MyBasketPage";
import { IVOAContextProvider } from "../contexts/IVOAContext";
import { IDAContext } from "../contexts/IDAContext";
import { BATCHContext } from "../contexts/BATCHContext";
import { AladinSimpleContextProvider } from "../contexts/AladinSimpleContext";
import { AladinAdvancedContextProvider } from "../contexts/AladinAdvancedContext";

import SampPage from '../components/services/samp/SampPage';
import AladinSimplePage from '../components/services/aladin/AladinSimplePage';
import AladinAdvancedPage from '../components/services/aladin/AladinAdvancedPage';
Zheng Meyer's avatar
Zheng Meyer committed

import Jobs from "../components/services/Jobs";
import {createBrowserHistory} from "history"

Zheng Meyer's avatar
Zheng Meyer committed
export default function Routes() {
    const history = createBrowserHistory();
    const { navbar, handleLogin, handleLogout, handleError } = useContext(GlobalContext);
    const { jhubURL } = useContext(IDAContext);

    if (!navbar) return null;
Zheng Meyer's avatar
Zheng Meyer committed

    // nv: if no jhubURL can be loaded then whole website should be blank? Isn't that overkill? commented it out for now
    // if (!jhubURL) return null;

Zheng Meyer's avatar
Zheng Meyer committed
  return (
    <Router basename={navbar.frontend_basename} history={history}>
        <Switch>
            <Route exact path={["/", "/archives"]}>
                <Archives />
            </Route>
            <Route exact path="/rucio">
                <Rucio />
            </Route>
            <Route exact path="/interactive">
                <Interactive />
            </Route>

            <Route exect path="/jobs">
                <Jobs />
            </Route>

            <Route exact path="/batch">
                <Batch />
            </Route>
Gareth Hughes's avatar
Gareth Hughes committed
            <Route exact path="/batch/SubmitJob">
                <SubmitJob />
            </Route>
            <Route exact path="/vo-query">
                <Redirect to="/archives/ivoa/query" />
            </Route>
            <Route exact path="/jhub" render={() => (window.location = {jhubURL})} />
            <Route exact path="/login" component={handleLogin} />
            <Route exact path="/logout" component={handleLogout} />
            <Route exact path="/error" component={handleError} />
            <Route exact path="/archives/:uri" component={ArchiveDetails} />
            /* specific behaviour for IVOA 'archive' to enable a 2-stage query  */
            <Route exact path="/archives/ivoa/query">
                <IVOAContextProvider>
                    <QueryIVOARegistry />
                </IVOAContextProvider>
            </Route>

            /* default 1-stage synchronous query behaviour for most archives */
            <Route exact path={["/archives/:uri/query"]}>
                <QueryCatalogs />
            </Route>
            /* query multiple archives */
            <Route exact path="/query">
                <QueryMultipleArchives />
            <Route exact path="/samp"  >
                <SampPage/>
            </Route>

            <Route exact path="/aladin_simple"  >
                <AladinSimpleContextProvider>
                    <AladinSimplePage/>
                </AladinSimpleContextProvider>
            </Route>
            <Route exact path="/aladin_advanced"  >
                <AladinAdvancedContextProvider>
                    <AladinAdvancedPage/>
                </AladinAdvancedContextProvider>
            </Route>
          <Route exact path="/basket"  >
              <MyBasketPage/>
          </Route>
        </Switch>
Nico Vermaas's avatar
Nico Vermaas committed
      <footer><small>esap-gui version 21 jan 2022 - 10:00</small></footer>
Zheng Meyer's avatar
Zheng Meyer committed
    </Router>
  );
}