From f9e99cff850a1d44c1873e86532d39823d7ac467 Mon Sep 17 00:00:00 2001
From: Kirill Bolotov <k.y.bolotov@gmail.com>
Date: Thu, 3 Apr 2025 15:54:28 +0700
Subject: [PATCH] Added fetch of equipments. Fixed format of equipments for
 exercise creation

---
 package.json                                  |  2 +-
 .../pages/exercise/ExerciseCreationModal.jsx  | 21 +++++++++++++++++--
 2 files changed, 20 insertions(+), 3 deletions(-)

diff --git a/package.json b/package.json
index dc1873d..f3d2e72 100644
--- a/package.json
+++ b/package.json
@@ -1,7 +1,7 @@
 {
     "name": "aqua",
     "private": true,
-    "version": "5.0.1",
+    "version": "5.0.8",
     "type": "module",
     "scripts": {
         "dev": "vite",
diff --git a/src/components/pages/exercise/ExerciseCreationModal.jsx b/src/components/pages/exercise/ExerciseCreationModal.jsx
index c753123..4533756 100644
--- a/src/components/pages/exercise/ExerciseCreationModal.jsx
+++ b/src/components/pages/exercise/ExerciseCreationModal.jsx
@@ -19,9 +19,9 @@ import { useNavigate } from 'react-router-dom';
 import * as backendUrl from 'services/backendUrl';
 import styled from 'styled-components';
 
-import { equipmentList } from 'data/mockEquipments';
 import { metricsList } from 'data/mockMetrics';
 import { parametersList } from 'data/mockParameters';
+import { useImmer } from 'use-immer';
 import { displaySnackbar } from 'utils/snackbar';
 
 const ITEM_HEIGHT = 48;
@@ -45,6 +45,7 @@ export default function ExerciseCreationModal({ isOpenModal, setIsOpenModal }) {
     const navigate = useNavigate();
     const axiosPrivate = useAxiosPrivate();
     const [open, setOpen] = useState(false);
+    const [equipmentList, setEquipmentList] = useImmer([]);
     const [exerciseName, setExerciseName] = useState('');
     const [metricsMetaInfo, setMetricsMetaInfo] = useState([]);
     const [parametersMetaInfo, setParametersMetaInfo] = useState([]);
@@ -55,6 +56,7 @@ export default function ExerciseCreationModal({ isOpenModal, setIsOpenModal }) {
     const defaultTimeoutMsec = 2500;
 
     const handleOpen = () => setOpen(true);
+
     const handleClose = () => {
         setIsOpenModal(false);
         setOpen(false);
@@ -67,6 +69,17 @@ export default function ExerciseCreationModal({ isOpenModal, setIsOpenModal }) {
         if (isOpenModal) {
             handleOpen();
         }
+        if (equipmentList.length === 0) {
+            axiosPrivate
+                .get(`equipments`)
+                .then((response) => {
+                    console.log(response);
+                    setEquipmentList(response.data);
+                })
+                .catch((error) => {
+                    console.error(error);
+                });
+        }
     }, [isOpenModal]);
 
     const handleClickOnButton = (event) => {
@@ -97,7 +110,11 @@ export default function ExerciseCreationModal({ isOpenModal, setIsOpenModal }) {
                 name: exerciseName,
                 description: description,
                 media: mediaLinks,
-                equipments: selectedEquipments,
+                equipments: selectedEquipments.map((equipment) => {
+                    return {
+                        id: equipment.id
+                    };
+                }),
                 metrics_template: selectedMetrics,
                 parameters_template: selectedParameters
             })
-- 
GitLab