diff --git a/src/pages/GesturePage/GesturePage.tsx b/src/pages/GesturePage/GesturePage.tsx index acebde3..5a498c2 100644 --- a/src/pages/GesturePage/GesturePage.tsx +++ b/src/pages/GesturePage/GesturePage.tsx @@ -7,45 +7,60 @@ import { useState } from 'react' export default function GesturePage() { const [tags, setTags] = useState([]) - function getTags(){ - fetch( - "http://localhost:8000/robot/get_available_gesture_tags", - { - method: "GET" - } - ).then((res) => { - if (!res.ok) throw new Error("Failed communicating with the backend.") - res.json().then((jsonRes) => setTags(jsonRes["tags"])) - - }).catch(() => console.log("Failed to send program to the backend.")); + const [selectedTag, setSelectedTag] = useState(""); + + async function getTags() { + try { + const res = await fetch("http://localhost:8000/robot/get_available_gesture_tags"); + if (!res.ok) throw new Error("Failed communicating with the backend."); + const jsonRes = await res.json(); + setTags(jsonRes["tags"]); + } catch (err) { + console.error("Failed to fetch tags:", err); + } } - const gesture = {endpoint: "actuate/gesture/tag", data: "happy"} - function doGesture(){ - fetch( - "http://localhost:8000/robot/command", - { - method: "POST", - headers: {"Content-Type": "application/json"}, - body: JSON.stringify(gesture), + async function doGesture() { + if (!selectedTag) { + alert("Please select a gesture first."); + return; + } + + const gesture = { endpoint: "actuate/gesture/tag", data: selectedTag }; + + try { + const res = await fetch("http://localhost:8000/robot/command", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify(gesture), + }); + if (!res.ok) throw new Error("Failed communicating with the backend."); + console.log(`Successfully sent gesture '${selectedTag}' to the backend.`); + } catch (err) { + console.error("Failed to send gesture command:", err); } - ).then((res) => { - if (!res.ok) throw new Error("Failed communicating with the backend.") - console.log("Successfully sent the gesture command to the backend."); - }).catch(() => console.log("Failed to send gesture command to the backend.")); } return ( -