From b3a438e93b47f03474f3008e5901dbb1758424a3 Mon Sep 17 00:00:00 2001 From: Daniel Hatton Date: Fri, 9 May 2025 11:00:27 +0100 Subject: [PATCH 1/4] Check for recipes in machine configuration when deciding whether to redirect to processing parameters page --- src/routes/Session.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/routes/Session.tsx b/src/routes/Session.tsx index 3b13c49..4e7b1b7 100644 --- a/src/routes/Session.tsx +++ b/src/routes/Session.tsx @@ -257,7 +257,9 @@ const Session = () => { setSelectedDirectory(mcfg["data_directories"][0]); } - useEffect(() => {getSessionProcessingParameterData(sessid).then((params) => {if(params === null) navigate(`/new_session/parameters/${sessid}`);})}) + const recipesDefined = machineConfig ? machineConfig.recipes ? Object.keys(machineConfig.recipes).length !== 0: false: false; + + useEffect(() => {getSessionProcessingParameterData(sessid).then((params) => {if(params === null && recipesDefined) navigate(`/new_session/parameters/${sessid}`);})}) useEffect(() => {getMachineConfigData().then((mcfg) => handleMachineConfig(mcfg))}, []); From c06716ed62cab5331af31431cf4b60670ec84e1a Mon Sep 17 00:00:00 2001 From: Daniel Hatton Date: Fri, 9 May 2025 11:44:05 +0100 Subject: [PATCH 2/4] Skip processing parameters screen if no recipes are defined in machine configuration --- src/routes/MultigridSetup.tsx | 4 +++- src/routes/SessionSetup.tsx | 1 - 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/routes/MultigridSetup.tsx b/src/routes/MultigridSetup.tsx index 4ec0eff..c8063b5 100644 --- a/src/routes/MultigridSetup.tsx +++ b/src/routes/MultigridSetup.tsx @@ -49,6 +49,8 @@ const MultigridSetup = () => { const handleDirectorySelection = (e: React.ChangeEvent) => setSelectedDirectory(e.target.value); + const recipesDefined = machineConfig ? machineConfig.recipes ? Object.keys(machineConfig.recipes).length !== 0: false: false; + const handleSelection = () => { if (typeof sessid !== "undefined"){ setupMultigridWatcher( @@ -140,7 +142,7 @@ const MultigridSetup = () => { w={{ base: "100%", md: "19.6%" }} _hover={{ textDecor: "none" }} as={LinkRouter} - to={`../new_session/parameters/${sessid}`} + to={recipesDefined ? `../new_session/parameters/${sessid}`: `../sessions/${sessid}`} > { ? 3 : 0 : 3; - let navigate = useNavigate(); return (
From 17daa8183a97dc2339a4cada40c3cead3bc90249 Mon Sep 17 00:00:00 2001 From: Daniel Hatton Date: Fri, 9 May 2025 14:20:08 +0100 Subject: [PATCH 3/4] Start multigrid watcher from directory selection page if we are skipping the processing parameters page --- src/routes/MultigridSetup.tsx | 3 ++- src/routes/SessionSetup.tsx | 5 +---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/src/routes/MultigridSetup.tsx b/src/routes/MultigridSetup.tsx index c8063b5..b68e5ed 100644 --- a/src/routes/MultigridSetup.tsx +++ b/src/routes/MultigridSetup.tsx @@ -16,7 +16,7 @@ import { ArrowForwardIcon } from "@chakra-ui/icons"; import { Link as LinkRouter, useLoaderData, useParams } from "react-router-dom"; import { components } from "schema/main"; -import { setupMultigridWatcher } from "loaders/multigridSetup"; +import { setupMultigridWatcher, startMultigridWatcher } from "loaders/multigridSetup"; import { getSessionData } from "loaders/session_clients"; import { SetupStepper } from "components/setupStepper"; import React, { useEffect } from "react"; @@ -60,6 +60,7 @@ const MultigridSetup = () => { } as MultigridWatcherSpec, parseInt(sessid), ); + if(!recipesDefined) startMultigridWatcher(parseInt(sessid)); } }; diff --git a/src/routes/SessionSetup.tsx b/src/routes/SessionSetup.tsx index 4327cec..bfdb916 100644 --- a/src/routes/SessionSetup.tsx +++ b/src/routes/SessionSetup.tsx @@ -1,9 +1,6 @@ import { Button, Box, - FormControl, - FormLabel, - Input, RadioGroup, Radio, Stack, @@ -12,7 +9,7 @@ import { Heading, } from "@chakra-ui/react"; import { getForm } from "components/forms"; -import { Link as LinkRouter, useParams, useLoaderData, useNavigate } from "react-router-dom"; +import { Link as LinkRouter, useParams, useLoaderData } from "react-router-dom"; import { SetupStepper } from "components/setupStepper"; import { components } from "schema/main"; import { getProcessingParameterData } from "loaders/processingParameters"; From 817fb8816ebe7040ed394c4da7764903b482b500 Mon Sep 17 00:00:00 2001 From: Daniel Hatton Date: Tue, 13 May 2025 13:12:49 +0100 Subject: [PATCH 4/4] Await API calls inside an async function --- src/routes/MultigridSetup.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/routes/MultigridSetup.tsx b/src/routes/MultigridSetup.tsx index b68e5ed..3ed8b83 100644 --- a/src/routes/MultigridSetup.tsx +++ b/src/routes/MultigridSetup.tsx @@ -51,16 +51,16 @@ const MultigridSetup = () => { const recipesDefined = machineConfig ? machineConfig.recipes ? Object.keys(machineConfig.recipes).length !== 0: false: false; - const handleSelection = () => { + const handleSelection = async () => { if (typeof sessid !== "undefined"){ - setupMultigridWatcher( + await setupMultigridWatcher( { source: selectedDirectory, skip_existing_processing: skipExistingProcessing, } as MultigridWatcherSpec, parseInt(sessid), ); - if(!recipesDefined) startMultigridWatcher(parseInt(sessid)); + if(!recipesDefined) await startMultigridWatcher(parseInt(sessid)); } };