From cb0d67acbe8586bbe2866cdfba03b45a6945f2f2 Mon Sep 17 00:00:00 2001 From: Vermaas <vermaas@astron.nl> Date: Tue, 18 Apr 2023 08:51:21 +0200 Subject: [PATCH] renaming stuff preventing initial fetch --- src/components/Main.js | 10 ++-- src/contexts/GlobalStateReducer.js | 8 +-- src/data/FetchADEXData.js | 59 +++++++++++-------- ...DEXBackendsPage.js => BenchmarkingPage.js} | 2 +- src/pages/skyview/SelectCollectionButton.js | 4 ++ .../{FocusProjectPage.js => SkyViewPage.js} | 2 +- 6 files changed, 46 insertions(+), 39 deletions(-) rename src/pages/benchmarking/{ADEXBackendsPage.js => BenchmarkingPage.js} (94%) rename src/pages/skyview/{FocusProjectPage.js => SkyViewPage.js} (94%) diff --git a/src/components/Main.js b/src/components/Main.js index 032cf8f..e647748 100644 --- a/src/components/Main.js +++ b/src/components/Main.js @@ -9,8 +9,8 @@ import { import NavigationBar from './NavigationBar'; import WelcomePage from '../pages/welcome/WelcomePage'; -import ADEXBackendsPage from '../pages/benchmarking/ADEXBackendsPage'; -import FocusProjectPage from '../pages/skyview/FocusProjectPage'; +import BenchmarkingPage from '../pages/benchmarking/BenchmarkingPage'; +import SkyViewPage from '../pages/skyview/SkyViewPage'; import ConfigurationPage from "../pages/configuration/ConfigurationPage"; import FetchADEXData from '../data/FetchADEXData'; import AncillaryPage from "../pages/ancillary/AncillaryPage"; @@ -33,10 +33,10 @@ export default function Main() { <WelcomePage /> </Route> <Route exact path="/benchmarking"> - <ADEXBackendsPage /> + <BenchmarkingPage /> </Route> <Route exact path="/skyview"> - <FocusProjectPage /> + <SkyViewPage /> </Route> <Route exact path="/ancillary"> <AncillaryPage /> @@ -50,7 +50,7 @@ export default function Main() { </Switch> </div> <footer> - <small>version 17 april 2023 - 13:00</small> + <small>version 18 april 2023 - 8:00</small> </footer> </Router> diff --git a/src/contexts/GlobalStateReducer.js b/src/contexts/GlobalStateReducer.js index 2edc180..f87005d 100644 --- a/src/contexts/GlobalStateReducer.js +++ b/src/contexts/GlobalStateReducer.js @@ -34,17 +34,13 @@ export const SHOW_LABELS = 'SHOW_LABELS' export const SET_LABEL_FIELD = 'SET_LABEL_FIELD' export const SET_SIMBAD_ENABLED = 'SET_SIMBAD_ENABLED' -const api_host = - process.env.NODE_ENV === "development" - ? "localhost:8000" - : "sdc.astron.nl"; - const default_adex_backend = process.env.NODE_ENV === "development" ? { "name": "localhost:8000", "type": "primary_dp", "url": "http://localhost:8000", + //"url": "https://sdc-dev.astron.nl", // uncomment if you don't want to run the adex-backend locally } : { "name": "sdc.astron.nl", @@ -68,7 +64,7 @@ export const initialState = { data_limit: 10000, labels_enabled : false, label_field : 'name', - collection : {name: ""} + // collection : {name: ""} } export const reducer = (state, action) => { diff --git a/src/data/FetchADEXData.js b/src/data/FetchADEXData.js index 9c5806f..dc0d136 100644 --- a/src/data/FetchADEXData.js +++ b/src/data/FetchADEXData.js @@ -116,40 +116,47 @@ export default function FetchADEXData(skipAbortController) { } async function fetchSkyviewDataAsync() { + + // only fetch when there is a collection selected to fetch + // (this prevents a fetch during initialisation of the app). + if (my_state.collection === undefined) { + return null + } + let url = constructUrl() - my_dispatch({type: SET_STATUS_ADEX, status_adex: 'fetching'}) - let startTime = new Date() - - try { - const response = await fetch(url, {signal: controller.signal}) - const data = await response.json() - - let results = constructResults(data) - let endTime = new Date() - let timeDiff = endTime - startTime - - my_dispatch({type: SET_FETCHED_ADEX, fetched_adex: results}) - my_dispatch({type: SET_NUMBER_OF_DATAPRODUCTS, number_of_dataproducts: results.length}) - my_dispatch({type: SET_STATUS_ADEX, status_adex: 'fetched (' + timeDiff.toString() + ' ms)'}) - my_dispatch({type: ALADIN_RELOAD, aladin_reload: !my_state.aladin_reload}) - - } catch(error) { - if (error.name === 'AbortError') { - console.log('Fetch was aborted'); - my_dispatch({type: SET_NUMBER_OF_DATAPRODUCTS, number_of_dataproducts: 0}) - my_dispatch({type: SET_STATUS_ADEX, status_adex: 'fetch aborted'}) - } else { - my_dispatch({type: SET_NUMBER_OF_DATAPRODUCTS, number_of_dataproducts: 0}) - my_dispatch({type: SET_STATUS_ADEX, status_adex: 'failed'}) + if (my_state.status_adex !== 'fetching') { + my_dispatch({type: SET_STATUS_ADEX, status_adex: 'fetching'}) + let startTime = new Date() + + try { + const response = await fetch(url, {signal: controller.signal}) + const data = await response.json() + + let results = constructResults(data) + let endTime = new Date() + let timeDiff = endTime - startTime + + my_dispatch({type: SET_FETCHED_ADEX, fetched_adex: results}) + my_dispatch({type: SET_NUMBER_OF_DATAPRODUCTS, number_of_dataproducts: results.length}) + my_dispatch({type: SET_STATUS_ADEX, status_adex: 'fetched (' + timeDiff.toString() + ' ms)'}) + my_dispatch({type: ALADIN_RELOAD, aladin_reload: !my_state.aladin_reload}) + + } catch (error) { + if (error.name === 'AbortError') { + console.log('Fetch was aborted'); + my_dispatch({type: SET_NUMBER_OF_DATAPRODUCTS, number_of_dataproducts: 0}) + my_dispatch({type: SET_STATUS_ADEX, status_adex: 'fetch aborted'}) + } else { + my_dispatch({type: SET_NUMBER_OF_DATAPRODUCTS, number_of_dataproducts: 0}) + my_dispatch({type: SET_STATUS_ADEX, status_adex: 'failed'}) + } } } - } // fetch a single primary dataproduct const fetchPrimaryDP = (url) => { - if (my_state.status_primary !== 'fetching') { my_dispatch({type: SET_STATUS_PRIMARY, status_primary: "fetching"}) diff --git a/src/pages/benchmarking/ADEXBackendsPage.js b/src/pages/benchmarking/BenchmarkingPage.js similarity index 94% rename from src/pages/benchmarking/ADEXBackendsPage.js rename to src/pages/benchmarking/BenchmarkingPage.js index 75df875..e203414 100644 --- a/src/pages/benchmarking/ADEXBackendsPage.js +++ b/src/pages/benchmarking/BenchmarkingPage.js @@ -8,7 +8,7 @@ import LeftPanel from './LeftPanel' import Aladin from './AladinPanel' -export default function ADEXBackendsPage(props) { +export default function BenchmarkingPage(props) { const [ my_state, my_dispatch] = useGlobalReducer() diff --git a/src/pages/skyview/SelectCollectionButton.js b/src/pages/skyview/SelectCollectionButton.js index 2464548..4fd6dbf 100644 --- a/src/pages/skyview/SelectCollectionButton.js +++ b/src/pages/skyview/SelectCollectionButton.js @@ -17,6 +17,10 @@ export default function SelectCollectionButton() { my_dispatch({type: RELOAD_ADEX, reload_adex: !my_state.reload_adex}) } + if (!my_state.collection) { + return null + } + let renderDropdownItems if (my_state.backend_config) { if (my_state.backend_config.config) { diff --git a/src/pages/skyview/FocusProjectPage.js b/src/pages/skyview/SkyViewPage.js similarity index 94% rename from src/pages/skyview/FocusProjectPage.js rename to src/pages/skyview/SkyViewPage.js index a52ecb5..af64547 100644 --- a/src/pages/skyview/FocusProjectPage.js +++ b/src/pages/skyview/SkyViewPage.js @@ -8,7 +8,7 @@ import LeftPanel from './LeftPanel' import Aladin from './AladinPanel' -export default function FocusProjectPage(props) { +export default function SkyViewPage(props) { const [ my_state, my_dispatch] = useGlobalReducer() -- GitLab