From e836e7dd4ed5e9fa60e949d159100040b22a8f48 Mon Sep 17 00:00:00 2001
From: Arne Rief <riearn@proton.me>
Date: Mon, 22 Dec 2025 21:20:39 +0100
Subject: Movement simulator for all and single robot, project v1 ready

---
 frontend/src/components/SimulationActions.tsx | 35 ++++++++++++++++-----------
 1 file changed, 21 insertions(+), 14 deletions(-)

(limited to 'frontend/src/components/SimulationActions.tsx')

diff --git a/frontend/src/components/SimulationActions.tsx b/frontend/src/components/SimulationActions.tsx
index c91b933..0bfca3f 100644
--- a/frontend/src/components/SimulationActions.tsx
+++ b/frontend/src/components/SimulationActions.tsx
@@ -1,19 +1,24 @@
-import { useState, type Dispatch, type SetStateAction } from "react";
+import { type Dispatch, type SetStateAction } from "react";
 import type { ErrorResponse } from "../types/error";
+import type { SimulationResponse } from "../types/robot";
 
 type Props = {
+    activeSimulation: boolean;
     apiUrl: string;
     token: string | null;
+    setActiveSimulation: Dispatch<SetStateAction<boolean>>;
     setErrorMessage: Dispatch<SetStateAction<string>>;
 };
 
-function SimulationActions({ apiUrl, token, setErrorMessage }: Props) {
-    const [isSimulationActive, setIsSimulationActive] =
-        useState<boolean>(false);
-
-    // TODO type responses
+function SimulationActions({
+    activeSimulation,
+    apiUrl,
+    token,
+    setActiveSimulation,
+    setErrorMessage,
+}: Props) {
     async function handleStartAllRobots() {
-        setIsSimulationActive(true);
+        setActiveSimulation(true);
 
         try {
             const response = await fetch(`${apiUrl}/robots/move`, {
@@ -31,7 +36,8 @@ function SimulationActions({ apiUrl, token, setErrorMessage }: Props) {
                 );
             }
 
-            console.log("All robots set moving.");
+            const data: SimulationResponse = await response.json();
+            console.log(data.message);
         } catch (error) {
             console.error("Error starting robots:", error);
 
@@ -41,12 +47,12 @@ function SimulationActions({ apiUrl, token, setErrorMessage }: Props) {
                 setErrorMessage("An unexpected error occurred.");
             }
 
-            setIsSimulationActive(false);
+            setActiveSimulation(false);
         }
     }
 
     async function handleStopAllRobots() {
-        setIsSimulationActive(false);
+        setActiveSimulation(false);
 
         try {
             const response = await fetch(`${apiUrl}/robots/stop`, {
@@ -64,7 +70,8 @@ function SimulationActions({ apiUrl, token, setErrorMessage }: Props) {
                 );
             }
 
-            console.log("All robots set idle.");
+            const data: SimulationResponse = await response.json();
+            console.log(data.message);
         } catch (error) {
             console.error("Error stopping robots:", error);
 
@@ -74,7 +81,7 @@ function SimulationActions({ apiUrl, token, setErrorMessage }: Props) {
                 setErrorMessage("An unexpected error occurred.");
             }
 
-            setIsSimulationActive(true);
+            setActiveSimulation(true);
         }
     }
 
@@ -83,7 +90,7 @@ function SimulationActions({ apiUrl, token, setErrorMessage }: Props) {
             <button
                 className="btn btn-start"
                 onClick={handleStartAllRobots}
-                disabled={isSimulationActive}
+                disabled={activeSimulation}
             >
                 Start simulation
             </button>
@@ -91,7 +98,7 @@ function SimulationActions({ apiUrl, token, setErrorMessage }: Props) {
             <button
                 className="btn btn-stop"
                 onClick={handleStopAllRobots}
-                disabled={!isSimulationActive}
+                disabled={!activeSimulation}
             >
                 Stop simulation
             </button>
-- 
cgit v1.2.3

