@@ -5,13 +5,15 @@ import { ModelConfig } from "@/dto/FormConfig";
55import ModelInputs from "@/components/ModelInputs" ;
66import Results from "./Results" ;
77import { useAvailableModels } from "@/contexts/ModelContext" ;
8- import { useSimulation } from "@/contexts/SimulationContext" ;
98import SaveResult from "@/components/SaveResult" ;
109import { SimulationResults } from "@/dto/SimulationResults" ;
1110import ModelDescription from "@/components/ModelDescription.tsx" ;
1211import styled from "styled-components" ;
1312import NoResults from "@/components/Simulation/NoResults.tsx" ;
1413import Working from "@/components/Simulation/Working.tsx" ;
14+ import { useMutation , useQuery } from "@tanstack/react-query" ;
15+ import { getResultForSimulation , startSimulation } from "@/api/api.tsx" ;
16+ import { Divider } from "@equinor/eds-core-react" ;
1517
1618const mediaLarge = "@media (min-width: 768px)" ;
1719
@@ -39,7 +41,16 @@ const Main = styled.div`
3941const Models : React . FC = ( ) => {
4042 const [ currentModel , setCurrentModel ] = useState < ModelConfig | undefined > ( undefined ) ;
4143 const { models } = useAvailableModels ( ) ;
42- const { setModelInput, simulationResults, loading, modelInput } = useSimulation ( ) ;
44+
45+ const { data : simulationId , mutate : setModelInput } = useMutation ( {
46+ mutationFn : startSimulation ,
47+ } ) ;
48+
49+ const { data : simulationResults , isLoading } = useQuery ( {
50+ queryKey : [ "simulation" , startSimulation ] ,
51+ queryFn : ( ) => getResultForSimulation ( simulationId ! ) ,
52+ enabled : simulationId !== undefined ,
53+ } ) ;
4354
4455 // Set the defaulted selected model to the first without access error.
4556 useEffect ( ( ) => {
@@ -49,7 +60,7 @@ const Models: React.FC = () => {
4960 } , [ models , currentModel , setCurrentModel ] ) ;
5061
5162 let mainWidget : ReactNode | null = null ;
52- if ( loading ) {
63+ if ( isLoading ) {
5364 mainWidget = < Working /> ;
5465 } else if ( simulationResults === undefined ) {
5566 mainWidget = < NoResults /> ;
@@ -76,9 +87,10 @@ const Models: React.FC = () => {
7687 ) ) }
7788 { simulationResults && (
7889 < >
90+ < Divider />
7991 < SaveResult
8092 props = { {
81- parameters : modelInput ? .parameters || { } ,
93+ parameters : simulationResults . modelInput . parameters || { } ,
8294 selectedModel : currentModel ?. displayName || "" ,
8395 result : simulationResults ?? ( { } as SimulationResults ) ,
8496 } }
0 commit comments