diff --git a/src/pages/CourseExercises.tsx b/src/pages/CourseExercises.tsx index a050671..aa0cae2 100644 --- a/src/pages/CourseExercises.tsx +++ b/src/pages/CourseExercises.tsx @@ -1,6 +1,5 @@ "use client" -import React from 'react'; import { useState, useEffect } from "react"; import { useParams, useHistory, useLocation } from "react-router-dom"; @@ -37,20 +36,14 @@ export const CourseExercises = () => { const history = useHistory(); const { id } = useParams<{ id: string }>(); - const location = useLocation<{ course?: Course }>(); const course = location.state?.course; - - // const [pacientData, setPacientData] = useState(null); - const [course_exercises, setExercises] = useState([]); const [selectedDay, setSelectedDay] = useState(null); const token = localStorage.getItem('authToken'); - - useEffect(() => { console.log(token) if (!token) { @@ -95,6 +88,25 @@ export const CourseExercises = () => { } }, [course_exercises]); + //Этот код — это React-хук useEffect, который выполняет определённый блок кода при изменении зависимостей. Давайте разберём его подробно: + //Он следит за изменением массива course_exercises. Когда course_exercises обновляется (например, загружается с сервера или изменяется), он проверяет: + + // Есть ли в массиве упражнения (course_exercises.length > 0) + // И выбран ли уже день (selectedDay === null) + // Если оба условия выполняются, то: + + // Устанавливает selectedDay в значение day первого элемента массива course_exercises[0]. + // Почему это нужно? + // Это логика инициализации: + + // Когда данные о упражнениях загружены впервые, и пользователь ещё не выбрал день (selectedDay равен null), + // автоматически выбирается первый день из загруженных упражнений. + // Почему [course_exercises] в конце? + // Это массив зависимостей. Он говорит React: + + // Запускать этот эффект только тогда, когда course_exercises изменится. + + // Без этого эффекта он бы запускался при каждом рендере, что нежелательно. const uniqueDays = Array.from(new Set(course_exercises.map(ex => ex.day))).sort((a, b) => a - b); @@ -115,9 +127,6 @@ export const CourseExercises = () => { - //тут выводим дни из БД - - return (
@@ -125,11 +134,10 @@ export const CourseExercises = () => { Если course не null и не undefined, то взять его свойство title, иначе — вернуть undefined*/}
{/* Заголовок секции */} -
+

Упражнения

Количество упражнений: {course_exercises.length}
- {/*

{JSON.stringify(course_exercises)}

*/} @@ -137,14 +145,14 @@ export const CourseExercises = () => { {/* Кнопки выбора дня */} {days.length > 1 && (
-
+
{days.map((day, index) => (
- - {/*
- - {pacientData ? ( -
{JSON.stringify(pacientData, null, 2)}
- ) : ( -

Нет данных

- )} -
*/} - - -