Rehab_React_Vite_my_old/src/pages/CourseExercises.tsx

109 lines
3.1 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

"use client"
import type React from "react"
import { useState, useEffect } from "react"
import { useHistory, useParams } from "react-router-dom"
import HeaderNav from "../components/HeaderNav"
import BottomNavigation from "../components/BottomNavigation"
import video from "../assets/img/video.mov"
import { connect } from '../confconnect';
import { getRouteExercise } from "../shared/consts/router"
import type { Exercise } from "./Exercise"
interface RouteParams {
id: string;
title: string;
}
const CourseExercises: React.FC =() => {
const history = useHistory()
const { id } = useParams<RouteParams>(); // получаем ID курса из URL
const { title } = useParams<RouteParams>(); // получаем ID курса из URL
const [currentSlide, setCurrentSlide] = useState(0);
const token = localStorage.getItem('authToken');
useEffect(() => {
console.log(token)
if (!token) {
setError('Токен не найден');
return;
}
connect.get(`/pacient/${id}`, {
headers: {
Authorization: `Bearer ${token}`,
},
})
.then(response => {
console.log('Response status:', response.status);
console.log('')
// Предполагаемая структура:
// response.data.courses — массив пользователей
const exercises = response.data.exercises || [];
// Собираем все курсы из всех пользователей
const allCourse: Exercises[] = [];
users.forEach(user => {
if (user.Courses && Array.isArray(user.Courses)) {
user.Courses.forEach(course => {
// Можно добавить проверку или преобразование
allCourses.push({
ID: course.id, // или course.ID, зависит от структуры
title: course.title,
desc: course.desc,
url_file_img: course.url_file_img,
});
});
}
});
setCourses(allCourses);
})
.catch(error => {
if (error.response) {
console.error('Ошибка ответа сервера:', error.response.status, error.response.data);
setError(`Ошибка сервера: ${error.response.status}`);
} else if (error.request) {
console.error('Нет ответа от сервера:', error.request);
setError('Нет ответа от сервера');
} else {
console.error('Ошибка при настройке запроса:', error.message);
setError(`Ошибка: ${error.message}`);
}
});
}, [token]);
return (
<div className="bg-gray-50 w-full h-full overflow-auto">
<div className="my-36 min-h-screen max-w-4xl mx-auto">
<HeaderNav item={'Курс:'} text={'все упражнения курса'} />
<div>
<h1>Курс ID: {id}</h1>
{/* тут можете использовать id для загрузки данных или другого */}
</div>
<BottomNavigation />
</div>
</div>
);
};
export default CourseExercises;