diff --git a/src/pages/CourseExercises.tsx b/src/pages/CourseExercises.tsx index 1fd7653..74ab5db 100644 --- a/src/pages/CourseExercises.tsx +++ b/src/pages/CourseExercises.tsx @@ -6,88 +6,170 @@ import { useParams } from "react-router-dom" import HeaderNav from "../components/HeaderNav" import BottomNavigation from "../components/BottomNavigation" - import { connect } from '../confconnect'; + +interface CourseExercises { + id_course: number; + id_exercise: number; + exercise: Exercise; + day: number; + position: number; + repeats: number; +} + +interface Exercise { + id: number; + title: string; + +} + + export const CourseExercises = () => { const { id } = useParams<{ id: string }>(); + // const [pacientData, setPacientData] = useState(null); + + const [course_exercises, setExercises] = useState([]); + const [selectedDay, setSelectedDay] = useState(null); + - // const id = useParams(); -const [pacientData, setPacientData] = useState(null); const token = localStorage.getItem('authToken'); useEffect(() => { console.log(token) if (!token) { - console.log('Токен не найден'); + console.log('Токен не найден'); return; } - - connect.get(`/pacient/${id}`, { - + headers: { Authorization: `Bearer ${token}`, + 'Content-Type': 'application/json', }, - - }) - .then(response => { - console.log('Response status:', response.status); - console.log('Данные:', response.data); - setPacientData(response.data); - }) - .catch(error => { - if (error.response) { - console.error('Ошибка ответа сервера:', error.response.status, error.response.data); - - } else if (error.request) { - console.error('Нет ответа от сервера:', error.request); - - } else { - console.error('Ошибка при настройке запроса:', error.message); - - } - }); - }, [token]); + .then(response => { + console.log('Response status:', response.status); + console.log('Данные:', response.data); + // setPacientData(response.data); + setExercises(response.data.course_exercises); + }) + .catch(error => { + if (error.response) { + console.error('Ошибка ответа сервера:', error.response.status, error.response.data); + + } else if (error.request) { + console.error('Нет ответа от сервера:', error.request); + + } else { + console.error('Ошибка при настройке запроса:', error.message); + } + }); + }, []); + + + useEffect(() => { + if (course_exercises.length > 0 && selectedDay === null) { + setSelectedDay(course_exercises[0].day); + } + }, [course_exercises]); + + + const days = Array.from(new Set(course_exercises.map(ex => ex.day))).sort((a, b) => a - b); + + const filteredExercises = selectedDay !== null + ? course_exercises.filter(ex => ex.day === selectedDay) + : course_exercises; + return ( - -
- - -
-
Перейти на упражнение
-

выводим текст

- {/* Выводим данные пациента */} - {pacientData ? ( -
{JSON.stringify(pacientData, null, 2)}
- ) : ( -

Нет данных

- )} + + +
+ + {/* Заголовок секции */} +
+

Список упражнений

+ {course_exercises.length} Упражнения +
+ + {/* Кнопки выбора дня */} + {days.length > 1 && ( +
+
+ {days.map((day) => ( + + ))} +
+
+ )} + + + +
+ {filteredExercises.length > 0 ? ( + filteredExercises.map((item) => ( +
+

Упражнение {item.id_exercise}

+

{item.exercise.title}

+ +
+ +
+

День: {item.day}

+ · +

Позиция: {item.position}

+ · +

Повторений: {item.repeats}

+
+
+ )) + ) : ( +

Нет упражнений для отображения

+ )} +
- + + {/*
+ + {pacientData ? ( +
{JSON.stringify(pacientData, null, 2)}
+ ) : ( +

Нет данных

+ )} +
*/} + + -
- +
+ ) } diff --git a/src/pages/Courses.tsx b/src/pages/Courses.tsx index 7f152c1..0c35e2d 100644 --- a/src/pages/Courses.tsx +++ b/src/pages/Courses.tsx @@ -110,6 +110,9 @@ export const Courses = () => { "from-sky-400 to-cyan-600" ]; +//item.exercise.title + + return (