Skip to content
Snippets Groups Projects
Routes.js 4.04 KiB
Newer Older
Zheng Meyer's avatar
Zheng Meyer committed
import React, { useContext } from "react";
import { Route, Switch } from "react-router-dom";
Klaas Kliffen's avatar
Klaas Kliffen committed
import { BrowserRouter as Router } from "react-router-dom";
Zheng Meyer's avatar
Zheng Meyer committed
import ArchiveDetails from "../components/archives/ArchiveDetails";
import { Archives } from "../components/archives/Archives";
Klaas Kliffen's avatar
Klaas Kliffen committed
import MyBasketPage from "../components/basket/MyBasketPage";
import NavBar from "../components/NavBar";
Zheng Meyer's avatar
Zheng Meyer committed
import QueryCatalogs from "../components/query/QueryCatalogs";
import QueryIVOARegistry from "../components/query/QueryIVOARegistry";
import QueryMultipleArchives from "../components/query/QueryMultipleArchives";
Klaas Kliffen's avatar
Klaas Kliffen committed
import AladinAdvancedPage from '../components/services/aladin/AladinAdvancedPage';
import AladinSimplePage from '../components/services/aladin/AladinSimplePage';
import Batch from "../components/services/Batch";
import Interactive from "../components/services/Interactive";
Klaas Kliffen's avatar
Klaas Kliffen committed
import Jobs from "../components/services/Jobs";
import Rucio from "../components/services/Rucio";
Klaas Kliffen's avatar
Klaas Kliffen committed
import SampPage from '../components/services/samp/SampPage';
Gareth Hughes's avatar
Gareth Hughes committed
import SubmitJob from "../components/services/SubmitJob";
import { AladinAdvancedContextProvider } from "../contexts/AladinAdvancedContext";
import { AladinSimpleContextProvider } from "../contexts/AladinSimpleContext";
Klaas Kliffen's avatar
Klaas Kliffen committed
import { GlobalContext } from "../contexts/GlobalContext";
import { IVOAContextProvider } from "../contexts/IVOAContext";
import { COMMIT_DATE, COMMIT_URL } from "../utils/version";

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

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

Klaas Kliffen's avatar
Klaas Kliffen committed
        <Router basename={navbar.frontend_basename}>

            <NavBar />
            <Switch>
                <Route exact path={["/", "/archives"]}>
                    <Archives />
                </Route>
                <Route exact path="/rucio">
                    <Rucio />
                </Route>
                <Route exact path="/interactive">
                    <Interactive />
                </Route>

Klaas Kliffen's avatar
Klaas Kliffen committed
                <Route exact path="/jobs">
                    <Jobs />
                </Route>

                <Route exact path="/batch">
                    <Batch />
                </Route>

                <Route exact path="/batch/SubmitJob">
                    <SubmitJob />
                </Route>

                <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>

                <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>

            <footer><small><a href={COMMIT_URL}>ESAP-GUI version {COMMIT_DATE}</a></small></footer>
        </Router>
    );
Zheng Meyer's avatar
Zheng Meyer committed
}